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