1 /*
2  * Trace Recorder for Tracealyzer v4.6.6
3  * Copyright 2021 Percepio AB
4  * www.percepio.com
5  *
6  * SPDX-License-Identifier: Apache-2.0
7  *
8  * This file declares the CTI aliasing and weakening of ThreadX kernel object
9  * functions so that the ThreadX recorder kernel port can trace the outcome
10  * of events.
11  */
12 
13 #ifndef TRC_CTI_H_
14 #define TRC_CTI_H_
15 
16 /* Block Pool tracing hooks */
17 #ifdef __inside_txe_block_allocate
18 
19 #include "tx_api.h"
20 #include "tx_block_pool.h"
21 #include "tx_trace.h"
22 
23 UINT _txe_block_allocate(TX_BLOCK_POOL *pool_ptr, VOID **block_ptr, ULONG wait_option) __attribute__((weak));
24 UINT _txe_block_allocate_orig(TX_BLOCK_POOL *pool_ptr, VOID **block_ptr, ULONG wait_option) __attribute__((alias("_txe_block_allocate")));
25 
26 #ifdef __IAR_SYSTEMS_ICC__
27 #pragma weak _txe_block_allocate
28 #pragma weak _txe_block_allocate_orig=_txe_block_allocate
29 #endif /* __IAR_SYSTEMS_ICC__ */
30 
31 #endif /* __inside_txe_block_allocate */
32 
33 #ifdef __inside_txe_block_pool_create
34 
35 #include "tx_api.h"
36 #include "tx_trace.h"
37 #include "tx_block_pool.h"
38 
39 UINT _txe_block_pool_create(TX_BLOCK_POOL *pool_ptr, CHAR *name_ptr, ULONG block_size, VOID *pool_start, ULONG pool_size, UINT pool_control_block_size) __attribute__((weak));
40 UINT _txe_block_pool_create_orig(TX_BLOCK_POOL *pool_ptr, CHAR *name_ptr, ULONG block_size, VOID *pool_start, ULONG pool_size, UINT pool_control_block_size) __attribute__((alias("_txe_block_pool_create")));
41 
42 #ifdef __IAR_SYSTEMS_ICC__
43 #pragma weak _txe_block_pool_create
44 #pragma weak _txe_block_pool_create_orig=_txe_block_pool_create
45 #endif /* __IAR_SYSTEMS_ICC__ */
46 
47 #endif /* __inside_txe_block_pool_create */
48 
49 #ifdef __inside_txe_block_pool_delete
50 
51 #include "tx_api.h"
52 #include "tx_thread.h"
53 #include "tx_timer.h"
54 #include "tx_block_pool.h"
55 #include "tx_trace.h"
56 
57 UINT _txe_block_pool_delete(TX_BLOCK_POOL *pool_ptr) __attribute__((weak));
58 UINT _txe_block_pool_delete_orig(TX_BLOCK_POOL *pool_ptr) __attribute__((alias("_txe_block_pool_delete")));
59 
60 #ifdef __IAR_SYSTEMS_ICC__
61 #pragma weak _txe_block_pool_delete
62 #pragma weak _txe_block_pool_delete_orig=_txe_block_pool_delete
63 #endif /* __IAR_SYSTEMS_ICC__ */
64 
65 #endif /* __inside_txe_block_pool_delete */
66 
67 #ifdef __inside_txe_block_pool_info_get
68 
69 #include "tx_api.h"
70 #include "tx_block_pool.h"
71 #include "tx_trace.h"
72 
73 UINT _txe_block_pool_info_get(TX_BLOCK_POOL *pool_ptr, CHAR **name, ULONG *available_blocks, ULONG *total_blocks, TX_THREAD **first_suspended, ULONG *suspended_count, TX_BLOCK_POOL **next_pool) __attribute__((weak));
74 UINT _txe_block_pool_info_get_orig(TX_BLOCK_POOL *pool_ptr, CHAR **name, ULONG *available_blocks, ULONG *total_blocks, TX_THREAD **first_suspended, ULONG *suspended_count, TX_BLOCK_POOL **next_pool) __attribute__((alias("_txe_block_pool_info_get")));
75 
76 #ifdef __IAR_SYSTEMS_ICC__
77 #pragma weak _txe_block_pool_info_get
78 #pragma weak _txe_block_pool_info_get_orig=_txe_block_pool_info_get
79 #endif /* __IAR_SYSTEMS_ICC__ */
80 
81 #endif /* __inside_txe_block_pool_info_get */
82 
83 #ifdef __inside_tx_block_pool_performance_info_get
84 
85 #include "tx_api.h"
86 #include "tx_block_pool.h"
87 #include "tx_trace.h"
88 
89 UINT _tx_block_pool_performance_info_get(TX_BLOCK_POOL *pool_ptr, ULONG *allocates, ULONG *releases, ULONG *suspensions, ULONG *timeouts) __attribute__((weak));
90 UINT _tx_block_pool_performance_info_get_orig(TX_BLOCK_POOL *pool_ptr, ULONG *allocates, ULONG *releases, ULONG *suspensions, ULONG *timeouts) __attribute__((alias("_tx_block_pool_performance_info_get")));
91 
92 #ifdef __IAR_SYSTEMS_ICC__
93 #pragma weak _tx_block_pool_performance_info_get
94 #pragma weak _tx_block_pool_performance_info_get_orig=_tx_block_pool_performance_info_get
95 #endif /* __IAR_SYSTEMS_ICC__ */
96 
97 #endif /* __inside_tx_block_pool_performance_info_get */
98 
99 #ifdef __inside_tx_block_pool_performance_system_info_get
100 
101 #include "tx_api.h"
102 #include "tx_block_pool.h"
103 #include "tx_trace.h"
104 
105 UINT  _tx_block_pool_performance_system_info_get(ULONG *allocates, ULONG *releases, ULONG *suspensions, ULONG *timeouts) __attribute__((weak));
106 UINT  _tx_block_pool_performance_system_info_get_oirg(ULONG *allocates, ULONG *releases, ULONG *suspensions, ULONG *timeouts) __attribute__((alias("_tx_block_pool_performance_system_info_get")));
107 
108 #ifdef __IAR_SYSTEMS_ICC__
109 #pragma weak _tx_block_pool_performance_system_info_get
110 #pragma weak _tx_block_pool_performance_system_info_get_oirg=_tx_block_pool_performance_system_info_get
111 #endif /* __IAR_SYSTEMS_ICC__ */
112 
113 #endif /*__inside_tx_block_pool_performance_system_info_get */
114 
115 #ifdef __inside_txe_block_pool_prioritize
116 
117 #include "tx_api.h"
118 #include "tx_block_pool.h"
119 #include "tx_trace.h"
120 
121 UINT _txe_block_pool_prioritize(TX_BLOCK_POOL *pool_ptr) __attribute__((weak));
122 UINT _txe_block_pool_prioritize_orig(TX_BLOCK_POOL *pool_ptr) __attribute__((alias("_txe_block_pool_prioritize")));
123 
124 #ifdef __IAR_SYSTEMS_ICC__
125 #pragma weak _txe_block_pool_prioritize
126 #pragma weak _txe_block_pool_prioritize_orig=_txe_block_pool_prioritize
127 #endif /* __IAR_SYSTEMS_ICC__ */
128 
129 #endif /* __inside_txe_block_pool_prioritize */
130 
131 #ifdef __inside_txe_block_release
132 
133 #include "tx_api.h"
134 #include "tx_block_pool.h"
135 #include "tx_trace.h"
136 
137 UINT _txe_block_release(VOID *block_ptr) __attribute__((weak));
138 UINT _txe_block_release_orig(VOID *block_ptr) __attribute__((alias("_txe_block_release")));
139 
140 #ifdef __IAR_SYSTEMS_ICC__
141 #pragma weak _txe_block_release
142 #pragma weak _txe_block_release_orig=_txe_block_release
143 #endif /* __IAR_SYSTEMS_ICC__ */
144 
145 #endif /* __inside_txe_block_release */
146 
147 /* Byte Pool tracing hooks */
148 #ifdef __inside_txe_byte_allocate
149 
150 #include "tx_api.h"
151 #include "tx_initialize.h"
152 #include "tx_thread.h"
153 #include "tx_timer.h"
154 #include "tx_byte_pool.h"
155 #include "tx_trace.h"
156 
157 UINT _txe_byte_allocate(TX_BYTE_POOL *pool_ptr, VOID **memory_ptr, ULONG memory_size,  ULONG wait_option) __attribute__((weak));
158 UINT _txe_byte_allocate_orig(TX_BYTE_POOL *pool_ptr, VOID **memory_ptr, ULONG memory_size,  ULONG wait_option) __attribute__((alias("_txe_byte_allocate")));
159 
160 #ifdef __IAR_SYSTEMS_ICC__
161 #pragma weak _txe_byte_allocate
162 #pragma weak _txe_byte_allocate_orig=_txe_byte_allocate
163 #endif /* __IAR_SYSTEMS_ICC__ */
164 
165 #endif /* __inside_txe_byte_allocate */
166 
167 #ifdef __inside_txe_byte_pool_create
168 
169 #include "tx_api.h"
170 #include "tx_initialize.h"
171 #include "tx_thread.h"
172 #include "tx_timer.h"
173 #include "tx_byte_pool.h"
174 #include "tx_trace.h"
175 
176 UINT _txe_byte_pool_create(TX_BYTE_POOL *pool_ptr, CHAR *name_ptr, VOID *pool_start, ULONG pool_size, UINT pool_control_block_size) __attribute__((weak));
177 UINT _txe_byte_pool_create_orig(TX_BYTE_POOL *pool_ptr, CHAR *name_ptr, VOID *pool_start, ULONG pool_size, UINT pool_control_block_size)  __attribute__((alias("_txe_byte_pool_create")));
178 
179 #ifdef __IAR_SYSTEMS_ICC__
180 #pragma weak _txe_byte_pool_create
181 #pragma weak _txe_byte_pool_create_orig=_txe_byte_pool_create
182 #endif /* __IAR_SYSTEMS_ICC__ */
183 
184 #endif /* __inside_txe_byte_pool_create */
185 
186 #ifdef __inside_txe_byte_pool_delete
187 
188 #include "tx_api.h"
189 #include "tx_thread.h"
190 #include "tx_timer.h"
191 #include "tx_byte_pool.h"
192 #include "tx_trace.h"
193 
194 UINT _txe_byte_pool_delete(TX_BYTE_POOL *pool_ptr) __attribute__((weak));
195 UINT _txe_byte_pool_delete_orig(TX_BYTE_POOL *pool_ptr) __attribute__((alias("_txe_byte_pool_delete")));
196 
197 #ifdef __IAR_SYSTEMS_ICC__
198 #pragma weak _txe_byte_pool_delete
199 #pragma weak _txe_byte_pool_delete_orig=_txe_byte_pool_delete
200 #endif /* __IAR_SYSTEMS_ICC__ */
201 
202 #endif /* __inside_txe_byte_pool_delete */
203 
204 #ifdef __inside_txe_byte_pool_info_get
205 
206 #include "tx_api.h"
207 #include "tx_byte_pool.h"
208 #include "tx_trace.h"
209 
210 UINT _txe_byte_pool_info_get(TX_BYTE_POOL *pool_ptr, CHAR **name, ULONG *available_bytes, ULONG *fragments, TX_THREAD **first_suspended, ULONG *suspended_count, TX_BYTE_POOL **next_pool) __attribute__((weak));
211 UINT _txe_byte_pool_info_get_orig(TX_BYTE_POOL *pool_ptr, CHAR **name, ULONG *available_bytes, ULONG *fragments, TX_THREAD **first_suspended, ULONG *suspended_count, TX_BYTE_POOL **next_pool) __attribute__((alias("_txe_byte_pool_info_get")));
212 
213 #ifdef __IAR_SYSTEMS_ICC__
214 #pragma weak _txe_byte_pool_info_get
215 #pragma weak _txe_byte_pool_info_get_orig=_txe_byte_pool_info_get
216 #endif /* __IAR_SYSTEMS_ICC__ */
217 
218 #endif /* __inside_txe_byte_pool_info_get */
219 
220 #ifdef __inside_tx_byte_pool_performance_info_get
221 
222 #include "tx_api.h"
223 #include "tx_byte_pool.h"
224 #include "tx_trace.h"
225 
226 UINT _tx_byte_pool_performance_info_get(TX_BYTE_POOL *pool_ptr,
227 	    ULONG *allocates,
228 	    ULONG *releases,
229 	    ULONG *fragments_searched,
230 	    ULONG *merges,
231 	    ULONG *splits,
232 	    ULONG *suspensions,
233 	    ULONG *timeouts) __attribute__((weak));
234 UINT _tx_byte_pool_performance_info_get_orig(TX_BYTE_POOL *pool_ptr,
235 	    ULONG *allocates,
236 	    ULONG *releases,
237 	    ULONG *fragments_searched,
238 	    ULONG *merges,
239 	    ULONG *splits,
240 	    ULONG *suspensions,
241 	    ULONG *timeouts) __attribute__((alias("_tx_byte_pool_performance_info_get")));
242 
243 #ifdef __IAR_SYSTEMS_ICC__
244 #pragma weak _tx_byte_pool_performance_info_get
245 #pragma weak _tx_byte_pool_performance_info_get_orig=_tx_byte_pool_performance_info_get
246 #endif /* __IAR_SYSTEMS_ICC__ */
247 
248 #endif /*__inside_tx_byte_pool_performance_info_get */
249 
250 #ifdef __inside_tx_byte_pool_performance_system_info_get
251 
252 #include "tx_api.h"
253 #include "tx_byte_pool.h"
254 #include "tx_trace.h"
255 
256 UINT  _tx_byte_pool_performance_system_info_get(ULONG *allocates,
257 		ULONG *releases,
258 		ULONG *fragments_searched,
259 		ULONG *merges,
260 		ULONG *splits,
261 		ULONG *suspensions,
262 		ULONG *timeouts) __attribute__((weak));
263 UINT  _tx_byte_pool_performance_system_info_get_orig(ULONG *allocates,
264 		ULONG *releases,
265 		ULONG *fragments_searched,
266 		ULONG *merges,
267 		ULONG *splits,
268 		ULONG *suspensions,
269 		ULONG *timeouts) __attribute__((alias("_tx_byte_pool_performance_system_info_get")));
270 
271 #ifdef __IAR_SYSTEMS_ICC__
272 #pragma weak _tx_byte_pool_performance_system_info_get
273 #pragma weak _tx_byte_pool_performance_system_info_get_orig=_tx_byte_pool_performance_system_info_get
274 #endif /* __IAR_SYSTEMS_ICC__ */
275 
276 #endif /* __inside_tx_byte_pool_performance_system_info_get */
277 
278 #ifdef __inside_txe_byte_pool_prioritize
279 
280 #include "tx_api.h"
281 #include "tx_byte_pool.h"
282 #include "tx_trace.h"
283 
284 UINT _txe_byte_pool_prioritize(TX_BYTE_POOL *pool_ptr) __attribute__((weak));
285 UINT _txe_byte_pool_prioritize_orig(TX_BYTE_POOL *pool_ptr) __attribute__((alias("_txe_byte_pool_prioritize")));
286 
287 #ifdef __IAR_SYSTEMS_ICC__
288 #pragma weak _txe_byte_pool_prioritize
289 #pragma weak _txe_byte_pool_prioritize_orig=_txe_byte_pool_prioritize
290 #endif /* __IAR_SYSTEMS_ICC__ */
291 
292 #endif /* __inside_txe_byte_pool_prioritize */
293 
294 #ifdef __inside_txe_byte_release
295 
296 #include "tx_api.h"
297 #include "tx_initialize.h"
298 #include "tx_thread.h"
299 #include "tx_timer.h"
300 #include "tx_byte_pool.h"
301 
302 UINT _txe_byte_release(VOID *memory_ptr) __attribute__((weak));
303 UINT _txe_byte_release_orig(VOID *memory_ptr) __attribute__((alias("_txe_byte_release")));
304 
305 #ifdef __IAR_SYSTEMS_ICC__
306 #pragma weak _txe_byte_release
307 #pragma weak _txe_byte_release_orig=_txe_byte_release
308 #endif /* __IAR_SYSTEMS_ICC__ */
309 
310 #endif /* __inside_txe_byte_release */
311 
312 #ifdef __inside_txe_event_flags_create
313 
314 #include "tx_api.h"
315 
316 UINT _txe_event_flags_create(TX_EVENT_FLAGS_GROUP *group_ptr, CHAR *name_ptr, UINT event_control_block_size) __attribute__((weak));
317 UINT _txe_event_flags_create_orig(TX_EVENT_FLAGS_GROUP *group_ptr, CHAR *name_ptr, UINT event_control_block_size)  __attribute__((alias("_txe_event_flags_create")));
318 
319 #ifdef __IAR_SYSTEMS_ICC__
320 #pragma weak _txe_event_flags_create
321 #pragma weak _txe_event_flags_create_orig=_txe_event_flags_create
322 #endif /* __IAR_SYSTEMS_ICC__ */
323 
324 #endif /* __inside_txe_event_flags_create */
325 
326 #ifdef __inside_txe_event_flags_delete
327 
328 #include "tx_api.h"
329 
330 UINT _txe_event_flags_delete(TX_EVENT_FLAGS_GROUP *group_ptr) __attribute__((weak));
331 UINT _txe_event_flags_delete_orig(TX_EVENT_FLAGS_GROUP *group_ptr) __attribute__((alias("_txe_event_flags_delete")));
332 
333 #ifdef __IAR_SYSTEMS_ICC__
334 #pragma weak _txe_event_flags_delete
335 #pragma weak _txe_event_flags_delete_orig=_txe_event_flags_delete
336 #endif /* __IAR_SYSTEMS_ICC__ */
337 
338 #endif /* __inside_txe_event_flags_delete */
339 
340 #ifdef __inside_txe_event_flags_get
341 
342 #include "tx_api.h"
343 
344 UINT _txe_event_flags_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG requested_flags, UINT get_option, ULONG *actual_flags_ptr, ULONG wait_option) __attribute__((weak));
345 UINT _txe_event_flags_get_orig(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG requested_flags, UINT get_option, ULONG *actual_flags_ptr, ULONG wait_option) __attribute__((alias("_txe_event_flags_get")));
346 
347 #ifdef __IAR_SYSTEMS_ICC__
348 #pragma weak _txe_event_flags_get
349 #pragma weak _txe_event_flags_get_orig=_txe_event_flags_get
350 #endif /* __IAR_SYSTEMS_ICC__ */
351 
352 #endif /* __inside_txe_event_flags_get */
353 
354 #ifdef __inside_txe_event_flags_info_get
355 
356 #include "tx_api.h"
357 
358 UINT _txe_event_flags_info_get(TX_EVENT_FLAGS_GROUP *group_ptr, CHAR **name, ULONG *current_flags, TX_THREAD **first_suspended, ULONG *suspended_count, TX_EVENT_FLAGS_GROUP **next_group) __attribute__((weak));
359 UINT _txe_event_flags_info_get_orig(TX_EVENT_FLAGS_GROUP *group_ptr, CHAR **name, ULONG *current_flags, TX_THREAD **first_suspended, ULONG *suspended_count, TX_EVENT_FLAGS_GROUP **next_group) __attribute__((alias("_txe_event_flags_info_get")));
360 
361 #ifdef __IAR_SYSTEMS_ICC__
362 #pragma weak _txe_event_flags_info_get
363 #pragma weak _txe_event_flags_info_get_orig=_txe_event_flags_info_get
364 #endif /* __IAR_SYSTEMS_ICC__ */
365 
366 #endif /* __inside_txe_event_flags_performance_system_info_get */
367 
368 #ifdef __inside_tx_event_flags_performance_info_get
369 
370 #include "tx_api.h"
371 
372 UINT _tx_event_flags_performance_info_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG *sets, ULONG *gets, ULONG *suspensions, ULONG *timeouts) __attribute__((weak));
373 UINT _tx_event_flags_performance_info_get_orig(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG *sets, ULONG *gets, ULONG *suspensions, ULONG *timeouts) __attribute__((alias("_tx_event_flags_performance_info_get")));
374 
375 #ifdef __IAR_SYSTEMS_ICC__
376 #pragma weak _tx_event_flags_performance_info_get
377 #pragma weak _tx_event_flags_performance_info_get_orig=_tx_event_flags_performance_info_get
378 #endif /* __IAR_SYSTEMS_ICC__ */
379 
380 #endif /* __inside_txe_event_flags_performance_info_get */
381 
382 #ifdef __inside_tx_event_flags_performance_system_info_get
383 
384 #include "tx_api.h"
385 #include "tx_event_flags.h"
386 #include "tx_trace.h"
387 
388 UINT  _tx_event_flags_performance_system_info_get(ULONG *sets, ULONG *gets, ULONG *suspensions, ULONG *timeouts) __attribute__((weak));
389 UINT  _tx_event_flags_performance_system_info_get_orig(ULONG *sets, ULONG *gets, ULONG *suspensions, ULONG *timeouts) __attribute__((alias("_tx_event_flags_performance_system_info_get")));
390 
391 #ifdef __IAR_SYSTEMS_ICC__
392 #pragma weak _tx_event_flags_performance_system_info_get
393 #pragma weak _tx_event_flags_performance_system_info_get_orig=_tx_event_flags_performance_system_info_get
394 #endif /* __IAR_SYSTEMS_ICC__ */
395 
396 #endif /* __inside_tx_event_flags_performance_ssytem_info_get */
397 
398 #ifdef __inside_txe_event_flags_set
399 
400 #include "tx_api.h"
401 
402 UINT  _txe_event_flags_set(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG flags_to_set, UINT set_option) __attribute__((weak));
403 UINT  _txe_event_flags_set_orig(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG flags_to_set, UINT set_option) __attribute__((alias("_txe_event_flags_set")));
404 
405 #ifdef __IAR_SYSTEMS_ICC__
406 #pragma weak _txe_event_flags_set
407 #pragma weak _txe_event_flags_set_orig=_txe_event_flags_set
408 #endif /* __IAR_SYSTEMS_ICC__ */
409 
410 #endif /* __inside_txe_event_flags_set */
411 
412 #ifdef __inside_txe_event_flags_set_notify
413 
414 #include "tx_api.h"
415 
416 UINT _txe_event_flags_set_notify(TX_EVENT_FLAGS_GROUP *group_ptr, VOID (*events_set_notify)(TX_EVENT_FLAGS_GROUP *notify_group_ptr)) __attribute__((weak));
417 UINT _txe_event_flags_set_notify_orig(TX_EVENT_FLAGS_GROUP *group_ptr, VOID (*events_set_notify)(TX_EVENT_FLAGS_GROUP *notify_group_ptr)) __attribute((alias("_txe_event_flags_set_notify")));
418 
419 #ifdef __IAR_SYSTEMS_ICC__
420 #pragma weak _txe_event_flags_set_notify
421 #pragma weak _txe_event_flags_set_notify_orig=_txe_event_flags_set_notify
422 #endif /* __IAR_SYSTEMS_ICC__ */
423 
424 #endif /* __inside_txe_event_flags_set_notify */
425 
426 
427 /* Mutex tracing hooks */
428 #ifdef __inside_txe_mutex_create
429 
430 #include "tx_api.h"
431 #include "tx_thread.h"
432 #include "tx_trace.h"
433 #include "tx_mutex.h"
434 
435 UINT _txe_mutex_create(TX_MUTEX *mutex_ptr, CHAR *name_ptr, UINT inherit, UINT mutex_control_block_size) __attribute__((weak));
436 UINT _txe_mutex_create_orig(TX_MUTEX *mutex_ptr, CHAR *name_ptr, UINT inherit, UINT mutex_control_block_size) __attribute__((alias("_txe_mutex_create")));
437 
438 #ifdef __IAR_SYSTEMS_ICC__
439 #pragma weak _txe_mutex_create
440 #pragma weak _txe_mutex_create_orig=_txe_mutex_create
441 #endif /* __IAR_SYSTEMS_ICC__ */
442 
443 #endif /* __insider_txe_mutex_create */
444 
445 #ifdef __inside_txe_mutex_delete
446 
447 #include "tx_api.h"
448 #include "tx_thread.h"
449 #include "tx_timer.h"
450 #include "tx_mutex.h"
451 #include "tx_trace.h"
452 
453 UINT _txe_mutex_delete(TX_MUTEX *mutex_ptr) __attribute__((weak));
454 UINT _txe_mutex_delete_orig(TX_MUTEX *mutex_ptr) __attribute__((alias("_txe_mutex_delete")));
455 
456 #ifdef __IAR_SYSTEMS_ICC__
457 #pragma weak _txe_mutex_delete
458 #pragma weak _txe_mutex_delete_orig=_txe_mutex_delete
459 #endif /* __IAR_SYSTEMS_ICC__ */
460 
461 #endif /* __inside_txe_mutex_delete */
462 
463 #ifdef __inside_txe_mutex_get
464 
465 #include "tx_api.h"
466 #include "tx_initialize.h"
467 #include "tx_thread.h"
468 #ifndef TX_TIMER_PROCESS_IN_ISR
469 #include "tx_timer.h"
470 #endif
471 #include "tx_mutex.h"
472 #include "tx_trace.h"
473 
474 UINT _txe_mutex_get(TX_MUTEX *mutex_ptr, ULONG wait_option) __attribute__((weak));
475 UINT _txe_mutex_get_orig(TX_MUTEX *mutex_ptr, ULONG wait_option) __attribute__((alias("_txe_mutex_get")));
476 
477 #ifdef __IAR_SYSTEMS_ICC__
478 #pragma weak _txe_mutex_get
479 #pragma weak _txe_mutex_get_orig=_txe_mutex_get
480 #endif /* __IAR_SYSTEMS_ICC__ */
481 
482 #endif /* __inside_txe_mutex_get */
483 
484 #ifdef __inside_txe_mutex_info_get
485 
486 #include "tx_api.h"
487 #include "tx_mutex.h"
488 #include "tx_trace.h"
489 
490 UINT _txe_mutex_info_get(TX_MUTEX *mutex_ptr, CHAR **name, ULONG *count, TX_THREAD **owner, TX_THREAD **first_suspended, ULONG *suspended_count, TX_MUTEX **next_mutex) __attribute__((weak));
491 UINT _txe_mutex_info_get_orig(TX_MUTEX *mutex_ptr, CHAR **name, ULONG *count, TX_THREAD **owner, TX_THREAD **first_suspended, ULONG *suspended_count, TX_MUTEX **next_mutex) __attribute__((alias("_txe_mutex_info_get")));
492 
493 #ifdef __IAR_SYSTEMS_ICC__
494 #pragma weak _txe_mutex_info_get
495 #pragma weak _txe_mutex_info_get_orig=_txe_mutex_info_get
496 #endif /* __IAR_SYSTEMS_ICC__ */
497 
498 #endif /* __inside_txe_mutex_info_get */
499 
500 #ifdef __inside_tx_mutex_performance_info_get
501 
502 #include "tx_api.h"
503 #include "tx_mutex.h"
504 #include "tx_trace.h"
505 
506 UINT _tx_mutex_performance_info_get(TX_MUTEX *mutex_ptr, ULONG *puts, ULONG *gets, ULONG *suspensions, ULONG *timeouts, ULONG *inversions, ULONG *inheritances) __attribute__((weak));
507 UINT _tx_mutex_performance_info_get_orig(TX_MUTEX *mutex_ptr, ULONG *puts, ULONG *gets, ULONG *suspensions, ULONG *timeouts, ULONG *inversions, ULONG *inheritances) __attribute__((alias("_tx_mutex_performance_info_get")));
508 
509 #ifdef __IAR_SYSTEMS_ICC__
510 #pragma weak _tx_mutex_performance_info_get
511 #pragma weak _tx_mutex_performance_info_get_orig=_tx_mutex_performance_info_get
512 #endif /* __IAR_SYSTEMS_ICC__ */
513 
514 #endif /* __inside_tx_mutex_performance_info_get */
515 
516 #ifdef __inside_tx_mutex_performance_system_info_get
517 
518 #include "tx_api.h"
519 #include "tx_mutex.h"
520 #include "tx_trace.h"
521 
522 UINT  _tx_mutex_performance_system_info_get(ULONG *puts, ULONG *gets, ULONG *suspensions,
523                                 ULONG *timeouts, ULONG *inversions, ULONG *inheritances) __attribute__((weak));
524 UINT  _tx_mutex_performance_system_info_get_oirg(ULONG *puts, ULONG *gets, ULONG *suspensions,
525                                 ULONG *timeouts, ULONG *inversions, ULONG *inheritances) __attribute__((alias("_tx_mutex_performance_system_info_get")));
526 
527 #ifdef __IAR_SYSTEMS_ICC__
528 #pragma weak _tx_mutex_performance_system_info_get
529 #pragma weak _tx_mutex_performance_system_info_get_oirg=_tx_mutex_performance_system_info_get
530 #endif /* __IAR_SYSTEMS_ICC__ */
531 
532 #endif /* __inside_tx_mutex_performance_system_info_get */
533 
534 #ifdef __inside_txe_mutex_prioritize
535 
536 #include "tx_api.h"
537 #include "tx_mutex.h"
538 #include "tx_trace.h"
539 
540 UINT _txe_mutex_prioritize(TX_MUTEX *mutex_ptr) __attribute__((weak));
541 UINT _txe_mutex_prioritize_orig(TX_MUTEX *mutex_ptr) __attribute__((alias("_txe_mutex_prioritize")));
542 
543 #ifdef __IAR_SYSTEMS_ICC__
544 #pragma weak _txe_mutex_prioritize
545 #pragma weak _txe_mutex_prioritize_orig=_txe_mutex_prioritize
546 #endif /* __IAR_SYSTEMS_ICC__ */
547 
548 #endif /* __inside_txe_mutex_prioritize */
549 
550 #ifdef __inside_txe_mutex_put
551 
552 #include "tx_api.h"
553 #include "tx_initialize.h"
554 #include "tx_thread.h"
555 #include "tx_mutex.h"
556 
557 UINT _txe_mutex_put(TX_MUTEX *mutex_ptr) __attribute__((weak));
558 UINT _txe_mutex_put_orig(TX_MUTEX *mutex_ptr) __attribute__((alias("_txe_mutex_put")));
559 
560 #ifdef __IAR_SYSTEMS_ICC__
561 #pragma weak _txe_mutex_put
562 #pragma weak _txe_mutex_put_orig=_txe_mutex_put
563 #endif /* __IAR_SYSTEMS_ICC__ */
564 
565 #endif /* __inside_txe_mutex_put */
566 
567 
568 /* Queue tracing hooks */
569 #ifdef __inside_txe_queue_create
570 
571 #include "tx_api.h"
572 #include "tx_trace.h"
573 #include "tx_queue.h"
574 
575 UINT _txe_queue_create(TX_QUEUE *queue_ptr, CHAR *name_ptr, UINT message_size, VOID *queue_start, ULONG queue_size, UINT queue_control_block_size) __attribute__((weak));
576 UINT _txe_queue_create_orig(TX_QUEUE *queue_ptr, CHAR *name_ptr, UINT message_size, VOID *queue_start, ULONG queue_size, UINT queue_control_block_size) __attribute__((alias("_txe_queue_create")));
577 
578 #ifdef __IAR_SYSTEMS_ICC__
579 #pragma weak _txe_queue_create
580 #pragma weak _txe_queue_create_orig=_txe_queue_create
581 #endif /* __IAR_SYSTEMS_ICC__ */
582 
583 #endif /* __inside_txe_queue_create */
584 
585 #ifdef __inside_txe_queue_delete
586 
587 #include "tx_api.h"
588 #include "tx_timer.h"
589 #include "tx_thread.h"
590 #include "tx_queue.h"
591 #include "tx_trace.h"
592 
593 UINT _txe_queue_delete(TX_QUEUE *queue_ptr) __attribute__((weak));
594 UINT _txe_queue_delete_orig(TX_QUEUE *queue_ptr) __attribute__((alias("_txe_queue_delete")));
595 
596 #ifdef __IAR_SYSTEMS_ICC__
597 #pragma weak _txe_queue_delete
598 #pragma weak _txe_queue_delete_orig=_txe_queue_delete
599 #endif /* __IAR_SYSTEMS_ICC__ */
600 
601 #endif /* __inside_txe_queue_delete */
602 
603 #ifdef __inside_txe_queue_flush
604 
605 #include "tx_api.h"
606 #include "tx_queue.h"
607 
608 UINT _txe_queue_flush(TX_QUEUE *queue_ptr) __attribute__((weak));
609 UINT _txe_queue_flush_orig(TX_QUEUE *queue_ptr) __attribute__((alias("_txe_queue_flush")));
610 
611 #ifdef __IAR_SYSTEMS_ICC__
612 #pragma weak _txe_queue_flush
613 #pragma weak _txe_queue_flush_orig=_txe_queue_flush
614 #endif /* __IAR_SYSTEMS_ICC__ */
615 
616 #endif /* __inside_txe_queue_flush */
617 
618 #ifdef __inside_txe_queue_front_send
619 
620 #include "tx_api.h"
621 #include "tx_timer.h"
622 #include "tx_thread.h"
623 #include "tx_queue.h"
624 
625 UINT _txe_queue_front_send(TX_QUEUE *queue_ptr, VOID *source_ptr, ULONG wait_option) __attribute__((weak));
626 UINT _txe_queue_front_send_orig(TX_QUEUE *queue_ptr, VOID *source_ptr, ULONG wait_option) __attribute__((alias("_txe_queue_front_send")));
627 
628 #ifdef __IAR_SYSTEMS_ICC__
629 #pragma weak _txe_queue_front_send
630 #pragma weak _txe_queue_front_send_orig=_txe_queue_front_send
631 #endif /* __IAR_SYSTEMS_ICC__ */
632 
633 #endif /* __inside_txe_queue_front_send */
634 
635 #ifdef __inside_txe_queue_info_get
636 
637 #include "tx_api.h"
638 #include "tx_queue.h"
639 #include "tx_trace.h"
640 
641 UINT _txe_queue_info_get(TX_QUEUE *queue_ptr, CHAR **name, ULONG *enqueued, ULONG *available_storage, TX_THREAD **first_suspended, ULONG *suspended_count, TX_QUEUE **next_queue) __attribute__((weak));
642 UINT _txe_queue_info_get_orig(TX_QUEUE *queue_ptr, CHAR **name, ULONG *enqueued, ULONG *available_storage, TX_THREAD **first_suspended, ULONG *suspended_count, TX_QUEUE **next_queue) __attribute__((alias("_txe_queue_info_get")));
643 
644 #ifdef __IAR_SYSTEMS_ICC__
645 #pragma weak _txe_queue_info_get
646 #pragma weak _txe_queue_info_get_orig=_txe_queue_info_get
647 #endif /* __IAR_SYSTEMS_ICC__ */
648 
649 #endif /* __inside_txe_queue_info_get */
650 
651 #ifdef __inside_tx_queue_performance_info_get
652 
653 #include "tx_api.h"
654 #include "tx_queue.h"
655 #include "tx_trace.h"
656 
657 UINT _tx_queue_performance_info_get(TX_QUEUE *queue_ptr, ULONG *messages_sent, ULONG *messages_received,
658                     ULONG *empty_suspensions, ULONG *full_suspensions, ULONG *full_errors, ULONG *timeouts) __attribute__((weak));
659 UINT _tx_queue_performance_info_get_orig(TX_QUEUE *queue_ptr, ULONG *messages_sent, ULONG *messages_received,
660                     ULONG *empty_suspensions, ULONG *full_suspensions, ULONG *full_errors, ULONG *timeouts) __attribute__((alias("_tx_queue_performance_info_get")));
661 
662 #ifdef __IAR_SYSTEMS_ICC__
663 #pragma weak _tx_queue_performance_info_get
664 #pragma weak _tx_queue_performance_info_get_orig=_tx_queue_performance_info_get
665 #endif /* __IAR_SYSTEMS_ICC__ */
666 
667 #endif /* __inside_tx_queue_performance_info_get */
668 
669 #ifdef __inside_tx_queue_performance_system_info_get
670 
671 #include "tx_api.h"
672 #include "tx_queue.h"
673 #include "tx_trace.h"
674 
675 UINT  _tx_queue_performance_system_info_get(ULONG *messages_sent, ULONG *messages_received,
676                     ULONG *empty_suspensions, ULONG *full_suspensions, ULONG *full_errors, ULONG *timeouts) __attribute__((weak));
677 UINT  _tx_queue_performance_system_info_get_orig(ULONG *messages_sent, ULONG *messages_received,
678                     ULONG *empty_suspensions, ULONG *full_suspensions, ULONG *full_errors, ULONG *timeouts) __attribute__((alias("_tx_queue_performance_system_info_get")));
679 
680 #ifdef __IAR_SYSTEMS_ICC__
681 #pragma weak _tx_queue_performance_system_info_get
682 #pragma weak _tx_queue_performance_system_info_get_orig=_tx_queue_performance_system_info_get
683 #endif /* __IAR_SYSTEMS_ICC__ */
684 
685 #endif /* __inside_tx_queue_performance_system_info_get */
686 
687 #ifdef __inside_txe_queue_prioritize
688 
689 #include "tx_api.h"
690 #include "tx_queue.h"
691 #include "tx_trace.h"
692 
693 UINT _txe_queue_prioritize(TX_QUEUE *queue_ptr) __attribute__((weak));
694 UINT _txe_queue_prioritize_orig(TX_QUEUE *queue_ptr) __attribute__((alias("_txe_queue_prioritize")));
695 
696 #ifdef __IAR_SYSTEMS_ICC__
697 #pragma weak _txe_queue_prioritize
698 #pragma weak _txe_queue_prioritize_orig=_txe_queue_prioritize
699 #endif /* __IAR_SYSTEMS_ICC__ */
700 
701 #endif /* __inside_txe_queue_prioritize */
702 
703 #ifdef __inside_txe_queue_receive
704 
705 #include "tx_api.h"
706 #include "tx_timer.h"
707 #include "tx_thread.h"
708 #include "tx_queue.h"
709 
710 UINT _txe_queue_receive(TX_QUEUE *queue_ptr, VOID *destination_ptr, ULONG wait_option) __attribute__((weak));
711 UINT _txe_queue_receive_orig(TX_QUEUE *queue_ptr, VOID *destination_ptr, ULONG wait_option) __attribute__((alias("_txe_queue_receive")));
712 
713 #ifdef __IAR_SYSTEMS_ICC__
714 #pragma weak _txe_queue_receive
715 #pragma weak _txe_queue_receive_orig=_txe_queue_receive
716 #endif /* __IAR_SYSTEMS_ICC__ */
717 
718 #endif /* __inside_txe_queue_receive */
719 
720 #ifdef __inside_txe_queue_send_notify
721 
722 #include "tx_api.h"
723 #include "tx_queue.h"
724 
725 UINT _txe_queue_send_notify(TX_QUEUE *queue_ptr, VOID (*queue_send_notify)(TX_QUEUE *notify_queue_ptr)) __attribute__((weak));
726 UINT _txe_queue_send_notify_orig(TX_QUEUE *queue_ptr, VOID (*queue_send_notify)(TX_QUEUE *notify_queue_ptr)) __attribute__((alias("_txe_queue_send_notify")));
727 
728 #ifdef __IAR_SYSTEMS_ICC__
729 #pragma weak _txe_queue_send_notify
730 #pragma weak _txe_queue_send_notify_orig=_txe_queue_send_notify
731 #endif /* __IAR_SYSTEMS_ICC__ */
732 
733 #endif /* __inside_txe_queue_send_notify */
734 
735 #ifdef __inside_txe_queue_send
736 
737 #include "tx_api.h"
738 #include "tx_timer.h"
739 #include "tx_thread.h"
740 #include "tx_queue.h"
741 
742 UINT _txe_queue_send(TX_QUEUE *queue_ptr, VOID *source_ptr, ULONG wait_option) __attribute__((weak));
743 UINT _txe_queue_send_orig(TX_QUEUE *queue_ptr, VOID *source_ptr, ULONG wait_option) __attribute__((alias("_txe_queue_send")));
744 
745 #ifdef __IAR_SYSTEMS_ICC__
746 #pragma weak _txe_queue_send
747 #pragma weak _txe_queue_send_orig=_txe_queue_send
748 #endif /* __IAR_SYSTEMS_ICC__ */
749 
750 #endif /* __inside_txe_queue_send */
751 
752 /* Semaphore tracing hooks */
753 #ifdef __inside_txe_semaphore_ceiling_put
754 
755 #include "tx_api.h"
756 #include "tx_semaphore.h"
757 
758 UINT _txe_semaphore_ceiling_put(TX_SEMAPHORE *semaphore_ptr, ULONG ceiling) __attribute__((weak));
759 UINT _txe_semaphore_ceiling_put_orig(TX_SEMAPHORE *semaphore_ptr, ULONG ceiling) __attribute__((alias("_txe_semaphore_ceiling_put")));
760 
761 #ifdef __IAR_SYSTEMS_ICC__
762 #pragma weak _txe_semaphore_ceiling_put
763 #pragma weak _txe_semaphore_ceiling_put_orig=_txe_semaphore_ceiling_put
764 #endif /* __IAR_SYSTEMS_ICC__ */
765 
766 #endif /* __inside_txe_semaphore_ceiling_put */
767 
768 #ifdef __inside_txe_semaphore_create
769 
770 #include "tx_api.h"
771 #include "tx_trace.h"
772 #include "tx_semaphore.h"
773 
774 UINT _txe_semaphore_create(TX_SEMAPHORE *semaphore_ptr, CHAR *name_ptr, ULONG initial_count, UINT semaphore_control_block_size) __attribute__((weak));
775 UINT _txe_semaphore_create_orig(TX_SEMAPHORE *semaphore_ptr, CHAR *name_ptr, ULONG initial_count, UINT semaphore_control_block_size) __attribute__((alias("_txe_semaphore_create")));
776 
777 #ifdef __IAR_SYSTEMS_ICC__
778 #pragma weak _txe_semaphore_create
779 #pragma weak _txe_semaphore_create_orig=_txe_semaphore_create
780 #endif /* __IAR_SYSTEMS_ICC__ */
781 
782 #endif /* __inside_txe_semaphore_create */
783 
784 #ifdef __inside_txe_semaphore_delete
785 
786 #include "tx_api.h"
787 #include "tx_thread.h"
788 #include "tx_timer.h"
789 #include "tx_semaphore.h"
790 #include "tx_trace.h"
791 
792 UINT _txe_semaphore_delete(TX_SEMAPHORE *semaphore_ptr) __attribute__((weak));
793 UINT _txe_semaphore_delete_orig(TX_SEMAPHORE *semaphore_ptr) __attribute__((alias("_txe_semaphore_delete")));
794 
795 #ifdef __IAR_SYSTEMS_ICC__
796 #pragma weak _txe_semaphore_delete
797 #pragma weak _txe_semaphore_delete_orig=_txe_semaphore_delete
798 #endif /* __IAR_SYSTEMS_ICC__ */
799 
800 #endif /* __inside_txe_semaphore_delete */
801 
802 #ifdef __inside_txe_semaphore_get
803 
804 #include "tx_api.h"
805 #include "tx_thread.h"
806 #include "tx_timer.h"
807 #include "tx_semaphore.h"
808 #include "tx_trace.h"
809 
810 UINT  _txe_semaphore_get(TX_SEMAPHORE *semaphore_ptr, ULONG wait_option) __attribute__((weak));
811 UINT  _txe_semaphore_get_orig(TX_SEMAPHORE *semaphore_ptr, ULONG wait_option) __attribute__((alias("_txe_semaphore_get")));
812 
813 #ifdef __IAR_SYSTEMS_ICC__
814 #pragma weak _txe_semaphore_get
815 #pragma weak _txe_semaphore_get_orig=_txe_semaphore_get
816 #endif /* __IAR_SYSTEMS_ICC__ */
817 
818 #endif /* __inside_txe_semaphore_get */
819 
820 #ifdef __inside_txe_semaphore_info_get
821 
822 #include "tx_api.h"
823 #include "tx_semaphore.h"
824 #include "tx_trace.h"
825 
826 UINT  _txe_semaphore_info_get(TX_SEMAPHORE *semaphore_ptr, CHAR **name, ULONG *current_value, TX_THREAD **first_suspended, ULONG *suspended_count, TX_SEMAPHORE **next_semaphore) __attribute__((weak));
827 UINT  _txe_semaphore_info_get_orig(TX_SEMAPHORE *semaphore_ptr, CHAR **name, ULONG *current_value, TX_THREAD **first_suspended, ULONG *suspended_count, TX_SEMAPHORE **next_semaphore) __attribute__((alias("_txe_semaphore_info_get")));
828 
829 #ifdef __IAR_SYSTEMS_ICC__
830 #pragma weak _txe_semaphore_info_get
831 #pragma weak _txe_semaphore_info_get_orig=_txe_semaphore_info_get
832 #endif /* __IAR_SYSTEMS_ICC__ */
833 
834 #endif /* __inside_txe_semaphore_info_get */
835 
836 #ifdef __inside_tx_semaphore_performance_info_get
837 
838 #include "tx_api.h"
839 #include "tx_semaphore.h"
840 #include "tx_trace.h"
841 
842 UINT _tx_semaphore_performance_info_get(TX_SEMAPHORE *semaphore_ptr, ULONG *puts, ULONG *gets,
843                     ULONG *suspensions, ULONG *timeouts) __attribute__((weak));
844 UINT _tx_semaphore_performance_info_get_orig(TX_SEMAPHORE *semaphore_ptr, ULONG *puts, ULONG *gets,
845                     ULONG *suspensions, ULONG *timeouts) __attribute__((alias("_tx_semaphore_performance_info_get")));
846 
847 #ifdef __IAR_SYSTEMS_ICC__
848 #pragma weak _tx_semaphore_performance_info_get
849 #pragma weak _tx_semaphore_performance_info_get_orig=_tx_semaphore_performance_info_get
850 #endif /* __IAR_SYSTEMS_ICC__ */
851 
852 #endif /* __inside_tx_semaphore_performance_info_get */
853 
854 #ifdef __inside_tx_semaphore_performance_system_info_get
855 
856 #include "tx_api.h"
857 #include "tx_semaphore.h"
858 #include "tx_trace.h"
859 
860 UINT  _tx_semaphore_performance_system_info_get(ULONG *puts, ULONG *gets, ULONG *suspensions, ULONG *timeouts) __attribute__((weak));
861 UINT  _tx_semaphore_performance_system_info_get_oirg(ULONG *puts, ULONG *gets, ULONG *suspensions, ULONG *timeouts) __attribute__((alias("_tx_semaphore_performance_system_info_get")));
862 
863 #ifdef __IAR_SYSTEMS_ICC__
864 #pragma weak _tx_semaphore_performance_system_info_get
865 #pragma weak _tx_semaphore_performance_system_info_get_oirg=_tx_semaphore_performance_system_info_get
866 #endif /* __IAR_SYSTEMS_ICC__ */
867 
868 #endif /* __inside_tx_semaphore_preformance_system_info_get */
869 
870 #ifdef __inside_txe_semaphore_prioritize
871 
872 #include "tx_api.h"
873 #include "tx_semaphore.h"
874 #include "tx_trace.h"
875 
876 UINT _txe_semaphore_prioritize(TX_SEMAPHORE *semaphore_ptr) __attribute__((weak));
877 UINT _txe_semaphore_prioritize_orig(TX_SEMAPHORE *semaphore_ptr) __attribute__((alias("_txe_semaphore_prioritize")));
878 
879 #ifdef __IAR_SYSTEMS_ICC__
880 #pragma weak _txe_semaphore_prioritize
881 #pragma weak _txe_semaphore_prioritize_orig=_txe_semaphore_prioritize
882 #endif /* __IAR_SYSTEMS_ICC__ */
883 
884 #endif /* __inside_txe_semaphore_prioritize */
885 
886 #ifdef __inside_txe_semaphore_put_notify
887 
888 #include "tx_api.h"
889 #include "tx_semaphore.h"
890 
891 UINT _txe_semaphore_put_notify(TX_SEMAPHORE *semaphore_ptr, VOID (*semaphore_put_notify)(TX_SEMAPHORE *notify_semaphore_ptr)) __attribute__((weak));
892 UINT _txe_semaphore_put_notify_orig(TX_SEMAPHORE *semaphore_ptr, VOID (*semaphore_put_notify)(TX_SEMAPHORE *notify_semaphore_ptr)) __attribute__((alias("_txe_semaphore_put_notify")));
893 
894 #ifdef __IAR_SYSTEMS_ICC__
895 #pragma weak _txe_semaphore_put_notify
896 #pragma weak _txe_semaphore_put_notify_orig=_txe_semaphore_put_notify
897 #endif /* __IAR_SYSTEMS_ICC__ */
898 
899 #endif /* __inside_txe_semaphore_put_notify */
900 
901 #ifdef __inside_txe_semaphore_put
902 
903 #include "tx_api.h"
904 #include "tx_semaphore.h"
905 
906 UINT _txe_semaphore_put(TX_SEMAPHORE *semaphore_ptr) __attribute__((weak));
907 UINT _txe_semaphore_put_orig(TX_SEMAPHORE *semaphore_ptr) __attribute__((alias("_txe_semaphore_put")));
908 
909 #ifdef __IAR_SYSTEMS_ICC__
910 #pragma weak _txe_semaphore_put
911 #pragma weak _txe_semaphore_put_orig=_txe_semaphore_put
912 #endif /* __IAR_SYSTEMS_ICC__ */
913 
914 #endif /* __inside_txe_semaphore_put */
915 
916 
917 /* Thread tracing hooks */
918 #ifdef __inside_txe_thread_create
919 
920 #include "tx_api.h"
921 #include "tx_trace.h"
922 #include "tx_thread.h"
923 #include "tx_initialize.h"
924 
925 UINT _txe_thread_create(TX_THREAD *thread_ptr, CHAR *name_ptr, VOID (*entry_function)(ULONG id), ULONG entry_input,
926         VOID *stack_start, ULONG stack_size, UINT priority, UINT preempt_threshold,
927         ULONG time_slice, UINT auto_start, UINT thread_control_block_size) __attribute__((weak));
928 UINT _txe_thread_create_orig(TX_THREAD *thread_ptr, CHAR *name_ptr, VOID (*entry_function)(ULONG id), ULONG entry_input,
929                             VOID *stack_start, ULONG stack_size, UINT priority, UINT preempt_threshold,
930                             ULONG time_slice, UINT auto_start, UINT thread_control_block_size) __attribute__((alias("_txe_thread_create")));
931 
932 #ifdef __IAR_SYSTEMS_ICC__
933 #pragma weak _txe_thread_create
934 #pragma weak _txe_thread_create_orig=_txe_thread_create
935 #endif /* __IAR_SYSTEMS_ICC__ */
936 
937 #endif /* __inside_txe_thread_create */
938 
939 #ifdef __inside_txe_thread_delete
940 
941 #include "tx_api.h"
942 #include "tx_thread.h"
943 #include "tx_trace.h"
944 
945 UINT _txe_thread_delete(TX_THREAD *thread_ptr) __attribute__((weak));
946 UINT _txe_thread_delete_orig(TX_THREAD *thread_ptr) __attribute__((alias("_txe_thread_delete")));
947 
948 #ifdef __IAR_SYSTEMS_ICC__
949 #pragma weak _txe_thread_delete
950 #pragma weak _txe_thread_delete_orig=_txe_thread_delete
951 #endif /* __IAR_SYSTEMS_ICC__ */
952 
953 #endif /* __inside_txe_thread_delete */
954 
955 #ifdef __inside_txe_thread_entry_exit_notify
956 
957 #include "tx_api.h"
958 #include "tx_thread.h"
959 
960 UINT _txe_thread_entry_exit_notify(TX_THREAD *thread_ptr, VOID (*thread_entry_exit_notify)(TX_THREAD *notify_thread_ptr, UINT type)) __attribute__((weak));
961 UINT _txe_thread_entry_exit_notify_orig(TX_THREAD *thread_ptr, VOID (*thread_entry_exit_notify)(TX_THREAD *notify_thread_ptr, UINT type)) __attribute__((alias("_txe_thread_entry_exit_notify")));
962 
963 #ifdef __IAR_SYSTEMS_ICC__
964 #pragma weak _txe_thread_entry_exit_notify
965 #pragma weak _txe_thread_entry_exit_notify_orig=_txe_thread_entry_exit_notify
966 #endif /* __IAR_SYSTEMS_ICC__ */
967 
968 #endif /* __inside_txe_thread_entry_exit_notify */
969 
970 #ifdef __inside_txe_thread_info_get
971 
972 #include "tx_api.h"
973 #include "tx_thread.h"
974 #include "tx_trace.h"
975 
976 UINT _txe_thread_info_get(TX_THREAD *thread_ptr, CHAR **name, UINT *state, ULONG *run_count, UINT *priority, UINT *preemption_threshold, ULONG *time_slice, TX_THREAD **next_thread, TX_THREAD **next_suspended_thread) __attribute__((weak));
977 UINT _txe_thread_info_get_orig(TX_THREAD *thread_ptr, CHAR **name, UINT *state, ULONG *run_count, UINT *priority, UINT *preemption_threshold, ULONG *time_slice, TX_THREAD **next_thread, TX_THREAD **next_suspended_thread) __attribute__((alias("_txe_thread_info_get")));
978 
979 #ifdef __IAR_SYSTEMS_ICC__
980 #pragma weak _txe_thread_info_get
981 #pragma weak _txe_thread_info_get_orig=_txe_thread_info_get
982 #endif /* __IAR_SYSTEMS_ICC__ */
983 
984 #endif /* __inside_txe_thread_info_get */
985 
986 #ifdef __inside_tx_thread_performance_info_get
987 
988 #include "tx_api.h"
989 #include "tx_thread.h"
990 #include "tx_trace.h"
991 
992 UINT _tx_thread_performance_info_get(TX_THREAD *thread_ptr, ULONG *resumptions, ULONG *suspensions,
993                 ULONG *solicited_preemptions, ULONG *interrupt_preemptions, ULONG *priority_inversions,
994                 ULONG *time_slices, ULONG *relinquishes, ULONG *timeouts, ULONG *wait_aborts, TX_THREAD **last_preempted_by) __attribute__((weak));
995 UINT _tx_thread_performance_info_get_orig(TX_THREAD *thread_ptr, ULONG *resumptions, ULONG *suspensions,
996                 ULONG *solicited_preemptions, ULONG *interrupt_preemptions, ULONG *priority_inversions,
997                 ULONG *time_slices, ULONG *relinquishes, ULONG *timeouts, ULONG *wait_aborts, TX_THREAD **last_preempted_by) __attribute__((alias("_tx_thread_performance_info_get")));
998 
999 #ifdef __IAR_SYSTEMS_ICC__
1000 #pragma weak _tx_thread_performance_info_get
1001 #pragma weak _tx_thread_performance_info_get_orig=_tx_thread_performance_info_get
1002 #endif /* __IAR_SYSTEMS_ICC__ */
1003 
1004 #endif /* __inside_txe_thread_info_get */
1005 
1006 #ifdef __inside_tx_thread_performance_system_info_get
1007 
1008 #include "tx_api.h"
1009 #include "tx_thread.h"
1010 #include "tx_trace.h"
1011 
1012 UINT  _tx_thread_performance_system_info_get(ULONG *resumptions, ULONG *suspensions,
1013                 ULONG *solicited_preemptions, ULONG *interrupt_preemptions, ULONG *priority_inversions,
1014                 ULONG *time_slices, ULONG *relinquishes, ULONG *timeouts, ULONG *wait_aborts,
1015                 ULONG *non_idle_returns, ULONG *idle_returns) __attribute__((weak));
1016 UINT  _tx_thread_performance_system_info_get_oirg(ULONG *resumptions, ULONG *suspensions,
1017                 ULONG *solicited_preemptions, ULONG *interrupt_preemptions, ULONG *priority_inversions,
1018                 ULONG *time_slices, ULONG *relinquishes, ULONG *timeouts, ULONG *wait_aborts,
1019                 ULONG *non_idle_returns, ULONG *idle_returns) __attribute__((alias("_tx_thread_performance_system_info_get")));
1020 
1021 #ifdef __IAR_SYSTEMS_ICC__
1022 #pragma weak _tx_thread_performance_system_info_get
1023 #pragma weak _tx_thread_performance_system_info_get_oirg=_tx_thread_performance_system_info_get
1024 #endif /* __IAR_SYSTEMS_ICC__ */
1025 
1026 #endif /* __inside_tx_thread_performance_system_info_get */
1027 
1028 #ifdef __inside_txe_thread_preemption_change
1029 
1030 #include "tx_api.h"
1031 #include "tx_thread.h"
1032 
1033 UINT _txe_thread_preemption_change(TX_THREAD *thread_ptr, UINT new_threshold, UINT *old_threshold) __attribute__((weak));
1034 UINT _txe_thread_preemption_change_orig(TX_THREAD *thread_ptr, UINT new_threshold, UINT *old_threshold) __attribute__((alias("_txe_thread_preemption_change")));
1035 
1036 #ifdef __IAR_SYSTEMS_ICC__
1037 #pragma weak _txe_thread_preemption_change
1038 #pragma weak _txe_thread_preemption_change_orig=_txe_thread_preemption_change
1039 #endif /* __IAR_SYSTEMS_ICC__ */
1040 
1041 #endif /* __inside_txe_thread_preemption_change */
1042 
1043 #ifdef __inside_txe_thread_priority_change
1044 
1045 #include "tx_api.h"
1046 #include "tx_thread.h"
1047 
1048 UINT _txe_thread_priority_change(TX_THREAD *thread_ptr, UINT new_priority, UINT *old_priority) __attribute__((weak));
1049 UINT _txe_thread_priority_change_orig(TX_THREAD *thread_ptr, UINT new_priority, UINT *old_priority) __attribute__((alias("_txe_thread_priority_change")));
1050 
1051 #ifdef __IAR_SYSTEMS_ICC__
1052 #pragma weak _txe_thread_priority_change
1053 #pragma weak _txe_thread_priority_change_orig=_txe_thread_priority_change
1054 #endif /* __IAR_SYSTEMS_ICC__ */
1055 
1056 #endif /* __inside_txe_thread_priority_change */
1057 
1058 #ifdef __inside_txe_thread_reset
1059 
1060 #include "tx_api.h"
1061 #include "tx_thread.h"
1062 #include "tx_timer.h"
1063 
1064 UINT _txe_thread_reset(TX_THREAD *thread_ptr) __attribute__((weak));
1065 UINT _txe_thread_reset_orig(TX_THREAD *thread_ptr) __attribute__((alias("_txe_thread_reset")));
1066 
1067 #ifdef __IAR_SYSTEMS_ICC__
1068 #pragma weak _txe_thread_reset
1069 #pragma weak _txe_thread_reset_orig=_txe_thread_reset
1070 #endif /* __IAR_SYSTEMS_ICC__ */
1071 
1072 #endif /* __inside_txe_thread_reset */
1073 
1074 #ifdef __inside_txe_thread_resume
1075 
1076 #include "tx_api.h"
1077 #include "tx_thread.h"
1078 
1079 UINT _txe_thread_resume(TX_THREAD *thread_ptr) __attribute__((weak));
1080 UINT _txe_thread_resume_orig(TX_THREAD *thread_ptr) __attribute__((alias("_txe_thread_resume")));
1081 
1082 #ifdef __IAR_SYSTEMS_ICC__
1083 #pragma weak _txe_thread_resume
1084 #pragma weak _txe_thread_resume_orig=_txe_thread_resume
1085 #endif /* __IAR_SYSTEMS_ICC__ */
1086 
1087 #endif /* __inside_txe_thread_resume */
1088 
1089 #ifdef __inside_tx_thread_sleep
1090 
1091 #include "tx_api.h"
1092 #include "tx_thread.h"
1093 
1094 UINT _tx_thread_sleep(ULONG timer_ticks) __attribute__((weak));
1095 UINT _tx_thread_sleep_orig(ULONG timer_ticks) __attribute__((alias("_tx_thread_sleep")));
1096 
1097 #ifdef __IAR_SYSTEMS_ICC__
1098 #pragma weak _tx_thread_sleep
1099 #pragma weak _tx_thread_sleep_orig=_tx_thread_sleep
1100 #endif /* __IAR_SYSTEMS_ICC__ */
1101 
1102 #endif /* __inside_txe_thread_sleep */
1103 
1104 #ifdef __inside_tx_thread_stack_error_notify
1105 
1106 #include "tx_api.h"
1107 #include "tx_thread.h"
1108 
1109 UINT _tx_thread_stack_error_notify(VOID (*stack_error_handler)(TX_THREAD *thread_ptr)) __attribute__((weak));
1110 UINT _tx_thread_stack_error_notify_orig(VOID (*stack_error_handler)(TX_THREAD *thread_ptr)) __attribute__((alias("_tx_thread_stack_error_notify")));
1111 
1112 #ifdef __IAR_SYSTEMS_ICC__
1113 #pragma weak _tx_thread_stack_error_notify
1114 #pragma weak _tx_thread_stack_error_notify_orig=_tx_thread_stack_error_notify
1115 #endif /* __IAR_SYSTEMS_ICC__ */
1116 
1117 #endif /* _tx_thread_stack_error_notify */
1118 
1119 #ifdef __inside_txe_thread_suspend
1120 
1121 #include "tx_api.h"
1122 #include "tx_thread.h"
1123 
1124 UINT _txe_thread_suspend(TX_THREAD *thread_ptr) __attribute__((weak));
1125 UINT _txe_thread_suspend_orig(TX_THREAD *thread_ptr) __attribute__((alias("_txe_thread_suspend")));
1126 
1127 #ifdef __IAR_SYSTEMS_ICC__
1128 #pragma weak _txe_thread_suspend
1129 #pragma weak _txe_thread_suspend_orig=_txe_thread_suspend
1130 #endif /* __IAR_SYSTEMS_ICC__ */
1131 
1132 #endif /* __inside_txe_thread_suspend */
1133 
1134 #ifdef __inside_txe_thread_terminate
1135 
1136 #include "tx_api.h"
1137 #include "tx_thread.h"
1138 
1139 UINT _txe_thread_terminate(TX_THREAD *thread_ptr) __attribute__((weak));
1140 UINT _txe_thread_terminate_orig(TX_THREAD *thread_ptr) __attribute__((alias("_txe_thread_terminate")));
1141 
1142 #ifdef __IAR_SYSTEMS_ICC__
1143 #pragma weak _txe_thread_terminate
1144 #pragma weak _txe_thread_terminate_orig=_txe_thread_terminate
1145 #endif /* __IAR_SYSTEMS_ICC__ */
1146 
1147 #endif /* __inside_txe_thread_terminate */
1148 
1149 #ifdef __inside_tx_thread_time_slice
1150 
1151 #include "tx_api.h"
1152 #include "tx_thread.h"
1153 
1154 VOID _tx_thread_time_slice(VOID) __attribute__((weak));
1155 VOID _tx_thread_time_slice_orig(VOID) __attribute((alias("_tx_thread_time_slice")));
1156 
1157 #ifdef __IAR_SYSTEMS_ICC__
1158 #pragma weak _tx_thread_time_slice
1159 #pragma weak _tx_thread_time_slice_orig=_tx_thread_time_slice
1160 #endif /* __IAR_SYSTEMS_ICC__ */
1161 
1162 #endif /* __inside_tx_thread_time_slice */
1163 
1164 #ifdef __inside_txe_thread_time_slice_change
1165 
1166 #include "tx_api.h"
1167 #include "tx_thread.h"
1168 
1169 UINT _txe_thread_time_slice_change(TX_THREAD *thread_ptr, ULONG new_time_slice, ULONG *old_time_slice) __attribute__((weak));
1170 UINT _txe_thread_time_slice_change_orig(TX_THREAD *thread_ptr, ULONG new_time_slice, ULONG *old_time_slice) __attribute__((alias("_txe_thread_time_slice_change")));
1171 
1172 #ifdef __IAR_SYSTEMS_ICC__
1173 #pragma weak _txe_thread_time_slice_change
1174 #pragma weak _txe_thread_time_slice_change_orig=_txe_thread_time_slice_change
1175 #endif /* __IAR_SYSTEMS_ICC__ */
1176 
1177 #endif /* __inside_txe_thread_time_slice_change */
1178 
1179 #ifdef __inside_txe_thread_wait_abort
1180 
1181 #include "tx_api.h"
1182 #include "tx_thread.h"
1183 
1184 UINT _txe_thread_wait_abort(TX_THREAD  *thread_ptr) __attribute__((weak));
1185 UINT _txe_thread_wait_abort_orig(TX_THREAD  *thread_ptr) __attribute__((alias("_txe_thread_wait_abort")));
1186 
1187 #ifdef __IAR_SYSTEMS_ICC__
1188 #pragma weak _txe_thread_wait_abort
1189 #pragma weak _txe_thread_wait_abort_orig=_txe_thread_wait_abort
1190 #endif /* __IAR_SYSTEMS_ICC__ */
1191 
1192 #endif /* __inside_txe_thread_wait_abort */
1193 
1194 
1195 /* Timer tracing hooks */
1196 #ifdef __inside_tx_time_get
1197 
1198 #include "tx_api.h"
1199 #include "tx_timer.h"
1200 
1201 ULONG _tx_time_get(VOID) __attribute__((weak));
1202 ULONG _tx_time_get_orig(VOID) __attribute__((alias("_tx_time_get")));
1203 
1204 #ifdef __IAR_SYSTEMS_ICC__
1205 #pragma weak _tx_time_get
1206 #pragma weak _tx_time_get_orig=_tx_time_get
1207 #endif /* __IAR_SYSTEMS_ICC__ */
1208 
1209 #endif /* __inside_tx_time_get */
1210 
1211 #ifdef __inside_tx_time_set
1212 
1213 #include "tx_api.h"
1214 #include "tx_timer.h"
1215 
1216 VOID _tx_time_set(ULONG new_time) __attribute((weak));
1217 VOID _tx_time_set_orig(ULONG new_time) __attribute((alias("_tx_time_set")));
1218 
1219 #ifdef __IAR_SYSTEMS_ICC__
1220 #pragma weak _tx_time_set
1221 #pragma weak _tx_time_set_orig=_tx_time_set
1222 #endif /* __IAR_SYSTEMS_ICC__ */
1223 
1224 #endif /* __inside_tx_time_set */
1225 
1226 #ifdef __inside_txe_timer_activate
1227 
1228 #include "tx_api.h"
1229 #include "tx_timer.h"
1230 
1231 UINT _txe_timer_activate(TX_TIMER *timer_ptr) __attribute__((weak));
1232 UINT _txe_timer_activate_orig(TX_TIMER *timer_ptr) __attribute__((alias("_txe_timer_activate")));
1233 
1234 #ifdef __IAR_SYSTEMS_ICC__
1235 #pragma weak _txe_timer_activate
1236 #pragma weak _txe_timer_activate_orig=_txe_timer_activate
1237 #endif /* __IAR_SYSTEMS_ICC__ */
1238 
1239 #endif /* __inside_txe_timer_active */
1240 
1241 #ifdef __inside_txe_timer_change
1242 
1243 #include "tx_api.h"
1244 #include "tx_initialize.h"
1245 #include "tx_thread.h"
1246 #include "tx_timer.h"
1247 
1248 UINT _txe_timer_change(TX_TIMER *timer_ptr, ULONG initial_ticks, ULONG reschedule_ticks) __attribute__((weak));
1249 UINT _txe_timer_change_orig(TX_TIMER *timer_ptr, ULONG initial_ticks, ULONG reschedule_ticks) __attribute__((alias("_txe_timer_change")));
1250 
1251 #ifdef __IAR_SYSTEMS_ICC__
1252 #pragma weak _txe_timer_change
1253 #pragma weak _txe_timer_change_orig=_txe_timer_change
1254 #endif /* __IAR_SYSTEMS_ICC__ */
1255 
1256 #endif /* __inside_txe_timer_change */
1257 
1258 #ifdef __inside_txe_timer_create
1259 
1260 #include "tx_api.h"
1261 #include "tx_trace.h"
1262 #include "tx_timer.h"
1263 
1264 UINT _txe_timer_create(TX_TIMER *timer_ptr, CHAR *name_ptr,
1265             VOID (*expiration_function)(ULONG id), ULONG expiration_input,
1266             ULONG initial_ticks, ULONG reschedule_ticks, UINT auto_activate, UINT timer_control_block_size) __attribute__((weak));
1267 UINT _txe_timer_create_orig(TX_TIMER *timer_ptr, CHAR *name_ptr,
1268             VOID (*expiration_function)(ULONG id), ULONG expiration_input,
1269             ULONG initial_ticks, ULONG reschedule_ticks, UINT auto_activate, UINT timer_control_block_size) __attribute__((alias("_txe_timer_create")));
1270 
1271 #ifdef __IAR_SYSTEMS_ICC__
1272 #pragma weak _txe_timer_create
1273 #pragma weak _txe_timer_create_orig=_txe_timer_create
1274 #endif /* __IAR_SYSTEMS_ICC__ */
1275 
1276 #endif /* __inside_txe_timer_create */
1277 
1278 #ifdef __inside_txe_timer_deactivate
1279 
1280 #include "tx_api.h"
1281 #include "tx_timer.h"
1282 
1283 UINT  _txe_timer_deactivate(TX_TIMER *timer_ptr) __attribute__((weak));
1284 UINT  _txe_timer_deactivate_orig(TX_TIMER *timer_ptr) __attribute__((alias("_txe_timer_deactivate")));
1285 
1286 #ifdef __IAR_SYSTEMS_ICC__
1287 #pragma weak _txe_timer_deactivate
1288 #pragma weak _txe_timer_deactivate_orig=_txe_timer_deactivate
1289 #endif /* __IAR_SYSTEMS_ICC__ */
1290 
1291 #endif /* __inside_txe_timer_deactivate */
1292 
1293 #ifdef __inside_txe_timer_delete
1294 
1295 #include "tx_api.h"
1296 #include "tx_thread.h"
1297 #include "tx_timer.h"
1298 #include "tx_trace.h"
1299 
1300 UINT  _txe_timer_delete(TX_TIMER *timer_ptr) __attribute__((weak));
1301 UINT  _txe_timer_delete_orig(TX_TIMER *timer_ptr) __attribute__((alias("_txe_timer_delete")));
1302 
1303 #ifdef __IAR_SYSTEMS_ICC__
1304 #pragma weak _txe_timer_delete
1305 #pragma weak _txe_timer_delete_orig=_txe_timer_delete
1306 #endif /* __IAR_SYSTEMS_ICC__ */
1307 
1308 #endif /* __inside_txe_timer_delete */
1309 
1310 #ifdef __inside_txe_timer_info_get
1311 
1312 #include "tx_api.h"
1313 #include "tx_timer.h"
1314 #include "tx_trace.h"
1315 
1316 UINT _txe_timer_info_get(TX_TIMER *timer_ptr, CHAR **name, UINT *active, ULONG *remaining_ticks, ULONG *reschedule_ticks, TX_TIMER **next_timer) __attribute__((weak));
1317 UINT _txe_timer_info_get_orig(TX_TIMER *timer_ptr, CHAR **name, UINT *active, ULONG *remaining_ticks, ULONG *reschedule_ticks, TX_TIMER **next_timer) __attribute__((alias("_txe_timer_info_get")));
1318 
1319 #ifdef __IAR_SYSTEMS_ICC__
1320 #pragma weak _txe_timer_info_get
1321 #pragma weak _txe_timer_info_get_orig=_txe_timer_info_get
1322 #endif /* __IAR_SYSTEMS_ICC__ */
1323 
1324 #endif /* __inside_txe_timer_info_get */
1325 
1326 #ifdef __inside_tx_timer_performance_info_get
1327 
1328 #include "tx_api.h"
1329 #include "tx_timer.h"
1330 #include "tx_trace.h"
1331 
1332 UINT _tx_timer_performance_info_get(TX_TIMER *timer_ptr, ULONG *activates, ULONG *reactivates, ULONG *deactivates, ULONG *expirations, ULONG *expiration_adjusts) __attribute__((weak));
1333 UINT _tx_timer_performance_info_get_orig(TX_TIMER *timer_ptr, ULONG *activates, ULONG *reactivates, ULONG *deactivates, ULONG *expirations, ULONG *expiration_adjusts) __attribute__((alias("_tx_timer_performance_info_get")));
1334 
1335 #ifdef __IAR_SYSTEMS_ICC__
1336 #pragma weak _tx_timer_performance_info_get
1337 #pragma weak _tx_timer_performance_info_get_orig=_tx_timer_performance_info_get
1338 #endif /* __IAR_SYSTEMS_ICC__ */
1339 
1340 #endif /* __inside_tx_performance_info_get */
1341 
1342 #ifdef __inside_trcEvent
1343 
1344 #include <trcRecorder.h>
1345 
1346 traceResult xTraceEventBeginRawOffline(uint32_t uiSize, TraceEventHandle_t* pxEventHandle) __attribute__((weak));
1347 traceResult xTraceEventBeginRawOffline_orig(uint32_t uiSize, TraceEventHandle_t* pxEventHandle) __attribute__((alias("xTraceEventBeginRawOffline")));
1348 traceResult xTraceEventEndOffline(TraceEventHandle_t xEventHandle) __attribute__((weak));
1349 traceResult xTraceEventEndOffline_orig(TraceEventHandle_t xEventHandle) __attribute__((alias("xTraceEventEndOffline")));
1350 
1351 #ifdef __IAR_SYSTEMS_ICC__
1352 #pragma weak xTraceEventBeginRawOffline
1353 #pragma weak xTraceEventBeginRawOffline_orig=xTraceEventBeginRawOffline
1354 #pragma weak xTraceEventEndOffline
1355 #pragma weak xTraceEventEndOffline_orig=xTraceEventEndOffline
1356 #endif /* __IAR_SYSTEMS_ICC__ */
1357 
1358 #endif /* __inside_trcEvent */
1359 
1360 #ifdef __inside_trcISR
1361 
1362 #include <trcRecorder.h>
1363 
1364 traceResult xTraceISREnd(TraceBaseType_t uxIsTaskSwitchRequired) __attribute__((weak));
1365 traceResult xTraceISREnd_orig(TraceBaseType_t uxIsTaskSwitchRequired) __attribute__((alias("xTraceISREnd")));
1366 
1367 #ifdef __IAR_SYSTEMS_ICC__
1368 #pragma weak xTraceISREnd
1369 #pragma weak xTraceISREnd_orig=xTraceISREnd
1370 #endif /* __IAR_SYSTEMS_ICC__ */
1371 
1372 #endif
1373 
1374 #endif /* TRC_CTI_H_ */
1375