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