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