1 /**************************************************************************/
2 /*                                                                        */
3 /*       Copyright (c) Microsoft Corporation. All rights reserved.        */
4 /*                                                                        */
5 /*       This software is licensed under the Microsoft Software License   */
6 /*       Terms for Microsoft Azure RTOS. Full text of the license can be  */
7 /*       found in the LICENSE file at https://aka.ms/AzureRTOS_EULA       */
8 /*       and in the root directory of this software.                      */
9 /*                                                                        */
10 /**************************************************************************/
11 
12 
13 /**************************************************************************/
14 /**************************************************************************/
15 /**                                                                       */
16 /** ThreadX Component                                                     */
17 /**                                                                       */
18 /**   ThreadX MISRA Compliance                                            */
19 /**                                                                       */
20 /**************************************************************************/
21 /**************************************************************************/
22 
23 
24 /**************************************************************************/
25 /**************************************************************************/
26 /**                                                                       */
27 /** _tx_version_id                                                        */
28 /**                                                                       */
29 /**************************************************************************/
30 /**************************************************************************/
31 
32 #ifdef TX_MISRA_ENABLE
33 #define TX_THREAD_INIT
34 //CHAR  _tx_version_id[100] =  "Copyright (c) Microsoft Corporation. All rights reserved.  * ThreadX 6.1       MISRA C Compliant *";
35 
36 #include "tx_api.h"
37 #include "tx_thread.h"
38 #include "tx_trace.h"
39 
40 
41 /**************************************************************************/
42 /**************************************************************************/
43 /**                                                                       */
44 /**  VOID  _tx_misra_memset(VOID *ptr, UINT value, UINT size);            */
45 /**                                                                       */
46 /**************************************************************************/
47 /**************************************************************************/
_tx_misra_memset(VOID * ptr,UINT value,UINT size)48 VOID  _tx_misra_memset(VOID *ptr, UINT value, UINT size)
49 {
50     memset(ptr, value, size);
51 }
52 
53 
54 /**************************************************************************/
55 /**************************************************************************/
56 /**                                                                       */
57 /**  UCHAR  *_tx_misra_uchar_pointer_add(UCHAR *ptr, ULONG amount);       */
58 /**                                                                       */
59 /**************************************************************************/
60 /**************************************************************************/
_tx_misra_uchar_pointer_add(UCHAR * ptr,ULONG amount)61 UCHAR  *_tx_misra_uchar_pointer_add(UCHAR *ptr, ULONG amount)
62 {
63     ptr =  ptr + amount;
64     return(ptr);
65 }
66 
67 
68 /**************************************************************************/
69 /**************************************************************************/
70 /**                                                                       */
71 /**  UCHAR  *_tx_misra_uchar_pointer_sub(UCHAR *ptr, ULONG amount);       */
72 /**                                                                       */
73 /**************************************************************************/
74 /**************************************************************************/
_tx_misra_uchar_pointer_sub(UCHAR * ptr,ULONG amount)75 UCHAR  *_tx_misra_uchar_pointer_sub(UCHAR *ptr, ULONG amount)
76 {
77     ptr =  ptr - amount;
78     return(ptr);
79 }
80 
81 
82 /**************************************************************************/
83 /**************************************************************************/
84 /**                                                                       */
85 /**  ULONG  _tx_misra_uchar_pointer_dif(UCHAR *ptr1, UCHAR *ptr2);        */
86 /**                                                                       */
87 /**************************************************************************/
88 /**************************************************************************/
_tx_misra_uchar_pointer_dif(UCHAR * ptr1,UCHAR * ptr2)89 ULONG  _tx_misra_uchar_pointer_dif(UCHAR *ptr1, UCHAR *ptr2)
90 {
91 
92 ULONG   value;
93 
94     value =  ptr1 - ptr2;
95     return(value);
96 }
97 
98 
99 /**************************************************************************/
100 /**************************************************************************/
101 /**                                                                       */
102 /**  ULONG  _tx_misra_pointer_to_ulong_convert(VOID *ptr);                */
103 /**                                                                       */
104 /**************************************************************************/
105 /**************************************************************************/
_tx_misra_pointer_to_ulong_convert(VOID * ptr)106 ULONG  _tx_misra_pointer_to_ulong_convert(VOID *ptr)
107 {
108     return((ULONG) ptr);
109 }
110 
111 
112 /**************************************************************************/
113 /**************************************************************************/
114 /**                                                                       */
115 /**  ULONG  *_tx_misra_ulong_pointer_add(ULONG *ptr, ULONG amount);       */
116 /**                                                                       */
117 /**************************************************************************/
118 /**************************************************************************/
_tx_misra_ulong_pointer_add(ULONG * ptr,ULONG amount)119 ULONG  *_tx_misra_ulong_pointer_add(ULONG *ptr, ULONG amount)
120 {
121     ptr =  ptr + amount;
122     return(ptr);
123 }
124 
125 
126 /**************************************************************************/
127 /**************************************************************************/
128 /**                                                                       */
129 /**  ULONG  *_tx_misra_ulong_pointer_sub(ULONG *ptr, ULONG amount);       */
130 /**                                                                       */
131 /**************************************************************************/
132 /**************************************************************************/
_tx_misra_ulong_pointer_sub(ULONG * ptr,ULONG amount)133 ULONG  *_tx_misra_ulong_pointer_sub(ULONG *ptr, ULONG amount)
134 {
135 
136     ptr =  ptr - amount;
137     return(ptr);
138 }
139 
140 
141 /**************************************************************************/
142 /**************************************************************************/
143 /**                                                                       */
144 /**  ULONG  _tx_misra_ulong_pointer_dif(ULONG *ptr1, ULONG *ptr2);        */
145 /**                                                                       */
146 /**************************************************************************/
147 /**************************************************************************/
_tx_misra_ulong_pointer_dif(ULONG * ptr1,ULONG * ptr2)148 ULONG   _tx_misra_ulong_pointer_dif(ULONG *ptr1, ULONG *ptr2)
149 {
150 ULONG   value;
151 
152     value =  ptr1 - ptr2;
153     return(value);
154 }
155 
156 
157 /**************************************************************************/
158 /**************************************************************************/
159 /**                                                                       */
160 /**  VOID  *_tx_misra_ulong_to_pointer_convert(ULONG input);              */
161 /**                                                                       */
162 /**************************************************************************/
163 /**************************************************************************/
_tx_misra_ulong_to_pointer_convert(ULONG input)164 VOID  *_tx_misra_ulong_to_pointer_convert(ULONG input)
165 {
166 
167     return((VOID *) input);
168 }
169 
170 
171 /**************************************************************************/
172 /**************************************************************************/
173 /**                                                                       */
174 /**  VOID  _tx_misra_message_copy(ULONG **source, ULONG **destination,    */
175 /**                                                           UINT size); */
176 /**                                                                       */
177 /**************************************************************************/
178 /**************************************************************************/
_tx_misra_message_copy(ULONG ** source,ULONG ** destination,UINT size)179 VOID  _tx_misra_message_copy(ULONG **source, ULONG **destination, UINT size)
180 {
181 
182 ULONG   *s, *d;
183 UINT    z;
184 
185     s =  *source;
186     d =  *destination;
187     z =  size;
188 
189     *(d) = *(s);
190     (d)++;
191     (s)++;
192     if ((z) > ((UINT) 1))
193     {
194         (z)--;
195         while ((z))
196         {
197             *(d) =  *(s);
198             (d)++;
199             (s)++;
200             (z)--;
201         }
202     }
203 
204     *source = s;
205     *destination = d;
206 }
207 
208 
209 /**************************************************************************/
210 /**************************************************************************/
211 /**                                                                       */
212 /**  ULONG  _tx_misra_timer_pointer_dif(TX_TIMER_INTERNAL **ptr1,         */
213 /**                                           TX_TIMER_INTERNAL **ptr2);  */
214 /**                                                                       */
215 /**************************************************************************/
216 /**************************************************************************/
_tx_misra_timer_pointer_dif(TX_TIMER_INTERNAL ** ptr1,TX_TIMER_INTERNAL ** ptr2)217 ULONG  _tx_misra_timer_pointer_dif(TX_TIMER_INTERNAL **ptr1, TX_TIMER_INTERNAL **ptr2)
218 {
219 
220 ULONG   value;
221 
222     value =  ptr1 - ptr2;
223     return(value);
224 }
225 
226 
227 /**************************************************************************/
228 /**************************************************************************/
229 /**                                                                       */
230 /**  TX_TIMER_INTERNAL **_tx_misra_timer_pointer_add(TX_TIMER_INTERNAL    */
231 /**                                                  **ptr1, ULONG size); */
232 /**                                                                       */
233 /**************************************************************************/
234 /**************************************************************************/
_tx_misra_timer_pointer_add(TX_TIMER_INTERNAL ** ptr1,ULONG amount)235 TX_TIMER_INTERNAL  **_tx_misra_timer_pointer_add(TX_TIMER_INTERNAL **ptr1, ULONG amount)
236 {
237     ptr1 =  ptr1 + amount;
238     return(ptr1);
239 }
240 
241 
242 /**************************************************************************/
243 /**************************************************************************/
244 /**                                                                       */
245 /**  VOID  _tx_misra_user_timer_pointer_get(TX_TIMER_INTERNAL             */
246 /**                              *internal_timer, TX_TIMER **user_timer); */
247 /**                                                                       */
248 /**************************************************************************/
249 /**************************************************************************/
_tx_misra_user_timer_pointer_get(TX_TIMER_INTERNAL * internal_timer,TX_TIMER ** user_timer)250 VOID _tx_misra_user_timer_pointer_get(TX_TIMER_INTERNAL *internal_timer, TX_TIMER **user_timer)
251 {
252 
253 UCHAR       *working_ptr;
254 TX_TIMER    *temp_timer;
255 
256 
257     working_ptr =  (UCHAR *) internal_timer;
258 
259     temp_timer =  (TX_TIMER *) working_ptr;
260     working_ptr =  working_ptr - (((UCHAR *) &temp_timer -> tx_timer_internal) - ((UCHAR *) &temp_timer -> tx_timer_id));
261     *user_timer =  (TX_TIMER *) working_ptr;
262 }
263 
264 
265 /**************************************************************************/
266 /**************************************************************************/
267 /**                                                                       */
268 /**  VOID  _tx_misra_thread_stack_check(TX_THREAD *thread_ptr,            */
269 /**                                              VOID **highest_stack);   */
270 /**                                                                       */
271 /**************************************************************************/
272 /**************************************************************************/
_tx_misra_thread_stack_check(TX_THREAD * thread_ptr,VOID ** highest_stack)273 VOID  _tx_misra_thread_stack_check(TX_THREAD *thread_ptr, VOID **highest_stack)
274 {
275 
276 TX_INTERRUPT_SAVE_AREA
277 
278     TX_DISABLE
279     if (((thread_ptr)) && ((thread_ptr) -> tx_thread_id == TX_THREAD_ID))
280     {
281         if (((ULONG *) (thread_ptr) -> tx_thread_stack_ptr) < ((ULONG *) *highest_stack))
282         {
283             *highest_stack =  (thread_ptr) -> tx_thread_stack_ptr;
284         }
285         if ((*((ULONG *) (thread_ptr) -> tx_thread_stack_start) != TX_STACK_FILL) ||
286             (*((ULONG *) (((UCHAR *) (thread_ptr) -> tx_thread_stack_end) + 1)) != TX_STACK_FILL) ||
287             (((ULONG *) *highest_stack) < ((ULONG *) (thread_ptr) -> tx_thread_stack_start)))
288         {
289             TX_RESTORE
290             _tx_thread_stack_error_handler((thread_ptr));
291             TX_DISABLE
292         }
293         if (*(((ULONG *) *highest_stack) - 1) != TX_STACK_FILL)
294         {
295             TX_RESTORE
296             _tx_thread_stack_analyze((thread_ptr));
297             TX_DISABLE
298         }
299     }
300     TX_RESTORE
301 }
302 
303 
304 #ifdef TX_ENABLE_EVENT_TRACE
305 
306 /**************************************************************************/
307 /**************************************************************************/
308 /**                                                                       */
309 /**  VOID  _tx_misra_trace_event_insert(ULONG event_id,                   */
310 /**           VOID *info_field_1, ULONG info_field_2, ULONG info_field_3, */
311 /**           ULONG info_field_4, ULONG filter, ULONG time_stamp);        */
312 /**                                                                       */
313 /**************************************************************************/
314 /**************************************************************************/
_tx_misra_trace_event_insert(ULONG event_id,VOID * info_field_1,ULONG info_field_2,ULONG info_field_3,ULONG info_field_4,ULONG filter,ULONG time_stamp)315 VOID  _tx_misra_trace_event_insert(ULONG event_id, VOID *info_field_1, ULONG info_field_2, ULONG info_field_3, ULONG info_field_4, ULONG filter, ULONG time_stamp)
316 {
317 
318 TX_TRACE_BUFFER_ENTRY     *trace_event_ptr;
319 ULONG                      trace_system_state;
320 ULONG                      trace_priority;
321 TX_THREAD                 *trace_thread_ptr;
322 
323 
324     trace_event_ptr =  _tx_trace_buffer_current_ptr;
325     if ((trace_event_ptr) && (_tx_trace_event_enable_bits & ((ULONG) (filter))))
326     {
327         TX_TRACE_PORT_EXTENSION
328         trace_system_state =  (ULONG) _tx_thread_system_state;
329         trace_thread_ptr =    _tx_thread_current_ptr;
330 
331         if (trace_system_state == 0)
332         {
333             trace_priority =  trace_thread_ptr -> tx_thread_priority;
334             trace_priority =  trace_priority | 0x80000000UL | (trace_thread_ptr -> tx_thread_preempt_threshold << 16);
335         }
336         else if (trace_system_state < 0xF0F0F0F0UL)
337         {
338             trace_priority =    (ULONG) trace_thread_ptr;
339             trace_thread_ptr =  (TX_THREAD *) 0xFFFFFFFFUL;
340         }
341         else
342         {
343             trace_thread_ptr =  (TX_THREAD *) 0xF0F0F0F0UL;
344             trace_priority =    0;
345         }
346         trace_event_ptr -> tx_trace_buffer_entry_thread_pointer =       (ULONG) trace_thread_ptr;
347         trace_event_ptr -> tx_trace_buffer_entry_thread_priority =      (ULONG) trace_priority;
348         trace_event_ptr -> tx_trace_buffer_entry_event_id =             (ULONG) (event_id);
349         trace_event_ptr -> tx_trace_buffer_entry_time_stamp =           (ULONG) (time_stamp);
350 #ifdef TX_MISRA_ENABLE
351         trace_event_ptr -> tx_trace_buffer_entry_info_1 =               (ULONG) (info_field_1);
352         trace_event_ptr -> tx_trace_buffer_entry_info_2 =               (ULONG) (info_field_2);
353         trace_event_ptr -> tx_trace_buffer_entry_info_3 =               (ULONG) (info_field_3);
354         trace_event_ptr -> tx_trace_buffer_entry_info_4 =               (ULONG) (info_field_4);
355 #else
356         trace_event_ptr -> tx_trace_buffer_entry_information_field_1 =  (ULONG) (info_field_1);
357         trace_event_ptr -> tx_trace_buffer_entry_information_field_2 =  (ULONG) (info_field_2);
358         trace_event_ptr -> tx_trace_buffer_entry_information_field_3 =  (ULONG) (info_field_3);
359         trace_event_ptr -> tx_trace_buffer_entry_information_field_4 =  (ULONG) (info_field_4);
360 #endif
361         trace_event_ptr++;
362         if (trace_event_ptr >= _tx_trace_buffer_end_ptr)
363         {
364             trace_event_ptr =  _tx_trace_buffer_start_ptr;
365             _tx_trace_buffer_current_ptr =  trace_event_ptr;
366             _tx_trace_header_ptr -> tx_trace_header_buffer_current_pointer =  (ULONG) trace_event_ptr;
367             if (_tx_trace_full_notify_function)
368                 (_tx_trace_full_notify_function)((VOID *) _tx_trace_header_ptr);
369         }
370         else
371         {
372             _tx_trace_buffer_current_ptr =  trace_event_ptr;
373             _tx_trace_header_ptr -> tx_trace_header_buffer_current_pointer =  (ULONG) trace_event_ptr;
374         }
375     }
376 }
377 
378 /**************************************************************************/
379 /**************************************************************************/
380 /**                                                                       */
381 /**  ULONG  _tx_misra_time_stamp_get(VOID);                               */
382 /**                                                                       */
383 /**************************************************************************/
384 /**************************************************************************/
_tx_misra_time_stamp_get(VOID)385 ULONG  _tx_misra_time_stamp_get(VOID)
386 {
387 
388     /* Return time stamp.  */
389     return(0);
390 }
391 
392 #endif
393 
394 
395 /**************************************************************************/
396 /**************************************************************************/
397 /**                                                                       */
398 /**  UINT  _tx_misra_always_true(void);                                   */
399 /**                                                                       */
400 /**************************************************************************/
401 /**************************************************************************/
_tx_misra_always_true(void)402 UINT  _tx_misra_always_true(void)
403 {
404     return(TX_TRUE);
405 }
406 
407 
408 /******************************************************************************************/
409 /******************************************************************************************/
410 /**                                                                                       */
411 /**  UCHAR  **_tx_misra_indirect_void_to_uchar_pointer_convert(VOID **return_ptr);        */
412 /**                                                                                       */
413 /******************************************************************************************/
414 /******************************************************************************************/
_tx_misra_indirect_void_to_uchar_pointer_convert(VOID ** return_ptr)415 UCHAR  **_tx_misra_indirect_void_to_uchar_pointer_convert(VOID **return_ptr)
416 {
417 
418     /* Return an indirect UCHAR pointer.  */
419     return((UCHAR **) ((VOID *) return_ptr));
420 }
421 
422 
423 /***************************************************************************************/
424 /***************************************************************************************/
425 /**                                                                                    */
426 /**  UCHAR  **_tx_misra_uchar_to_indirect_uchar_pointer_convert(UCHAR *pointer);       */
427 /**                                                                                    */
428 /***************************************************************************************/
429 /***************************************************************************************/
_tx_misra_uchar_to_indirect_uchar_pointer_convert(UCHAR * pointer)430 UCHAR  **_tx_misra_uchar_to_indirect_uchar_pointer_convert(UCHAR *pointer)
431 {
432 
433     /* Return an indirect UCHAR pointer.  */
434     return((UCHAR **) ((VOID *) pointer));
435 }
436 
437 
438 /***********************************************************************************/
439 /***********************************************************************************/
440 /**                                                                                */
441 /**  UCHAR  *_tx_misra_block_pool_to_uchar_pointer_convert(TX_BLOCK_POOL *pool);   */
442 /**                                                                                */
443 /***********************************************************************************/
444 /***********************************************************************************/
_tx_misra_block_pool_to_uchar_pointer_convert(TX_BLOCK_POOL * pool)445 UCHAR  *_tx_misra_block_pool_to_uchar_pointer_convert(TX_BLOCK_POOL *pool)
446 {
447 
448     /* Return a UCHAR pointer.  */
449     return((UCHAR *) ((VOID *) pool));
450 }
451 
452 
453 /******************************************************************************************/
454 /******************************************************************************************/
455 /**                                                                                       */
456 /**  TX_BLOCK_POOL  *_tx_misra_void_to_block_pool_pointer_convert(VOID *pointer);         */
457 /**                                                                                       */
458 /******************************************************************************************/
459 /******************************************************************************************/
_tx_misra_void_to_block_pool_pointer_convert(VOID * pointer)460 TX_BLOCK_POOL  *_tx_misra_void_to_block_pool_pointer_convert(VOID *pointer)
461 {
462 
463     /* Return a block pool pointer.  */
464     return((TX_BLOCK_POOL *) ((VOID *) pointer));
465 }
466 
467 
468 /*****************************************************************************/
469 /*****************************************************************************/
470 /**                                                                          */
471 /**  UCHAR  *_tx_misra_void_to_uchar_pointer_convert(VOID *pointer);         */
472 /**                                                                          */
473 /*****************************************************************************/
474 /*****************************************************************************/
_tx_misra_void_to_uchar_pointer_convert(VOID * pointer)475 UCHAR  *_tx_misra_void_to_uchar_pointer_convert(VOID *pointer)
476 {
477 
478     /* Return a UCHAR pointer.  */
479     return((UCHAR *) ((VOID *) pointer));
480 }
481 
482 
483 /************************************************************************************/
484 /************************************************************************************/
485 /**                                                                                 */
486 /**  TX_BLOCK_POOL *_tx_misra_uchar_to_block_pool_pointer_convert(UCHAR *pointer);  */
487 /**                                                                                 */
488 /************************************************************************************/
489 /************************************************************************************/
_tx_misra_uchar_to_block_pool_pointer_convert(UCHAR * pointer)490 TX_BLOCK_POOL  *_tx_misra_uchar_to_block_pool_pointer_convert(UCHAR *pointer)
491 {
492 
493     /* Return a UCHAR pointer.  */
494     return((TX_BLOCK_POOL *) ((VOID *) pointer));
495 }
496 
497 
498 /**************************************************************************************/
499 /**************************************************************************************/
500 /**                                                                                   */
501 /**  UCHAR  **_tx_misra_void_to_indirect_uchar_pointer_convert(VOID *pointer);        */
502 /**                                                                                   */
503 /**************************************************************************************/
504 /**************************************************************************************/
_tx_misra_void_to_indirect_uchar_pointer_convert(VOID * pointer)505 UCHAR  **_tx_misra_void_to_indirect_uchar_pointer_convert(VOID *pointer)
506 {
507 
508     /* Return a UCHAR pointer.  */
509     return((UCHAR **) ((VOID *) pointer));
510 }
511 
512 
513 /*****************************************************************************************/
514 /*****************************************************************************************/
515 /**                                                                                      */
516 /**  TX_BYTE_POOL  *_tx_misra_void_to_byte_pool_pointer_convert(VOID *pointer);          */
517 /**                                                                                      */
518 /*****************************************************************************************/
519 /*****************************************************************************************/
_tx_misra_void_to_byte_pool_pointer_convert(VOID * pointer)520 TX_BYTE_POOL  *_tx_misra_void_to_byte_pool_pointer_convert(VOID *pointer)
521 {
522 
523     /* Return a byte pool pointer.  */
524     return((TX_BYTE_POOL *) ((VOID *) pointer));
525 }
526 
527 
528 /***************************************************************************************/
529 /***************************************************************************************/
530 /**                                                                                    */
531 /**  UCHAR  *_tx_misra_byte_pool_to_uchar_pointer_convert(TX_BYTE_POOL *pool);         */
532 /**                                                                                    */
533 /***************************************************************************************/
534 /***************************************************************************************/
_tx_misra_byte_pool_to_uchar_pointer_convert(TX_BYTE_POOL * pool)535 UCHAR  *_tx_misra_byte_pool_to_uchar_pointer_convert(TX_BYTE_POOL *pool)
536 {
537 
538     /* Return a UCHAR pointer.  */
539     return((UCHAR *) ((VOID *) pool));
540 }
541 
542 
543 /*****************************************************************************************/
544 /*****************************************************************************************/
545 /**                                                                                      */
546 /**  ALIGN_TYPE  *_tx_misra_uchar_to_align_type_pointer_convert(UCHAR *pointer);         */
547 /**                                                                                      */
548 /*****************************************************************************************/
549 /*****************************************************************************************/
_tx_misra_uchar_to_align_type_pointer_convert(UCHAR * pointer)550 ALIGN_TYPE  *_tx_misra_uchar_to_align_type_pointer_convert(UCHAR *pointer)
551 {
552 
553     /* Return an align time pointer.  */
554     return((ALIGN_TYPE *) ((VOID *) pointer));
555 }
556 
557 
558 /****************************************************************************************************/
559 /****************************************************************************************************/
560 /**                                                                                                 */
561 /**  TX_BYTE_POOL  **_tx_misra_uchar_to_indirect_byte_pool_pointer_convert(UCHAR *pointer);         */
562 /**                                                                                                 */
563 /****************************************************************************************************/
564 /****************************************************************************************************/
_tx_misra_uchar_to_indirect_byte_pool_pointer_convert(UCHAR * pointer)565 TX_BYTE_POOL  **_tx_misra_uchar_to_indirect_byte_pool_pointer_convert(UCHAR *pointer)
566 {
567 
568     /* Return a byte pool pointer.  */
569     return((TX_BYTE_POOL **) ((VOID *) pointer));
570 }
571 
572 
573 /**************************************************************************************************/
574 /**************************************************************************************************/
575 /**                                                                                               */
576 /**  TX_EVENT_FLAGS_GROUP  *_tx_misra_void_to_event_flags_pointer_convert(VOID *pointer);         */
577 /**                                                                                               */
578 /**************************************************************************************************/
579 /**************************************************************************************************/
_tx_misra_void_to_event_flags_pointer_convert(VOID * pointer)580 TX_EVENT_FLAGS_GROUP  *_tx_misra_void_to_event_flags_pointer_convert(VOID *pointer)
581 {
582 
583     /* Return event flags pointer.  */
584     return((TX_EVENT_FLAGS_GROUP *) ((VOID *) pointer));
585 }
586 
587 
588 /*****************************************************************************/
589 /*****************************************************************************/
590 /**                                                                          */
591 /**  ULONG  *_tx_misra_void_to_ulong_pointer_convert(VOID *pointer);         */
592 /**                                                                          */
593 /*****************************************************************************/
594 /*****************************************************************************/
_tx_misra_void_to_ulong_pointer_convert(VOID * pointer)595 ULONG  *_tx_misra_void_to_ulong_pointer_convert(VOID *pointer)
596 {
597 
598     /* Return a ULONG pointer. */
599     return((ULONG *) ((VOID *) pointer));
600 }
601 
602 
603 /********************************************************************************/
604 /********************************************************************************/
605 /**                                                                             */
606 /**  TX_MUTEX  *_tx_misra_void_to_mutex_pointer_convert(VOID *pointer);         */
607 /**                                                                             */
608 /********************************************************************************/
609 /********************************************************************************/
_tx_misra_void_to_mutex_pointer_convert(VOID * pointer)610 TX_MUTEX  *_tx_misra_void_to_mutex_pointer_convert(VOID *pointer)
611 {
612 
613     /* Return a mutex pointer.  */
614     return((TX_MUTEX *) ((VOID *) pointer));
615 }
616 
617 
618 /**************************************************************************/
619 /**************************************************************************/
620 /**                                                                       */
621 /**  UINT  _tx_misra_status_get(UINT status);                             */
622 /**                                                                       */
623 /**************************************************************************/
624 /**************************************************************************/
_tx_misra_status_get(UINT status)625 UINT  _tx_misra_status_get(UINT status)
626 {
627 
628     /* Return a successful status.  */
629     return(TX_SUCCESS);
630 }
631 
632 
633 /********************************************************************************/
634 /********************************************************************************/
635 /**                                                                             */
636 /**  TX_QUEUE  *_tx_misra_void_to_queue_pointer_convert(VOID *pointer);         */
637 /**                                                                             */
638 /********************************************************************************/
639 /********************************************************************************/
_tx_misra_void_to_queue_pointer_convert(VOID * pointer)640 TX_QUEUE  *_tx_misra_void_to_queue_pointer_convert(VOID *pointer)
641 {
642 
643     /* Return queue pointer.  */
644     return((TX_QUEUE *) ((VOID *) pointer));
645 }
646 
647 
648 /****************************************************************************************/
649 /****************************************************************************************/
650 /**                                                                                     */
651 /**  TX_SEMAPHORE  *_tx_misra_void_to_semaphore_pointer_convert(VOID *pointer);         */
652 /**                                                                                     */
653 /****************************************************************************************/
654 /****************************************************************************************/
_tx_misra_void_to_semaphore_pointer_convert(VOID * pointer)655 TX_SEMAPHORE  *_tx_misra_void_to_semaphore_pointer_convert(VOID *pointer)
656 {
657 
658     /* Return semaphore pointer.  */
659     return((TX_SEMAPHORE *) ((VOID *) pointer));
660 }
661 
662 
663 /**************************************************************************/
664 /**************************************************************************/
665 /**                                                                       */
666 /**  VOID  *_tx_misra_uchar_to_void_pointer_convert(UCHAR *pointer);      */
667 /**                                                                       */
668 /**************************************************************************/
669 /**************************************************************************/
_tx_misra_uchar_to_void_pointer_convert(UCHAR * pointer)670 VOID  *_tx_misra_uchar_to_void_pointer_convert(UCHAR *pointer)
671 {
672 
673     /* Return a VOID pointer.  */
674     return((VOID *) ((VOID *) pointer));
675 }
676 
677 
678 /*********************************************************************************/
679 /*********************************************************************************/
680 /**                                                                              */
681 /**  TX_THREAD  *_tx_misra_ulong_to_thread_pointer_convert(ULONG value);         */
682 /**                                                                              */
683 /*********************************************************************************/
684 /*********************************************************************************/
_tx_misra_ulong_to_thread_pointer_convert(ULONG value)685 TX_THREAD  *_tx_misra_ulong_to_thread_pointer_convert(ULONG value)
686 {
687 
688     /* Return a thread pointer.  */
689     return((TX_THREAD *) ((VOID *) value));
690 }
691 
692 
693 /***************************************************************************************************/
694 /***************************************************************************************************/
695 /**                                                                                                */
696 /**  VOID  *_tx_misra_timer_indirect_to_void_pointer_convert(TX_TIMER_INTERNAL **pointer);         */
697 /**                                                                                                */
698 /***************************************************************************************************/
699 /***************************************************************************************************/
_tx_misra_timer_indirect_to_void_pointer_convert(TX_TIMER_INTERNAL ** pointer)700 VOID  *_tx_misra_timer_indirect_to_void_pointer_convert(TX_TIMER_INTERNAL **pointer)
701 {
702 
703     /* Return a void pointer.  */
704     return((VOID *) ((VOID *) pointer));
705 }
706 
707 
708 /***************************************************************************************/
709 /***************************************************************************************/
710 /**                                                                                    */
711 /**  CHAR  *_tx_misra_const_char_to_char_pointer_convert(const char *pointer);         */
712 /**                                                                                    */
713 /***************************************************************************************/
714 /***************************************************************************************/
_tx_misra_const_char_to_char_pointer_convert(const char * pointer)715 CHAR  *_tx_misra_const_char_to_char_pointer_convert(const char *pointer)
716 {
717 
718     /* Return a CHAR pointer.  */
719     return((CHAR *) ((VOID *) pointer));
720 }
721 
722 
723 /**********************************************************************************/
724 /**********************************************************************************/
725 /**                                                                               */
726 /**  TX_THREAD  *_tx_misra_void_to_thread_pointer_convert(void *pointer);         */
727 /**                                                                               */
728 /**********************************************************************************/
729 /**********************************************************************************/
_tx_misra_void_to_thread_pointer_convert(void * pointer)730 TX_THREAD  *_tx_misra_void_to_thread_pointer_convert(void *pointer)
731 {
732 
733     /* Return thread pointer.  */
734     return((TX_THREAD *) ((VOID *) pointer));
735 }
736 
737 
738 #ifdef TX_ENABLE_EVENT_TRACE
739 
740 /************************************************************************************************/
741 /************************************************************************************************/
742 /**                                                                                             */
743 /**  UCHAR  *_tx_misra_object_to_uchar_pointer_convert(TX_TRACE_OBJECT_ENTRY *pointer);         */
744 /**                                                                                             */
745 /************************************************************************************************/
746 /************************************************************************************************/
_tx_misra_object_to_uchar_pointer_convert(TX_TRACE_OBJECT_ENTRY * pointer)747 UCHAR  *_tx_misra_object_to_uchar_pointer_convert(TX_TRACE_OBJECT_ENTRY *pointer)
748 {
749 
750     /* Return a UCHAR pointer.  */
751     return((UCHAR *) ((VOID *) pointer));
752 }
753 
754 
755 /************************************************************************************************/
756 /************************************************************************************************/
757 /**                                                                                             */
758 /**  TX_TRACE_OBJECT_ENTRY  *_tx_misra_uchar_to_object_pointer_convert(UCHAR *pointer);         */
759 /**                                                                                             */
760 /************************************************************************************************/
761 /************************************************************************************************/
_tx_misra_uchar_to_object_pointer_convert(UCHAR * pointer)762 TX_TRACE_OBJECT_ENTRY  *_tx_misra_uchar_to_object_pointer_convert(UCHAR *pointer)
763 {
764 
765     /* Return an object entry pointer.  */
766     return((TX_TRACE_OBJECT_ENTRY *) ((VOID *) pointer));
767 }
768 
769 
770 /******************************************************************************************/
771 /******************************************************************************************/
772 /**                                                                                       */
773 /**  TX_TRACE_HEADER  *_tx_misra_uchar_to_header_pointer_convert(UCHAR *pointer);         */
774 /**                                                                                       */
775 /******************************************************************************************/
776 /******************************************************************************************/
_tx_misra_uchar_to_header_pointer_convert(UCHAR * pointer)777 TX_TRACE_HEADER  *_tx_misra_uchar_to_header_pointer_convert(UCHAR *pointer)
778 {
779 
780     /* Return a trace header pointer.  */
781     return((TX_TRACE_HEADER *) ((VOID *) pointer));
782 }
783 
784 
785 /***********************************************************************************************/
786 /***********************************************************************************************/
787 /**                                                                                            */
788 /**  TX_TRACE_BUFFER_ENTRY  *_tx_misra_uchar_to_entry_pointer_convert(UCHAR *pointer);         */
789 /**                                                                                            */
790 /***********************************************************************************************/
791 /***********************************************************************************************/
_tx_misra_uchar_to_entry_pointer_convert(UCHAR * pointer)792 TX_TRACE_BUFFER_ENTRY  *_tx_misra_uchar_to_entry_pointer_convert(UCHAR *pointer)
793 {
794 
795     /* Return a trace buffer entry pointer.  */
796     return((TX_TRACE_BUFFER_ENTRY *) ((VOID *) pointer));
797 }
798 
799 
800 /***********************************************************************************************/
801 /***********************************************************************************************/
802 /**                                                                                            */
803 /**  UCHAR  *_tx_misra_entry_to_uchar_pointer_convert(TX_TRACE_BUFFER_ENTRY *pointer);         */
804 /**                                                                                            */
805 /***********************************************************************************************/
806 /***********************************************************************************************/
_tx_misra_entry_to_uchar_pointer_convert(TX_TRACE_BUFFER_ENTRY * pointer)807 UCHAR  *_tx_misra_entry_to_uchar_pointer_convert(TX_TRACE_BUFFER_ENTRY *pointer)
808 {
809 
810     /* Return a UCHAR pointer.  */
811     return((UCHAR *) ((VOID *) pointer));
812 }
813 
814 #endif
815 
816 
817 /***********************************************************************************************/
818 /***********************************************************************************************/
819 /**                                                                                            */
820 /**  UCHAR  *_tx_misra_char_to_uchar_pointer_convert(CHAR *pointer);                           */
821 /**                                                                                            */
822 /***********************************************************************************************/
823 /***********************************************************************************************/
_tx_misra_char_to_uchar_pointer_convert(CHAR * pointer)824 UCHAR  *_tx_misra_char_to_uchar_pointer_convert(CHAR *pointer)
825 {
826 
827     /* Return a UCHAR pointer.  */
828     return((UCHAR *) ((VOID *) pointer));
829 }
830 
831 
832 #endif
833 
834