1 ThreadX 2 3For version 6 and higher, please refer to the release notes on GitHub at https://github.com/eclipse-threadx/threadx/releases. 4Below is the revision history for 5.x. 5 61. ThreadX: 7 802-01-2019 ThreadX generic code version 5.9. This release includes the following modifications: 9 10 tx_api.h Changed minor version constant, and added 11 a macro to disable warning of parameter 12 not used. 13 tx_event_flags_cleanup.c Added reset of suspension list processing 14 when event flag set is interrupted. 15 tx_event_flags_set.c Moved setup of notify callback so that it 16 is under interrupt protection and before any 17 preemption, and changed increment of reset 18 search flag to a simple set to true. 19 tx_event_flags_set_notify.c Removed the warning of parameter not used. 20 tx_mutex_get.c Changed logic to update the priority inheritance 21 priority level. 22 tx_mutex_priority_change.c Removed update of the priority inheritance 23 priority level. 24 tx_mutex_put.c Changed logic to properly update the priority 25 inheritance priority level. 26 tx_queue_send_notify.c Removed the warning of parameter not used. 27 tx_semaphore_put_notify.c Removed the warning of parameter not used. 28 tx_thread_entry_exit_notify.c Removed the warning of parameter not used. 29 tx_thread_suspend.c Refined error checking for self suspension to 30 ensure thread context. Modified to use system 31 state macro instead of direct variable access. 32 33 3406-01-2017 ThreadX generic code version 5.8. This release includes the following 35 modifications: 36 37 tx_api.h Changed minor version constant, added 38 suspension sequence to verify cleanup 39 is still necessary, made MISRA compatibility 40 changes, added alignment type for memory pools, 41 corrected compiler warnings in macro definitions, 42 added support for optional extensions. 43 tx_block_pool.h Added suspension sequence to verify cleanup 44 is still necessary, made MISRA compatibility 45 changes, and added macro for extending block 46 pool delete. 47 tx_byte_pool.h Added suspension sequence to verify cleanup 48 is still necessary, made MISRA compatibility 49 changes, added conditionals around the byte 50 pool configuration defines, and added macro 51 for extending the byte pool delete. 52 tx_event_flags.h Added suspension sequence to verify cleanup 53 is still necessary, made MISRA compatibility 54 changes, and added macro for extending event 55 flag group delete. 56 tx_initialize.h Made MISRA compatibility changes. 57 tx_mutex.h Added suspension sequence to verify cleanup is 58 still necessary, made MISRA compatibility 59 changes, and added macro for extending mutex 60 delete. 61 tx_queue.h Added suspension sequence to verify cleanup is 62 still necessary, made MISRA compatibility changes, 63 and added macro for extending queue delete. 64 tx_semaphore.h Added suspension sequence to verify cleanup 65 is still necessary, made MISRA compatibility 66 changes, and added macros for extending semaphore 67 delete. 68 tx_thread.h Made MISRA compatibility changes, added 69 default macro definition for setting 70 up timeout, added default macro definition for 71 setting up thread timeout pointer, and added 72 macros for extending the thread create, delete, 73 and reset processing. 74 tx_timer.h Made MISRA compatibility changes, added 75 macro for extending timer delete, and 76 added the global variable _tx_timer_expired_ptr 77 which is needed by timer info get. 78 tx_trace.h Made MISRA compatibility changes, and utilized 79 macros for system state and current thread 80 pointer retrieval. 81 tx_user.h Modified comment(s). 82 tx_block_allocate.c Added suspension sequence to verify cleanup is still 83 necessary, added protection against self suspension 84 with the preempt-disable flag set, changed logic to 85 set return pointer to NULL when no memory is available, 86 and modified code for MISRA compliance. 87 tx_block_pool_cleanup.c Added suspension sequence to verify cleanup is 88 still necessary, and modified code for MISRA 89 compliance. 90 tx_block_pool_create.c Modified code for MISRA compliance, added 91 use of alignment type for creating the block 92 pool, and modified code to properly handle case 93 where the supplied memory is too small for one block. 94 tx_block_pool_delete.c Added macro for port specific post processing. 95 tx_block_release.c Modified code for MISRA compliance. 96 tx_byte_allocate.c Added suspension sequence to verify cleanup is still 97 necessary, added protection against self suspension 98 with the preempt-disable flag set, added processing 99 extension, changed logic to set return pointer to NULL 100 when no memory is available, and added use of alignment 101 type for allocating from byte pool. 102 tx_byte_pool_cleanup.c Added suspension sequence to verify cleanup is still 103 necessary, and modified code for MISRA compliance. 104 tx_byte_pool_create.c Modified code for MISRA compliance, and added 105 use of alignment type for creating byte pool. 106 tx_byte_pool_delete.c Added macro for port specific post processing. 107 tx_byte_pool_search.c Modified code for MISRA compliance, added 108 use of alignment type for searching byte pool, 109 and modified logic to ensure the integrity of the 110 search pointer. 111 tx_byte_release.c Added processing extension, modified code for MISRA 112 compliance, and added use of alignment type for 113 releasing memory to byte pool. 114 tx_event_flags_cleanup.c Added suspension sequence to verify cleanup is still 115 necessary, and modified code for MISRA compliance. 116 tx_event_flags_delete.c Added macro for port specific post processing. 117 tx_event_flags_get.c Added suspension sequence to verify cleanup is still 118 necessary, and added protection against self 119 suspension with the preempt-disable flag set. 120 tx_event_flags_set.c Removed unnecessary code, and modified code 121 for MISRA compliance. 122 tx_initialize_kernel_enter.c Added processing extension, and modified code 123 for MISRA compliance. 124 tx_mutex_cleanup.c Added suspension sequence to verify cleanup is 125 still necessary, and modified code for MISRA 126 compliance. 127 tx_mutex_delete.c Added macro for port specific post processing. 128 tx_mutex_get.c Added suspension sequence to verify cleanup is still 129 necessary, and added protection against self 130 suspension with the preempt-disable flag set. 131 tx_mutex_prioritize.c Modified code for MISRA compliance. 132 tx_mutex_priority_change.c Added processing extension. 133 tx_mutex_put.c Removed unnecessary code, and added processing 134 extension. 135 tx_queue_cleanup.c Added suspension sequence to verify cleanup is 136 still necessary, and modified code for MISRA 137 compliance. 138 tx_queue_create.c Modified code for MISRA compliance. 139 tx_queue_delete.c Added macro for port specific post processing. 140 tx_queue_front_send.c Added suspension sequence to verify cleanup is 141 still necessary, added protection against self 142 suspension with the preempt-disable flag set, 143 and modified code for MISRA compliance. 144 tx_queue_receive.c Added suspension sequence to verify cleanup is 145 still necessary, added protection against self 146 suspension with the preempt-disable flag set, 147 and modified code for MISRA compliance. 148 tx_queue_send.c Added suspension sequence to verify cleanup is 149 still necessary, added protection against self 150 suspension with the preempt-disable flag set, 151 and modified code for MISRA compliance. 152 tx_semaphore_cleanup.c Added suspension sequence to verify cleanup is 153 still necessary, and modified code for MISRA 154 compliance. 155 tx_semaphore_delete.c Added macro for port specific post processing. 156 tx_semaphore_get.c Added suspension sequence to verify cleanup is 157 still necessary, and added protection against 158 self suspension with the preempt-disable flag set. 159 tx_thread_create.c Modified code for MISRA compliance, added 160 optional internal thread extension macro, 161 added macro for setting up the thread timeout, and 162 corrected problem restoring preemption-threshold 163 during initialization. 164 tx_thread_delete.c Added macro for port specific post processing. 165 tx_thread_initialize.c Modified code for MISRA compliance. 166 tx_thread_reset.c Removed extraneous TX_RESTORE, and added macro for 167 port specific processing. 168 tx_thread_resume.c Corrected problem restoring preemption-threshold 169 during initialization. 170 tx_thread_sleep.c Added protection against self suspension with the 171 preempt-disable flag set. 172 tx_thread_stack_analyze.c Added processing extension, and modified code for 173 MISRA compliance. 174 tx_thread_suspend.c Added protection against self suspension with the 175 preempt-disable flag set, and added TX_DISABLE to 176 match TX_RESTORE before returning. 177 tx_thread_system_resume.c Changed logic to ensure deactivation is called with 178 interrupt protection. 179 tx_thread_system_suspend.c Ensured that time-slice is properly reset in 180 non-interruptible code path, changed logic to perform 181 activation with protection in force, and corrected 182 problem setting up the trace information 4 field. 183 tx_thread_terminate.c Added suspension sequence to verify cleanup is still 184 necessary, changed logic to ensure no mutexes are added 185 to this thread after the check for owned mutexes, and 186 changed logic to ensure deactivation is called with 187 interrupt protection. 188 tx_thread_timeout.c Added suspension sequence to verify cleanup is still 189 necessary, and added macro for setting up the thread 190 pointer. 191 tx_thread_wait_abort.c Added suspension sequence to verify cleanup is still 192 necessary. 193 tx_timer_activate.c Changed logic to perform activation with protection 194 in force. 195 tx_timer_create.c Kept protection over timer activation. 196 tx_timer_deactivate.c Modified code for MISRA compliance, added 197 logic for accurate remaining time calculation. 198 tx_timer_delete.c Added macro for port specific post processing, and 199 changed logic to ensure deactivation is called with 200 interrupt protection. 201 tx_timer_expiration_process.c Modified code for MISRA compliance, ensure timer is 202 not accessed after timeout unless 203 reactivation is necessary, set pointer to indicate 204 timer being processed, and perform reactivation with 205 protection. 206 tx_timer_info_get.c Added logic for accurate remaining time calculation. 207 tx_timer_initialize.c Modified code for MISRA compliance, added 208 initialization for timer expired pointer, and 209 added check for TX_NO_TIMER option. 210 tx_timer_system_activate.c Modified code for MISRA compliance, removed 211 protection logic since protection is now 212 required by the caller. 213 tx_timer_system_deactivate.c Removed protection logic since protection is now 214 required by the caller. 215 tx_timer_thread_entry.c Modified code for MISRA compliance, ensure timer 216 is not accessed after timeout unless 217 reactivation is necessary, set pointer to indicate 218 timer being processed, and perform reactivation with 219 protection. 220 tx_trace_enable.c Added initial running events to ensure buffer is not 221 empty for TraceX, and modified code for MISRA 222 compliance. 223 tx_trace_object_register.c Modified code for MISRA compliance. 224 tx_trace_object_unregister.c Modified code for MISRA compliance. 225 txe_block_release.c Modified code for MISRA compliance. 226 txe_thread_create.c Modified code for MISRA compliance. 227 228 22905-01-2015 ThreadX generic code version 5.7. This release includes the following 230 modifications: 231 232 tx_api.h Modified code for MISRA compliance, 233 modified minor version define, added 234 thread start macro for performing port 235 and/or user specified processing when 236 a thread starts, and added constant 237 TX_TIMER_TICKS_PER_SECOND for use by 238 other middleware components as a common 239 time reference. 240 tx_byte_pool_search.c Modified code for MISRA compliance, 241 added code to assert pool ownership 242 after protection is obtained to ensure 243 no changes to the pool or the pool 244 search pointer are made without ownership. 245 tx_byte_release.c Modified code for MISRA compliance, 246 added code to assert pool ownership 247 after protection is obtained to ensure 248 no changes to the pool or the pool 249 search pointer are made without ownership. 250 tx_mutex_cleanup.c Modified code for MISRA compliance, and 251 modified logic to use the thread's owned 252 mutex list for releasing mutexes. 253 tx_mutex_delete.c Modified code for MISRA compliance, 254 and modified logic to call _tx_mutex_put 255 if the mutex is owned. 256 tx_mutex_get.c Modified code for MISRA compliance, 257 and added logic to place non-priority 258 inheritance mutexes on the owned list. 259 tx_mutex_put.c Modified code for MISRA compliance, 260 modified logic to remove non-priority 261 inheritance mutex from owned mutex list, 262 and added logic to handle releasing a mutex 263 during initialization. 264 tx_thread_shell_entry.c Added thread start macro for performing port 265 and/or user specified processing when a 266 thread starts. 267 tx*.h Modified comment(s) and modified code for 268 MISRA compliance. 269 tx*.c Modified comment(s) and modified code for 270 MISRA compliance. 271 272 27311-01-2012 ThreadX generic code version 5.6. This release includes the following 274 modifications: 275 276 tx_api.h Modified minor version define. 277 tx_mutex.h Added new prototype. 278 tx_thread.h Added function pointer for releasing any owned mutexes 279 when thread completes or is terminated. 280 tx_timer.h Removed unused constants. 281 tx_trace.h Added conditional around Trace function prototypes. 282 tx_mutex_cleanup.c Added new internal function to release any mutexes 283 owned by a terminated or completed thread. 284 tx_mutex_create.c Setup thread mutex release function pointer. 285 tx_mutex_priority_change.c Removed unnecessary code, and added logic to place thread 286 at the front of the execution list at updated priority. 287 tx_mutex_put.c Added logic to allow mutex put to be called from another 288 thread for mutex cleanup, and adjusted priority restoration 289 search to start at user priority. 290 tx_thread_initialize.c Added initialization of thread mutex release function 291 pointer. 292 tx_thread_priority_change.c Added logic to place thread at the front of the execution list 293 at updated priority. 294 tx_thread_shell_entry.c Added logic to remove all mutexes owned by thread when it 295 completes. 296 tx_thread_terminate.c Added logic to remove all mutexes owned by thread when it is 297 terminated. 298 tx_timer_expiration_process.c Corrected problem with nested timer interrupts. 299 txe_mutex_get.c Allow timers to call this service. 300 txe_mutex_put.c Allow timers to call this service. 301 tx*.c Changed comments and copyright header. 302 tx*.h Changed comments and copyright header. 303 304 30507-15-2011 ThreadX generic code version 5.5. This release includes the following 306 modifications: 307 308 tx_api.h Added defines for major/minor version information, 309 and removed unused original threshold mutex structure 310 member. 311 tx_mutex.h Removed unnecessary parameter in in mutex priority change. 312 tx_thread.h Added interrupt protection to stack checking macro. 313 tx_trace.h Added variables for object registry optimizations. 314 tx_mutex_get.c Removed saving original threshold, and removed unnecessary 315 parameter to mutex priority change. 316 tx_mutex_priority_change.c Removed unused new threshold parameter, and added logic 317 to handle a lower or equal priority thread from 318 preempting an executing thread changing priority. 319 tx_mutex_put.c Removed saving original threshold, removed unnecessary 320 parameter to mutex priority change, and added logic to 321 check for necessary priority changes. 322 tx_thread_create.c Corrected problem with TX_THREAD_CREATE_EXTENSION 323 macro not being used if the thread is not auto started. 324 tx_thread_initialize.c Added bit for indicating execution profiling enabled 325 in _tx_build_options. 326 tx_thread_priority_change.c Added logic to handle a lower or equal priority thread 327 from preempting an executing thread changing priority. 328 tx_thread_reset.c Changed memset to TX_MEMSET so it can be redefined. 329 tx_thread_stack_analyze.c Added logic to check for thread validity before 330 updating highest stack pointer. 331 tx_thread_system_preempt_check.c Removed redundant conditional in stack checking. 332 tx_thread_system_resume.c Corrected problem with delayed suspension from an 333 interrupt during the middle of a thread suspending. 334 tx_thread_time_slice.c Removed redundant conditional in stack checking, and 335 moved stack checking to be called with interrupts enabled. 336 tx_trace_enable.c Added initialization for variables used for object 337 tx_trace_object_register.c Added optimization for adding registry entries. 338 tx_trace_object_unregister.c Added support for optimizing adding registry entries. 339 registry optimizations. 340 tx*.c Changed comments and copyright header. 341 tx*.h Changed comments and copyright header. 342 343 34412-12-2009 ThreadX generic code version 5.4. This release includes the following 345 modifications: 346 347 tx_api.h Changed the definition of TX_NULL to a pointer type, 348 added TX_MEMSET macro, modified priority-inheritance 349 struct members in TX_THREAD, changed user event 350 comments, added callback for tracking thread scheduling, 351 merged event logging and MULTI run-time error checking 352 support, changed type of all internal structure members 353 used for counting to UINT, and added safety critical 354 exception logic. 355 tx_byte_pool.h Removed unused constant TX_BYTE_BLOCK_ALLOC. 356 tx_thread.h Removed type conversion in lowest set bit macro, added 357 macro to get the system state, and removed redundant 358 prototype. 359 tx_timer.h Removed the unnecessary status return on system timer 360 activate/deactivate. 361 tx_trace.h Added defines for default source, and added logic to 362 insert the thread's preemption-threshold along with its 363 priority. 364 tx_block_allocate.c Removed compound conditionals, added explicit value checking, 365 added logic to explicitly check for valid pointer, adjusted 366 the trace enable conditional to include the trace insert 367 macro, changed some counting variables to type UINT, merged 368 event logging support, and added void pointer cast in pointer 369 type conversions. 370 tx_block_pool_cleanup.c Removed compound conditionals, changed some counting 371 variables to type UINT, and added logic to explicitly 372 check for valid pointer. 373 tx_block_pool_create.c Added explicit compare of blocks, removed pointer comparison, 374 changed memset to macro, eliminated created_count local 375 variable, changed some counting variables to type UINT, 376 merged event logging support, and added void pointer cast in 377 pointer type conversions. 378 tx_block_pool_delete.c Merged event logging support, eliminated created_count local 379 variable, and changed some counting variables to type UINT. 380 tx_block_pool_info_get.c Casted UINT counting values to ULONG where necessary, merged 381 event logging support, and added logic to explicitly check 382 for valid pointer. 383 tx_block_pool_performance_info_get.c Removed compound conditionals, added logic to explicitly 384 check for valid pointer, merged event logging support, and 385 added code to ensure that input parameters are accessed in 386 non-enabled case (default). 387 tx_block_pool_performance_system_info_get.c Added logic to explicitly check for valid pointer, merged 388 event logging support, and added code to ensure that input 389 parameters are accessed in non-enabled case (default). 390 tx_block_pool_prioritize.c Merged event logging support, and changed some counting 391 variables to type UINT. 392 tx_block_release.c Added logic to explicitly check for valid pointer, changed 393 some counting variables to type UINT, merged event logging 394 support, and added void pointer cast in pointer type 395 conversions. 396 tx_byte_allocate.c Removed compound conditionals, added explicit value checking, 397 explicit check for wait option, changed some counting 398 variables to type UINT, merged event logging support, and 399 added logic to explicitly check for valid pointer. 400 tx_byte_pool_cleanup.c Removed compound conditionals, changed some counting 401 variables to type UINT, and added logic to explicitly check 402 for valid pointer. 403 tx_byte_pool_create.c Removed unused constant TX_BYTE_BLOCK_ALLOC, added void 404 pointer cast in pointer type conversions, changed memset to 405 macro, eliminated created_count local variable, merged event 406 logging support, and added parentheses in calculation of 407 per-block overhead. 408 tx_byte_pool_delete.c Merged event logging support, eliminated created_count local 409 variable, and changed some counting variables to type UINT. 410 tx_byte_pool_info_get.c Casted UINT counting values to ULONG where necessary, 411 merged event logging support, and added logic to explicitly 412 check for valid pointer. 413 tx_byte_pool_performance_info_get.c Removed compound conditionals, added logic to explicitly 414 check for valid pointer, merged event logging support, and 415 added code to ensure that input parameters are accessed in 416 non-enabled case (default). 417 tx_byte_pool_performance_system_info_get.c Added logic to explicitly check for valid pointer, merged 418 event logging support, and added code to ensure that input 419 parameters are accessed in non-enabled case (default). 420 tx_byte_pool_prioritize.c Merged event logging support, and changed some counting 421 variables to type UINT. 422 tx_byte_pool_search.c Added explicit checks for examined blocks and available 423 bytes, added void pointer cast in pointer type conversions, 424 changed some counting variables to type UINT, and added 425 parentheses in calculation of available bytes. 426 tx_byte_release.c Added logic to explicitly check for valid pointer, added 427 void pointer cast in pointer type conversions, changed 428 some counting variables to type UINT, merged event logging 429 support, and added parentheses in calculation of available 430 bytes. 431 tx_event_flags_cleanup.c Removed compound conditionals, added explicit check for 432 suspend count, changed some counting variables to type UINT, 433 and added logic to explicitly check for valid pointer. 434 tx_event_flags_create.c Changed memset to macro, merged event logging support, and 435 eliminated created_count local variable. 436 tx_event_flags_delete.c Merged event logging support, eliminated created_count local 437 variable, and changed some counting variables to type UINT. 438 tx_event_flags_get.c Removed compound conditionals, changed some counting 439 variables to type UINT, merged event logging support, and 440 added explicit value checks. 441 tx_event_flags_info_get.c Casted UINT counting values to ULONG where necessary, merged 442 event logging support, and added logic to explicitly check 443 for valid pointer. 444 tx_event_flags_performance_info_get.c Removed compound conditionals, added logic to explicitly 445 check for valid pointer, merged event logging support, and 446 added code to ensure that input parameters are accessed in 447 non-enabled case (default). 448 tx_event_flags_performance_system_info_get.c Added logic to explicitly check for valid pointer, merged 449 event logging support, and added code to ensure that input 450 parameters are accessed in non-enabled case (default). 451 tx_event_flags_set.c Removed compound conditionals, added explicit value checks, 452 added logic to explicitly check for valid pointer, fixed 453 logic in consuming events, changed some counting variables 454 to type UINT, merged event logging support, and added check 455 for a NULL last satisfied pointer. 456 tx_event_flags_set_notify.c Merged event logging support. 457 tx_initialize_high_level.c Merged event logging support. 458 tx_initialize_kernel_enter.c Added macro for defining safety critical exception handler 459 if necessary, and added safety critical exception if the 460 call to the _tx_thread_schedule function returns. 461 tx_mutex_cleanup.c Removed compound conditionals, changed some counting 462 variables to type UINT, and added logic to explicitly 463 check for valid pointer. 464 tx_mutex_create.c Changed memset to macro, merged event logging support, and 465 eliminated created_count local variable. 466 tx_mutex_delete.c Removed compound conditionals, added explicit value checking, 467 changed some counting variables to type UINT, merged event 468 logging support, eliminated created_count local variable, and 469 added logic to explicitly check for valid pointer. 470 tx_mutex_get.c Removed compound conditionals, added explicit value checking, 471 changed priority-inheritance logic to distinguish user 472 priority changes from mutex priority-inheritance, changed 473 some counting variables to type UINT, merged event logging 474 support, and added logic to explicitly check for valid 475 pointer. 476 tx_mutex_info_get.c Casted UINT counting values to ULONG where necessary, merged 477 event logging support, and added logic to explicitly check for 478 valid pointer. 479 tx_mutex_performance_info_get.c Removed compound conditionals, added logic to explicitly check 480 for valid pointer, merged event logging support, and added 481 code to ensure that input parameters are accessed in 482 non-enabled case (default). 483 tx_mutex_performance_system_info_get.c Added logic to explicitly check for valid pointer, merged 484 event logging support, and added code to ensure that input 485 parameters are accessed in non-enabled case (default). 486 tx_mutex_prioritize.c Merged event logging support, and changed some counting 487 variables to type UINT. 488 tx_mutex_priority_change.c Changed priority-inheritance logic to distinguish user 489 priority changes from mutex priority-inheritance. 490 tx_mutex_put.c Removed compound conditionals, added explicit value checking, 491 added logic to explicitly check for valid pointer, changed 492 priority-inheritance logic to distinguish user priority 493 changes from mutex priority-inheritance, changed some 494 counting variables to type UINT, merged event logging support, 495 and added return value check for calls to prioritize. 496 tx_queue_cleanup.c Removed compound conditionals, added explicit value checking, 497 changed some counting variables to type UINT, and added logic 498 to explicitly check for valid pointer. 499 tx_queue_create.c Changed memset to macro, casted ULONG counting values to UINT 500 where necessary, merged event logging support, and eliminated 501 created_count local variable. 502 tx_queue_delete.c Merged event logging support, eliminated created_count local 503 variable, and changed some counting variables to type UINT. 504 tx_queue_flush.c Removed compound conditionals, added explicit value checking, 505 changed some counting variables to type UINT, merged event 506 logging support, and added logic to check for null thread 507 pointer. 508 tx_queue_front_send.c Removed compound conditionals, added explicit value checking, 509 added logic to explicitly check for valid pointer, changed 510 some counting variables to type UINT, merged event logging 511 support, and removed unnecessary casting. 512 tx_queue_info_get.c Merged event logging support, and casted UINT counting 513 values to ULONG where necessary. 514 tx_queue_performance_info_get.c Removed compound conditionals, added logic to explicitly 515 check for valid pointer, merged event logging support, and 516 added code to ensure that input parameters are accessed in 517 non-enabled case (default). 518 tx_queue_performance_system_info_get.c Added logic to explicitly check for valid pointer, merged 519 event logging support, and added code to ensure that input 520 parameters are accessed in non-enabled case (default). 521 tx_queue_prioritize.c Merged event logging support, and changed some counting 522 variables to type UINT. 523 tx_queue_receive.c Removed compound conditionals, added explicit value 524 checking, added logic to explicitly check for valid pointer, 525 added null check for thread pointer, changed pointer 526 comparison to check for equal pointers, changed some 527 counting variables to type UINT, merged event logging 528 support, and removed unnecessary casting. 529 tx_queue_send.c Removed compound conditionals, added explicit value 530 checking, added logic to explicitly check for valid pointer, 531 changed pointer comparison to check for equal pointers, 532 changed some counting variables to type UINT, merged event 533 logging support, and removed unnecessary casting. 534 tx_queue_send_notify.c Merged event logging support. 535 tx_semaphore_ceiling_put.c Changed some counting variables to type UINT, merged event 536 logging support, and added logic to explicitly check for 537 valid pointer. 538 tx_semaphore_cleanup.c Removed compound conditionals, changed some counting 539 variables to type UINT, and added logic to explicitly check 540 for valid pointer. 541 tx_semaphore_create.c Changed memset to macro, merged event logging support, and 542 eliminated created_count local variable. 543 tx_semaphore_delete.c Merged event logging support, eliminated created_count 544 local variable, and changed some counting variables to 545 type UINT. 546 tx_semaphore_get.c Changed some counting variables to type UINT, merged event 547 logging support, and added explicit value checking. 548 tx_semaphore_info_get.c Casted UINT counting values to ULONG where necessary, merged 549 event logging support, and added logic to explicitly check 550 for valid pointer. 551 tx_semaphore_performance_info_get.c Removed compound conditionals, added logic to explicitly 552 check for valid pointer, merged event logging support, and 553 added code to ensure that input parameters are accessed in 554 non-enabled case (default). 555 tx_semaphore_performance_system_info_get.c Added logic to explicitly check for valid pointer, merged 556 event logging support, and added code to ensure that input 557 parameters are accessed in non-enabled case (default). 558 tx_semaphore_prioritize.c Merged event logging support, and changed some counting 559 variables to type UINT. 560 tx_semaphore_put.c Changed some counting variables to type UINT, merged event 561 logging support, and added logic to explicitly check for 562 valid pointer. 563 tx_semaphore_put_notify.c Merged event logging support. 564 tx_thread_create.c Added explicit value checking, changed logic to use a macro 565 to get the system state, added code to initialize 566 priority-inheritance info, changed memset to macro, 567 eliminated created_count local variable, merged event 568 logging support, and added logic to explicitly check for 569 valid pointer. 570 tx_thread_delete.c Merged event logging support, removed compound conditionals, 571 and eliminated created_count local variable. 572 tx_thread_entry_exit_notify.c Merged event logging support. 573 tx_thread_identify.c Merged event logging support. 574 tx_thread_info_get.c Merged event logging support, added logic to return the 575 user-specified priority and preemption-threshold, and added 576 logic to explicitly check for valid pointer. 577 tx_thread_initialize.c Changed memset to macro, and added logic to omit the port 578 specific build options if it is 0. 579 tx_thread_performance_info_get.c Removed compound conditionals, added logic to explicitly 580 check for valid pointer, merged event logging support, and 581 added code to ensure that input parameters are accessed in 582 non-enabled case (default). 583 tx_thread_performance_system_info_get.c Added logic to explicitly check for valid pointer, merged 584 event logging support, and added code to ensure that 585 input parameters are accessed in non-enabled case (default). 586 tx_thread_preemption_change.c Changed logic to use a macro to get the system state, 587 changed logic to ensure the highest preemption-threshold, 588 merged event logging support, and removed compound 589 conditionals. 590 tx_thread_priority_change.c Changed priority logic to account for priority-inheritance, 591 and merged event logging support. 592 tx_thread_relinquish.c Merged event logging support, and added logic to reset the 593 time-slice. 594 tx_thread_reset.c Merged event logging support, and removed compound 595 conditionals. 596 tx_thread_resume.c Removed compound conditionals, added logic to explicitly 597 check for valid pointer, changed logic to use a macro to 598 get the system state, merged event logging support, and 599 adjusted logic to check for system state or preempt disable. 600 tx_thread_shell_entry.c Added logic to explicitly check for valid pointer, and 601 safety critical exception if control returns after the 602 thread enters the completed state. 603 tx_thread_sleep.c Removed compound conditionals, added explicit value 604 checking, changed logic to use a macro to get the system 605 state, merged event logging support, and added logic to 606 explicitly check for valid pointer. 607 tx_thread_stack_analyze.c Removed compound conditionals, added logic to explicitly 608 check for valid pointer, and added ULONG cast. 609 tx_thread_stack_error_handler.c Added logic to explicitly check for valid pointer, and 610 added code to ensure that the input parameter is accessed 611 in non-enabled case (default). 612 tx_thread_stack_error_notify.c Merged event logging support, and added code to ensure 613 that the input parameter is accessed in non-enabled 614 case (default). 615 tx_thread_suspend.c Removed compound conditionals, added explicit value 616 checking, added logic to explicitly check for valid 617 pointer, added logic to reset the time-slice, changed 618 logic to use a macro to get the system state, merged event 619 logging support, and adjusted logic to check for system 620 state or preempt disable. 621 tx_thread_system_preempt_check.c Removed compound conditionals, added logic to explicitly 622 check for valid pointer, changed logic to use a macro to 623 get the system state, and adjusted logic to check for 624 system state or preempt disable. 625 tx_thread_system_resume.c Removed compound conditionals, added logic to explicitly 626 check for valid pointer, changed logic to use a macro to 627 get the system state, merged event logging support, and 628 adjusted logic to check for system state or preempt 629 disable. 630 tx_thread_system_suspend.c Removed compound conditionals, added explicit value 631 checking, added logic to explicitly check for valid 632 pointer, added logic to reset the time-slice, changed 633 logic to use a macro to get the system state, merged 634 event logging support, and adjusted logic to check for 635 system state or preempt disable. 636 tx_thread_terminate.c Removed compound conditionals, merged event logging 637 support, and added logic to explicitly check for valid 638 pointer. 639 tx_thread_time_slice.c Removed compound conditionals, changed logic to use a 640 macro to get the system state, and added logic to 641 explicitly check for valid pointer. 642 tx_thread_time_slice_change.c Merged event logging support. 643 tx_thread_timeout.c Added logic to explicitly check for valid pointer. 644 tx_thread_wait_abort.c Merged event logging support, and added logic to 645 explicitly check for valid pointer. 646 tx_time_get.c Merged event logging support. 647 tx_time_set.c Merged event logging support. 648 tx_timer_activate.c Removed compound conditionals, added logic to 649 explicitly check for valid ticks, merged event 650 logging support, and added logic to explicitly 651 check for valid pointer. 652 tx_timer_change.c Merged event logging support, and added logic to 653 explicitly check for valid pointer. 654 tx_timer_create.c Changed memset to macro, eliminated created_count local 655 variable, merged event logging support, and added 656 explicit value check. 657 tx_timer_deactivate.c Removed compound conditionals, added logic to explicitly 658 check for valid pointer, merged event logging support, 659 and added ULONG casting. 660 tx_timer_delete.c Merged event logging support, eliminated created_count 661 local variable, and added logic to explicitly check 662 for valid pointer. 663 tx_timer_expiration_process.c Removed compound conditionals, and added logic to 664 explicitly check for valid pointer. 665 tx_timer_info_get.c Removed compound conditionals, added logic to explicitly 666 check for valid pointer, merged event logging support, 667 and added ULONG casting. 668 tx_timer_initialize.c Corrected memory initialize value to memset, changed 669 memset to macro, and added safety critical error 670 exception. 671 tx_timer_performance_info_get.c Removed compound conditionals, added logic to 672 explicitly check for valid pointer, merged event 673 logging support, and added code to ensure that input 674 parameters are accessed in non-enabled case (default). 675 tx_timer_performance_system_info_get.c Added logic to explicitly check for valid pointer, 676 merged event logging support, and added code to ensure 677 that input parameters are accessed in non-enabled 678 case (default). 679 tx_timer_system_activate.c Removed compound conditionals, added explicit value 680 checking, and removed unnecessary status return. 681 tx_timer_system_deactivate.c Added logic to explicitly check for valid pointer, 682 and removed unnecessary status return. 683 tx_timer_thread_entry.c Added logic to explicitly check for valid pointer, 684 added explicit check for expired flag, moved 685 while-forever to top of the loop, and added safety 686 critical exception if control returns after the 687 thread's while-forever processing loop. 688 tx_trace_buffer_full_notify.c Added logic to access parameter. 689 tx_trace_enable.c Added logic to explicitly check for valid pointer, and 690 added code to ensure that input parameters are accessed 691 in non-enabled case (default). 692 tx_trace_event_filter.c Added logic to access parameter. 693 tx_trace_event_unfilter.c Added logic to access parameter. 694 tx_trace_isr_enter_insert.c Added logic to access parameter, and changed logic to 695 use a macro to get system state. 696 tx_trace_isr_exit_insert.c Added logic to access parameter, and changed logic to 697 use a macro to get system state. 698 tx_trace_object_register.c Added explicit value check, added logic to access 699 parameter, and added logic to store thread's priority 700 in the reserved bytes. 701 tx_trace_object_unregister.c Added logic to access parameter. 702 tx_trace_user_event_insert.c Added logic to access parameter. 703 txe_block_allocate.c Removed compound conditionals, added explicit value 704 checking, changed logic to use a macro to get the 705 system state, and added logic to explicitly check for 706 valid pointer. 707 txe_block_pool_create.c Removed compound conditionals, added explicit value 708 checking, changed logic to use a macro to get the 709 system state, and added logic to explicitly check for 710 valid pointer. 711 txe_block_pool_delete.c Removed compound conditionals, added explicit value 712 checking, changed logic to use a macro to get the 713 system state, and added logic to explicitly check for 714 valid pointer. 715 txe_block_pool_info_get.c Removed compound conditionals, and added logic to 716 explicitly check for valid pointer. 717 txe_block_pool_prioritize.c Removed compound conditionals, and added logic to 718 explicitly check for valid pointer. 719 txe_block_release.c Removed compound conditionals, added logic to 720 explicitly check for valid pointer, and added void 721 pointer cast in pointer type conversions. 722 txe_byte_allocate.c Removed compound conditionals, added explicit value 723 checking, changed logic to use a macro to get the 724 system state, and added logic to explicitly check for 725 valid pointer. 726 txe_byte_pool_create.c Removed compound conditionals, added explicit value 727 checking, changed logic to use a macro to get the 728 system state, and added logic to explicitly check for 729 valid pointer. 730 txe_byte_pool_delete.c Removed compound conditionals, added explicit value 731 checking, changed logic to use a macro to get the 732 system state, and added logic to explicitly check 733 for valid pointer. 734 txe_byte_pool_info_get.c Removed compound conditionals, and added logic to 735 explicitly check for valid pointer. 736 txe_byte_pool_prioritize.c Removed compound conditionals, and added logic to 737 explicitly check for valid pointer. 738 txe_byte_release.c Added explicit value checking, changed logic to use 739 a macro to get the system state, and added logic to 740 explicitly check for valid pointer. 741 txe_event_flags_create.c Removed compound conditionals, added explicit value 742 checking, changed logic to use a macro to get the 743 system state, and added logic to explicitly check 744 for valid pointer. 745 txe_event_flags_delete.c Removed compound conditionals, added explicit value 746 checking, changed logic to use a macro to get the 747 system state, and added logic to explicitly check 748 for valid pointer. 749 txe_event_flags_get.c Removed compound conditionals, added explicit value 750 checking, changed logic to use a macro to get the 751 system state, and added logic to explicitly check 752 for valid pointer. 753 txe_event_flags_info_get.c Removed compound conditionals, and added logic to 754 explicitly check for valid pointer. 755 txe_event_flags_set.c Removed compound conditionals, and added logic to 756 explicitly check for valid pointer. 757 txe_event_flags_set_notify.c Removed compound conditionals, and added logic to 758 explicitly check for valid pointer. 759 txe_mutex_create.c Removed compound conditionals, changed logic to use 760 a macro to get the system state, and added logic to 761 explicitly check for valid pointer. 762 txe_mutex_delete.c Removed compound conditionals, added explicit value 763 checking, changed logic to use a macro to get the 764 system state, and added logic to explicitly check 765 for valid pointer. 766 txe_mutex_get.c Removed compound conditionals, added explicit value 767 checking, changed logic to use a macro to get the 768 system state, and added logic to explicitly check for 769 valid pointer. 770 txe_mutex_info_get.c Removed compound conditionals, and added logic to 771 explicitly check for valid pointer. 772 txe_mutex_prioritize.c Removed compound conditionals, and added logic to 773 explicitly check for valid pointer. 774 txe_mutex_put.c Removed compound conditionals, added explicit value 775 checking, changed logic to use a macro to get the 776 system state, and added logic to explicitly check 777 for valid pointer. 778 txe_queue_create.c Removed compound conditionals, added explicit value 779 checking, changed logic to use a macro to get the 780 system state, and added logic to explicitly check 781 for valid pointer. 782 txe_queue_delete.c Removed compound conditionals, added explicit value 783 checking, changed logic to use a macro to get the 784 system state, and added logic to explicitly check for 785 valid pointer. 786 txe_queue_flush.c Removed compound conditionals, and added logic to 787 explicitly check for valid pointer. 788 txe_queue_front_send.c Removed compound conditionals, added explicit value 789 checking, changed logic to use a macro to get the 790 system state, and added logic to explicitly check for 791 valid pointer. 792 txe_queue_info_get.c Removed compound conditionals, and added logic to 793 explicitly check for valid pointer. 794 txe_queue_prioritize.c Removed compound conditionals, and added logic to 795 explicitly check for valid pointer. 796 txe_queue_receive.c Removed compound conditionals, added explicit value 797 checking, changed logic to use a macro to get the 798 system state, and added logic to explicitly check for 799 valid pointer. 800 txe_queue_send.c Removed compound conditionals, added explicit value 801 checking, changed logic to use a macro to get the 802 system state, and added logic to explicitly check for 803 valid pointer. 804 txe_queue_send_notify.c Removed compound conditionals, and added logic to 805 explicitly check for valid pointer. 806 txe_semaphore_ceiling_put.c Removed compound conditionals, and added logic to 807 explicitly check for valid pointer. 808 txe_semaphore_create.c Removed compound conditionals, added explicit value 809 checking, changed logic to use a macro to get the 810 system state, and added logic to explicitly check for 811 valid pointer. 812 txe_semaphore_delete.c Removed compound conditionals, added explicit value 813 checking, changed logic to use a macro to get the 814 system state, and added logic to explicitly check for 815 valid pointer. 816 txe_semaphore_get.c Removed compound conditionals, added explicit value 817 checking, changed logic to use a macro to get the 818 system state, and added logic to explicitly check for 819 valid pointer. 820 txe_semaphore_info_get.c Removed compound conditionals, and added logic to 821 explicitly check for valid pointer. 822 txe_semaphore_prioritize.c Removed compound conditionals, and added logic to 823 explicitly check for valid pointer. 824 txe_semaphore_put.c Removed compound conditionals, and added logic to 825 explicitly check for valid pointer. 826 txe_semaphore_put_notify.c Removed compound conditionals, and added logic to 827 explicitly check for valid pointer. 828 txe_thread_create.c Removed compound conditionals, added explicit value 829 checking, added logic to explicitly check for valid 830 pointer, changed logic to use a macro to get the 831 system state, and added void pointer cast in pointer 832 type conversions. 833 txe_thread_delete.c Removed compound conditionals, added explicit value 834 checking, changed logic to use a macro to get the 835 system state, and added logic to explicitly check for 836 valid pointer. 837 txe_thread_entry_exit_notify.c Removed compound conditionals, and added logic to 838 explicitly check for valid pointer. 839 txe_thread_info_get.c Removed compound conditionals, and added logic to 840 explicitly check for valid pointer. 841 txe_thread_preemption_change.c Removed compound conditionals, added explicit value 842 checking, changed logic to examine user specified 843 priority, changed logic to use a macro to get the 844 system state, and added logic to explicitly check for 845 valid pointer. 846 txe_thread_priority_change.c Removed compound conditionals, added explicit value 847 checking, changed logic to use a macro to get the 848 system state, and added logic to explicitly check for 849 valid pointer. 850 txe_thread_relinquish.c Removed compound conditionals, added logic to 851 explicitly compare the system state, changed logic to 852 use a macro to get the system state, and added logic 853 to explicitly check for valid pointer. 854 txe_thread_reset.c Removed compound conditionals, added explicit value 855 checking, changed logic to use a macro to get the 856 system state, and added logic to explicitly check for 857 valid pointer. 858 txe_thread_resume.c Removed compound conditionals, and added logic to 859 explicitly check for valid pointer. 860 txe_thread_suspend.c Removed compound conditionals, and added logic to 861 explicitly check for valid pointer. 862 txe_thread_terminate.c Removed compound conditionals, added explicit value 863 checking, changed logic to use a macro to get the 864 system state, and added logic to explicitly check for 865 valid pointer. 866 txe_thread_time_slice_change.c Removed compound conditionals, added explicit value 867 checking, changed logic to use a macro to get the 868 system state, and added logic to explicitly check for 869 valid pointer. 870 txe_thread_wait_abort.c Removed compound conditionals, and added logic to 871 explicitly check for valid pointer. 872 txe_timer_activate.c Removed compound conditionals, and added logic to 873 explicitly check for valid pointer. 874 txe_timer_change.c Removed compound conditionals, added explicit check 875 on the supplied initial ticks, changed logic to use 876 a macro to get the system state, and added logic to 877 explicitly check for valid pointer. 878 txe_timer_create.c Removed compound conditionals, added explicit value 879 checking, added explicit check for initial ticks, 880 changed logic to use a macro to get the system state, 881 and added logic to explicitly check for valid pointer. 882 txe_timer_deactivate.c Removed compound conditionals, and added logic to 883 explicitly check for valid pointer. 884 txe_timer_delete.c Removed compound conditionals, added explicit value 885 checking, changed logic to use a macro to get the 886 system state, and added logic to explicitly check for 887 valid pointer. 888 txe_timer_info_get.c Removed compound conditionals, and added logic to 889 explicitly check for valid pointer. 890 tx*.c Changed comments and copyright header. 891 tx*.h Changed comments and copyright header. 892 893 89407-04-2009 ThreadX generic code version 5.3. This release includes the following 895 modifications: 896 897 tx_api.h Changed the start of user trace events to 4096. 898 tx_thread_system_resume.c Fixed problem of not clearing a pending timer 899 registration when a thread suspension is interrupted. 900 tx_trace.h Removed FileX & NetX event IDs since they are defined 901 elsewhere, and corrected priority assignment in event 902 trace. 903 tx_trace_buffer_full_notify.c Added conditional so that the function is only compiled once. 904 tx_trace_enable.c Added trace include source define, and changed trace buffer 905 initialization so partial trace buffers are processed properly. 906 tx_trace_event_filter.c Added conditional so that the function is only compiled once. 907 tx_trace_event_unfilter.c Added conditional so that the function is only compiled once. 908 tx*.c Changed comments and copyright header. 909 tx*.h Changed comments and copyright header. 910 911 91212-12-2008 ThreadX generic code version 5.2. This release includes the following 913 modifications: 914 915 tx_api.h Added various trace constants. 916 tx_initialize.h Added new macro for defining port-specific data 917 and port-specific initialization processing. 918 tx_queue.h Added macro for copying queue message. 919 tx_thread.h Added new system resume and suspend function 920 prototypes, changed macro MOD32 to TX_MOD32_BIT_SET, 921 added TX_DIV32_BIT_SET macro, removed old lowest bit 922 set table, added new state change macro, added macro 923 to pickup current thread, added macro to clear the 924 current thread, added stack checking macro, and added 925 new macro for calculating the lowest bit set. 926 tx_trace.h Added new event definitions, changed types 927 to ensure the trace has universal format, 928 optimized event macro, and added filter 929 logic and new function prototypes. 930 tx_user.h Added new defines, and removed TX_USE_PRESET_DATA 931 since it is no longer required. 932 tx_block_allocate.c Added macro to get current thread, added filter 933 option to trace insert, added optional logic for 934 non-interruptible operation, and made several 935 optimizations. 936 tx_block_pool_cleanup.c Added logic to keep suspension list in order, 937 added optional logic for non-interruptible operation, 938 and made several optimizations. 939 tx_block_pool_create.c Added parameter to trace registry, added filter option 940 to trace insert, treat the zero blocks situation as an 941 error, and made several optimizations. 942 tx_block_pool_delete.c Added filter option to trace insert, added optional 943 logic for non-interruptible operation, and made several 944 optimizations. 945 tx_block_pool_info_get.c Added filter option to trace insert. 946 tx_block_pool_performance_info_get.c Added filter option to trace insert. 947 tx_block_pool_performance_system_info_get.c Added filter option to trace insert. 948 tx_block_pool_prioritize.c Added filter option to trace insert, and made several 949 optimizations. 950 tx_block_release.c Added filter option to trace insert, added optional 951 logic for non-interruptable operation, and made several 952 optimizations. 953 tx_byte_allocate.c Added macro to get current thread, added filter option 954 to trace insert, added optional logic for non-interruptable 955 operation, and made several optimizations. 956 tx_byte_pool_cleanup.c Added logic to keep suspension list in order, added 957 optional logic for non-interruptable operation, and made 958 several optimizations. 959 tx_byte_pool_create.c Added filter option to trace insert, and made several 960 optimizations. 961 tx_byte_pool_delete.c Added filter option to trace insert, added optional logic 962 for non-interruptable operation, and made several 963 optimizations. 964 tx_byte_pool_info_get.c Added filter option to trace insert. 965 tx_byte_pool_performance_info_get.c Added filter option to trace insert. 966 tx_byte_pool_performance_system_info_get.c Added filter option to trace insert. 967 tx_byte_pool_prioritize.c Added filter option to trace insert, and made several 968 optimizations. 969 tx_byte_pool_search.c Added macro to get current thread, and made several 970 optimizations. 971 tx_byte_release.c Added macro to get current thread, added filter option 972 to trace insert, added optional logic for 973 non-interruptable operation, and made several 974 optimizations. 975 tx_event_flags_cleanup.c Added logic to handle wait aborts on event flag 976 suspension from ISRs, added logic to keep suspension 977 list in order, added optional logic for non-interruptable 978 operation, and made several optimizations. 979 tx_event_flags_create.c Added filter option to trace insert, and made several 980 optimizations. 981 tx_event_flags_delete.c Added filter option to trace insert, added optional 982 logic for non-interruptable operation, and made 983 several optimizations. 984 tx_event_flags_get.c Added macro to get current thread, added filter 985 option to trace insert, added optional logic for 986 non-interruptable operation, and made several 987 optimizations. 988 tx_event_flags_info_get.c Added filter option to trace insert. 989 tx_event_flags_performance_info_get.c Added filter option to trace insert. 990 tx_event_flags_performance_system_info_get.c Added filter option to trace insert. 991 tx_event_flags_set.c Added filter option to trace insert, added check for 992 threads whose suspension was aborted from an ISR 993 during the search for satisfied requests, added 994 optional logic for non-interruptable operation, 995 and made several optimizations. 996 tx_event_flags_set_notify.c Added filter option to trace insert. 997 tx_initialize_kernel_enter.c Added macros for port-specific initialization use. 998 tx_initialize_kernel_setup.c Added macros for port-specific initialization use. 999 tx_mutex_cleanup.c Added logic to keep suspension list in order, added 1000 optional logic for non-interruptable operation, 1001 and made several optimizations. 1002 tx_mutex_create.c Added filter option to trace insert, and made 1003 several optimizations. 1004 tx_mutex_delete.c Added filter option to trace insert, added optional 1005 logic for non-interruptable operation, and made 1006 several optimizations. 1007 tx_mutex_get.c Added macro to get current thread, added filter 1008 option to trace insert, added optional logic for 1009 non-interruptable operation, and made several 1010 optimizations. 1011 tx_mutex_info_get.c Added filter option to trace insert. 1012 tx_mutex_performance_info_get.c Added filter option to trace insert. 1013 tx_mutex_performance_system_info_get.c Added filter option to trace insert. 1014 tx_mutex_prioritize.c Added filter option to trace insert, and made 1015 several optimizations. 1016 tx_mutex_priority_change.c Added optional logic for non-interruptable operation, 1017 and made several optimizations. 1018 tx_mutex_put.c Added macro to get current thread, optimized the 1019 normal no priority-inheritance path, added filter 1020 option to trace insert, added optional logic for 1021 non-interruptable operation, and made several other 1022 optimizations. 1023 tx_queue_cleanup.c Added logic to keep suspension list in order, added 1024 optional logic for non-interruptable operation, 1025 and made several optimizations. 1026 tx_queue_create.c Added parameter to trace registry, added filter 1027 option to trace insert, and made several 1028 optimizations. 1029 tx_queue_delete.c Added filter option to trace insert, added optional 1030 logic for non-interruptable operation, and made 1031 several optimizations. 1032 tx_queue_flush.c Added optional logic for non-interruptable operation, 1033 and added filter option to trace insert. 1034 tx_queue_front_send.c Added macro to get current thread, made several 1035 optimizations, added filter option to trace insert, 1036 added optional logic for non-interruptable 1037 operation, and added macros for message copying. 1038 tx_queue_info_get.c Added filter option to trace insert. 1039 tx_queue_performance_info_get.c Added filter option to trace insert. 1040 tx_queue_performance_system_info_get.c Added filter option to trace insert. 1041 tx_queue_prioritize.c Added filter option to trace insert, and made 1042 several optimizations. 1043 tx_queue_receive.c Added macro to get current thread, made several 1044 optimizations, corrected the performance 1045 information names, added filter option to trace 1046 insert, added optional logic for non-interruptable 1047 operation, and added macros for message copying. 1048 tx_queue_send.c Added macro to get current thread, made several 1049 optimizations, added filter option to trace 1050 insert, added optional logic for non-interruptable 1051 operation, and added macros for message copying. 1052 tx_queue_send_notify.c Added filter option to trace insert. 1053 tx_semaphore_ceiling_put.c Added filter option to trace insert, added optional 1054 logic for non-interruptable operation, and made 1055 several optimizations. 1056 tx_semaphore_cleanup.c Added logic to keep suspension list in order, added 1057 optional logic for non-interruptable operation, 1058 and made several optimizations. 1059 tx_semaphore_create.c Added filter option to trace insert, and made 1060 several optimizations. 1061 tx_semaphore_delete.c Added filter option to trace insert, added optional 1062 logic for non-interruptable operation, and made 1063 several optimizations. 1064 tx_semaphore_get.c Added macro to get current thread, added filter 1065 option to trace insert, added optional logic for 1066 non-interruptable operation, and made several 1067 optimizations. 1068 tx_semaphore_info_get.c Added filter option to trace insert. 1069 tx_semaphore_performance_info_get.c Added filter option to trace insert. 1070 tx_semaphore_performance_system_info_get.c Added filter option to trace insert. 1071 tx_semaphore_prioritize.c Added filter option to trace insert, and made 1072 several optimizations. 1073 tx_semaphore_put.c Added filter option to trace insert, added optional 1074 logic for non-interruptable operation, and made 1075 several optimizations. 1076 tx_semaphore_put_notify.c Added filter option to trace insert. 1077 tx_thread_create.c Added filter option to trace insert, moved extension 1078 processing to interrupt enabled area, added logic 1079 to align stack pointers for stack checking, added 1080 optional logic for non-interruptable operation, 1081 and made several optimizations. 1082 tx_thread_delete.c Added filter option to trace insert, moved extension 1083 processing to interrupt enabled area, and made 1084 several optimizations. 1085 tx_thread_entry_exit_notify.c Added filter option to trace insert. 1086 tx_thread_identify.c Added filter option to trace insert, expanded interrupt 1087 disable area, and added macro to get current thread. 1088 tx_thread_info_get.c Added filter option to trace insert. 1089 tx_thread_initialize.c Added macro to set current thread, added new bit 1090 assignments for _tx_build_options, and removed logic 1091 to setup the lowest bit set table since it is no 1092 longer required. 1093 tx_thread_performance_info_get.c Added filter option to trace insert. 1094 tx_thread_performance_system_info_get.c Added filter option to trace insert. 1095 tx_thread_preemption_change.c Added filter option to trace insert, changed MOD32 1096 macro to new TX_MOD32_BIT_SET macro, removed code 1097 for interrupt preemption performance counter updates, 1098 added logic to handle restoring preemption-threshold 1099 values during priority inheritance, and added 1100 TX_DIV32_BIT_SET macro. 1101 tx_thread_priority_change.c Added filter option to trace insert, added optional 1102 logic for non-interruptable operation, and made 1103 several optimizations. 1104 tx_thread_relinquish.c Added macro to get current thread, moved relinquish 1105 trace event, added next thread parameter, added 1106 filter option to trace insert, added stack check 1107 macro, and removed unnecessary code. 1108 tx_thread_reset.c Added filter option to trace insert, and added 1109 macro to get current thread. 1110 tx_thread_resume.c Added macro to get current thread, added state 1111 change macro, added filter option to trace insert, 1112 added optional logic for non-interruptable 1113 operation, and added optional in-line thread 1114 suspension logic. 1115 tx_thread_shell_entry.c Added macro to get current thread, added state 1116 change macro, cleared the timeout value to avoid 1117 a timeout on a completed thread, moved extension 1118 processing to interrupt enabled area, added 1119 optional logic for non-interruptable operation, 1120 and made several optimizations. 1121 tx_thread_sleep.c Added filter option to trace insert, added 1122 optional logic for non-interruptable operation, 1123 and added macro to get current thread. 1124 tx_thread_stack_analyze.c Made optimization. 1125 tx_thread_stack_error_handler.c Removed spin loop. 1126 tx_thread_stack_error_notify.c Added filter option to trace insert. 1127 tx_thread_suspend.c Added macro to get current thread, added filter 1128 option to trace insert, added state change macro, 1129 added optional logic for non-interruptable 1130 operation, and added optional in-line thread 1131 suspension logic. 1132 tx_thread_system_preempt_check.c Added macro to get current thread, added null next 1133 thread check, added stack check macro, and optimized 1134 flag processing. 1135 tx_thread_system_resume.c Added macro to get current thread, added state 1136 change macro, added optional logic for 1137 non-interruptable operation, added filter option 1138 to trace insert, added next thread to system 1139 resume trace entry, changed MOD32 macro to new 1140 TX_MOD32_BIT_SET macro, added TX_DIV32_BIT_SET 1141 macro, added stack check macro, and optimized 1142 code for typical path processing. 1143 tx_thread_system_suspend.c Added macro to get current thread, added state 1144 change macro, added filter option to trace 1145 insert, added optional logic for non-interruptable 1146 operation, changed MOD32 macro to new 1147 TX_MOD32_BIT_SET macro, added TX_DIV32_BIT_SET 1148 macro, optimized lowest set bit logic, added 1149 stack check macro, and optimized code for typical 1150 path processing. 1151 tx_thread_terminate.c Added state change macro, added filter option 1152 to trace insert, moved extension processing 1153 to interrupt enabled area, added optional logic 1154 for non-interruptable operation, and made 1155 several optimizations. 1156 tx_thread_time_slice.c Added macro to get current thread, added event 1157 trace call, added filter option to trace insert, 1158 added stack check macro, and added thread pointer 1159 check in stack checking logic. 1160 tx_thread_time_slice_change.c Added filter option to trace insert, and added 1161 macro to get current thread. 1162 tx_thread_timeout.c Added optional logic for non-interruptable 1163 operation. 1164 tx_thread_wait_abort.c Added optional logic for non-interruptable 1165 operation, and added filter option to trace 1166 insert. 1167 tx_time_get.c Added filter option to trace insert. 1168 tx_time_set.c Added filter option to trace insert. 1169 tx_timer_activate.c Added filter option to trace insert. 1170 tx_timer_change.c Added filter option to trace insert. 1171 tx_timer_create.c Added filter option to trace insert, and 1172 made several optimizations. 1173 tx_timer_deactivate.c Added filter option to trace insert, and 1174 made several optimizations. 1175 tx_timer_delete.c Added filter option to trace insert, and 1176 made several optimizations. 1177 tx_timer_expiration.c Added optional logic for non-interruptable 1178 operation, and made several optimizations. 1179 tx_timer_info_get.c Added filter option to trace insert. 1180 tx_timer_performance_info_get.c Added filter option to trace insert. 1181 tx_timer_performance_system_info_get.c Added filter option to trace insert. 1182 tx_timer_system_activate.c Made several optimizations. 1183 tx_timer_system_deactivate.c Made several optimizations. 1184 tx_timer_thread_entry.c Added optional logic for non-interruptable 1185 operation, and made several optimizations. 1186 tx_trace_buffer_full_notify.c Added new trace function. 1187 tx_trace_enable.c Added logic to setup event filter, and 1188 modified code to ensure universal trace 1189 format. 1190 tx_trace_event_filter.c Added new trace function. 1191 tx_trace_event_unfilter.c Added new trace function. 1192 tx_trace_interrupt_control.c Added filter option to trace insert. 1193 tx_trace_isr_enter_insert.c Added parameters to ISR trace event. 1194 tx_trace_isr_exit_insert.c Added parameters to ISR trace event. 1195 tx_trace_object_register.c Modified code to ensure universal trace format. 1196 tx_trace_object_unregister.c Modified code to ensure universal trace format. 1197 tx_trace_user_event_insert.c Added interrupt restore in error path, and 1198 added filter option to trace insert. 1199 txe_block_allocate.c Added macro to get current thread. 1200 txe_block_pool_create.c Made optimization to timer thread checking, 1201 and added macro to get current thread. 1202 txe_block_pool_delete.c Added macro to get current thread. 1203 txe_byte_allocate.c Made optimization to timer thread checking, 1204 and added macro to get current thread. 1205 txe_byte_pool_create.c Made optimization to timer thread checking, 1206 and added macro to get current thread. 1207 txe_byte_pool_delete.c Made optimization to timer thread checking, 1208 and added macro to get current thread. 1209 txe_byte_release.c Made optimization to timer thread checking, 1210 and added macro to get current thread. 1211 txe_event_flags_create.c Made optimization to timer thread checking, 1212 and added macro to get current thread. 1213 txe_event_flags_delete.c Added macro to get current thread. 1214 txe_event_flags_get.c Added macro to get current thread. 1215 txe_mutex_create.c Made optimization to timer thread checking, 1216 and added macro to get current thread. 1217 txe_mutex_delete.c Added macro to get current thread. 1218 txe_mutex_get.c Made optimization to timer thread checking, 1219 and added macro to get current thread. 1220 txe_mutex_put.c Made optimization to timer thread checking, 1221 and added macro to get current thread. 1222 txe_queue_create.c Made optimization to timer thread checking, 1223 and added macro to get current thread. 1224 txe_queue_delete.c Added macro to get current thread. 1225 txe_queue_front_send.c Added macro to get current thread. 1226 txe_queue_receive.c Added macro to get current thread. 1227 txe_queue_send.c Added macro to get current thread. 1228 txe_semaphore_create.c Made optimization to timer thread checking, 1229 and added macro to get current thread. 1230 txe_semaphore_delete.c Added macro to get current thread. 1231 txe_semaphore_get.c Added macro to get current thread. 1232 txe_thread_create.c Made optimization to timer thread checking, 1233 and added macro to get current thread. 1234 txe_thread_delete.c Made optimization to caller checking. 1235 txe_thread_preemption_change.c Made optimization to caller checking, added 1236 logic to handle restoring preemption- 1237 threshold values during priority inheritance. 1238 txe_thread_priority_change.c Made optimization to caller checking. 1239 txe_thread_relinquish.c Added macro to get current thread. 1240 txe_thread_reset.c Added macro to get current thread, and added 1241 logic to detect calls from timer thread. 1242 txe_thread_terminate.c Made optimization to caller checking. 1243 txe_thread_time_slice_change.c Made optimization to caller checking. 1244 txe_timer_change.c Made optimization to caller checking. 1245 txe_timer_create.c Made optimization to timer thread checking, 1246 and added macro to get current thread. 1247 txe_timer_delete.c Added macro to get current thread. 1248 tx*.c Changed comments and copyright header. 1249 tx*.h Changed comments and copyright header. 1250 1251 125204-02-2007 ThreadX generic code version 5.1. This release includes the following 1253 modifications: 1254 1255 tx_api.h Replaced UL constant modifier with ULONG cast. 1256 tx_block_pool.h Replaced UL constant modifier with ULONG cast. 1257 tx_byte_pool.h Replaced UL constant modifier with ULONG cast. 1258 tx_event_flags.h Replaced UL constant modifier with ULONG cast. 1259 tx_initialize.h Replaced UL constant modifier with ULONG cast. 1260 tx_mutex.h Replaced UL constant modifier with ULONG cast. 1261 tx_queue.h Replaced UL constant modifier with ULONG cast. 1262 tx_semaphore.h Replaced UL constant modifier with ULONG cast. 1263 tx_thread.h Replaced UL constant modifier with ULONG cast 1264 and added logic to use preset global C data. 1265 tx_timer.h Replaced UL constant modifier with ULONG cast. 1266 tx_user.h Added two new conditional build options, 1267 TX_NO_TIMER and TX_USE_PRESET_DATA. 1268 tx_byte_pool_search.c Added optimization for memory search pointer 1269 update. 1270 tx_byte_release.c Added optimization for memory search pointer 1271 update. 1272 tx_event_flags_get.c Added logic for calling from ISRs. 1273 tx_event_flags_info_get.c Added logic to accurately report the currently 1274 set flags in the group. 1275 tx_event_flags_set.c Corrected problem clearing event flags from ISRs. 1276 tx_initialize_high_level.c Added logic to remove the timer logic. 1277 tx_queue_front_send.c Modify code to not remove the oldest message 1278 from the queue in order to avoid losing messages 1279 during timeout processing and optimized message 1280 copying. 1281 tx_queue_receive.c Check for queue front send suspension request 1282 and optimized message copying. 1283 tx_queue_send.c Initialize suspension option field to indicate 1284 type of suspension and optimized message 1285 copying. 1286 tx_thread_create.c Added setup for original priority and threshold. 1287 tx_thread_initialize.c Added logic to use preset global C data. 1288 tx_thread_preemption_change.c Added logic to update and use the original preemption- 1289 threshold, and corrected problem of not setting 1290 preemption-threshold bit when lowering the thread 1291 preemption-threshold. 1292 tx_thread_priority_change.c Added logic to update and use the original priority. 1293 tx_thread_stack_error_notify.c Added included of tx_trace.h. 1294 tx_thread_system_resume.c Fixed conditional declaration of map_index, and 1295 added logic to remove the timer logic. 1296 tx_thread_system_suspend.c Fixed conditional declaration of map_index, and 1297 added logic to remove the timer logic. 1298 txe_timer_change.c Replaced UL constant modifier with ULONG cast. 1299 tx*.c Changed comments and copyright header. 1300 tx*.h Changed comments and copyright header. 1301 1302 130312-12-2005 Initial ThreadX generic code version 5.0. This release includes the 1304 the following fixes from generic code version 4.0c: 1305 1306 tx_mutex_create.c Properly initialize mutex owner field to NULL. 1307 tx_mutex_put.c Set the mutex owner to NULL on put operation. 1308 1309 13102. ThreadX SMP 1311 131202-01-2019 ThreadX generic code version 5.9. This release includes the following 1313 modifications: 1314 1315 tx_api.h Changed minor version constant, and added a 1316 macro to disable warning of parameter not 1317 used. 1318 tx_mutex_priority_change.c Removed update of the priority inheritance 1319 priority level. 1320 tx_thread_priority_change.c Corrected optimization when no change in the 1321 effective priority is necessary. 1322 tx_thread_relinquish.c Added logic to evaluate mapped core instead of 1323 the current core in evaluating the next thread 1324 replacement, added logic to call rebalance when 1325 the next thread is excluded from running on the 1326 mapped core, and added optimization when thread 1327 at the end of the priority list is the thread 1328 performing the relinquish. 1329 tx_thread_suspend.c Refined error checking for self suspension to 1330 ensure thread context. 1331 tx_thread_time_slice.c Added logic to call rebalance when the next 1332 thread is excluded from running on the mapped 1333 core, and added optimization when thread at the 1334 end of the priority list is the thread being 1335 time-sliced. 1336 1337 133806-01-2017 ThreadX generic code version 5.8. This release includes the following 1339 modifications: 1340 1341 tx_api.h Changed minor version constant, added 1342 suspension sequence to verify cleanup 1343 is still necessary, modified code for MISRA 1344 compliance, added alignment type for memory 1345 pools, corrected compiler warnings in macro 1346 definitions, added support for optional 1347 extensions. 1348 tx_thread.h Modified code for MISRA compliance, added 1349 default macro definition for setting up timeout, 1350 added default macro definition for setting up 1351 thread timeout pointer, and added macros for 1352 extending the thread create, delete, and reset 1353 processing. 1354 tx_timer.h Modified code for MISRA compliance, added macro 1355 for extending timer delete, and removed 1356 unnecessary defines. 1357 tx_trace.h Modified code for MISRA compliance. 1358 tx_byte_pool_search.c Modified code for MISRA compliance, added use of 1359 alignment type for searching byte pool. 1360 tx_event_flags_set.c Removed unnecessary code, and modified code for 1361 MISRA compliance. 1362 tx_initialize_kernel_enter.c Added processing extension, and modified code 1363 for MISRA compliance. 1364 tx_mutex_priority_change.c Removed unnecessary code, modified code for MISRA 1365 compliance, and added processing extension. 1366 tx_thread_create.c Modified code for MISRA compliance, added optional 1367 internal thread extension macro, added macro for 1368 setting up the thread timeout, and corrected problem 1369 restoring preemption-threshold during initialization. 1370 tx_thread_initialize.c Modified code for MISRA compliance. 1371 tx_thread_preemption_change.c Modified code for MISRA compliance. 1372 tx_thread_priority_change.c Added processing extension, and modified code for 1373 MISRA compliance. 1374 tx_thread_relinquish.c Modified code for MISRA compliance. 1375 tx_thread_resume.c Modified code for MISRA compliance. 1376 tx_thread_smp_core_exclude.c Modified code for MISRA compliance. 1377 tx_thread_smp_core_exclude_get.c Modified code for MISRA compliance. 1378 tx_thread_smp_current_state_get.c Modified code for MISRA compliance. 1379 tx_thread_smp_debug_entry_insert.c Modified code for MISRA compliance. 1380 tx_thread_smp_high_level_initialize.c Modified code for MISRA compliance. 1381 tx_thread_smp_rebalance_execute_list.c Modified code for MISRA compliance. 1382 tx_thread_smp_utilities.c Added new file for SMP utilities when in-line is disabled. 1383 tx_thread_suspend.c Modified code for MISRA compliance, and added protection 1384 against self suspension with the preempt-disable flag set. 1385 tx_thread_system_preempt_check.c Modified code for MISRA compliance. 1386 tx_thread_system_resume.c Removed unnecessary code, corrected issue with resuming a 1387 thread that was previously in the middle of suspending with 1388 an additional suspension request, corrected issue resuming 1389 a thread with no available cores, and modified code for 1390 MISRA compliance. 1391 tx_thread_system_suspend.c Corrected issue with self-suspending thread not at the head 1392 of its priority list, modified code for MISRA compliance, 1393 and corrected problem setting up the trace information 4 1394 field. 1395 tx_thread_time_slice.c Modified code for MISRA compliance. 1396 tx_thread_time_slice_change.c Modified code for MISRA compliance. 1397 tx_thread_timeout.c Modified code for MISRA compliance, added suspension 1398 sequence to verify cleanup is still necessary, and added 1399 macro for setting up the thread pointer. 1400 tx_timer_create.c Modified code for MISRA compliance. 1401 tx_timer_initialize.c Modified code for MISRA compliance, added initialization for 1402 timer expired pointer, and added check for TX_NO_TIMER 1403 option. 1404 tx_timer_smp_core_exclude.c Modified code for MISRA compliance. 1405 tx_timer_smp_core_exclude_get.c Modified code for MISRA compliance. 1406 tx_timer_thread_entry.c Modified code for MISRA compliance. 1407 1408 140908-03-2016 ThreadX generic code version 5.7.2. This release includes the following 1410 modifications (also includes ThreadX 5.7 SP1 non-SMP source): 1411 1412 tx_api.h Corrected compiler warnings in macro definitions. 1413 tx_timer.h Added the global variable _tx_timer_expired_ptr 1414 which is needed by timer info get. 1415 tx_byte_pool_search.c Modified logic to ensure the integrity of 1416 the search pointer. 1417 tx_mutex_priority_change.c Added logic to reverse preemption-threshold while 1418 the thread's priority is changed. 1419 tx_thread_priority_change.c Added logic to reverse preemption-threshold while 1420 the thread's priority is changed. 1421 tx_thread_smp_rebalance_execute_list.c Corrected the update of possible cores. 1422 tx_thread_system_resume.c Added performance optimization for the simple 1423 preemption case. 1424 tx_thread_system_suspend.c Corrected the update of possible cores, and 1425 added performance optimization by determining 1426 if nontrivial scheduling is possible before full 1427 examination. 1428 tx_timer_create.c Kept protection over timer activation. 1429 tx_timer_initialize.c Added initialization for timer expired pointer, and 1430 added check for TX_NO_TIMER option. 1431 tx_timer_thread_entry.c Ensure timer is not accessed after timeout unless 1432 reactivation is necessary, set pointer to indicate 1433 timer being processed, and perform reactivation with 1434 protection. 1435 tx*.c Changed comments and copyright header. 1436 tx*.h Changed comments and copyright header. 1437 1438 143904-01-2016 ThreadX generic code version 5.7.1. This release includes the following 1440 modifications: 1441 1442 tx_api.h Added core excluded/allowed members to the 1443 TX_THREAD structure, and changed member name 1444 control to excluded for internal timer struct. 1445 tx_event_flags_set.c Moved notify function pointer setup before any 1446 thread resumption. 1447 tx_mutex_priority_change.c Added logic to not place thread at head of list 1448 when lowering priority if the priority level has 1449 a thread with preemption-threshold in force, and 1450 optimized processing. 1451 tx_thread.h Added optimized in-line helper functions, and 1452 added preemption-threshold list. 1453 tx_thread_create.c Added clearing of the thread preemption-threshold 1454 list, changed the name of core control to core 1455 excluded in internal timer setup, and added setup 1456 for the new TX_THREAD cores excluded and allowed 1457 members. 1458 tx_thread_initialize.c Added initialization of the preemption-threshold 1459 list. 1460 tx_thread_preemption_change.c Corrected problem disabling preemption-threshold. 1461 tx_thread_priority_change.c Added logic to not place thread at head of list 1462 when lowering priority if the priority level has 1463 a thread with preemption-threshold in force, and 1464 optimized processing. 1465 tx_thread_relinquish.c Corrected preemption-threshold issue, and utilized 1466 new cores allowed member in TX_THREAD. 1467 tx_thread_smp_core_exclude.c Added logic to ensure the core mapped information is 1468 consistent with the new core exclusion. 1469 tx_thread_smp_core_exclude_get.c Utilized new cores excluded member in TX_THREAD. 1470 tx_thread_smp_rebalance_execute_list.c Corrected problem with schedule thread not being 1471 updated in one optimization case, added setup of 1472 the preempted list for preemption-threshold, and 1473 simplified code via in-line functions. 1474 tx_thread_system_resume.c Optimized processing for simple case, and simplified 1475 code via in-line functions. 1476 tx_thread_system_suspend.c Optimized processing for simple case, corrected problem 1477 disabling preemption-threshold, and simplified code via 1478 in-line functions. 1479 tx_thread_time_slice.c Corrected preemption-threshold issue, and utilized new 1480 cores allowed member in TX_THREAD. 1481 tx_timer_create.c Changed the name of core control to core excluded in 1482 internal timer setup. 1483 tx_timer_info_get.c Added check for proper remaining time calculation. 1484 tx_timer_smp_core_exclude.c Changed the name of core control to core excluded in 1485 internal timer setup. 1486 tx_timer_smp_core_exclude_get.c Changed the name of core control to core excluded in 1487 internal timer setup. 1488 tx_timer_thread_entry.c Changed the name of core control to core excluded in 1489 internal timer setup. 1490 tx_trace.h Modified code to sync with standard ThreadX tx_trace.h. 1491 tx*.c Changed comments and copyright header. 1492 tx*.h Changed comments and copyright header. 1493 1494 149509-01-2015 ThreadX generic code version 5.7. This release includes the following 1496 modifications: 1497 1498 tx_api.h Modified code for ThreadX 5.7 compatibility, added 1499 default for port-specific memory synchronization primitive, 1500 modified minor version define, added thread start 1501 macro for performing port and/or user specified 1502 processing when a thread starts, and added constant 1503 TX_TIMER_TICKS_PER_SECOND for use by other middleware 1504 components as a common time reference. 1505 tx_thread.h Corrected next priority find for priority levels 1506 greater than 32. 1507 tx_byte_pool_search.c Added code to assert pool ownership after protection 1508 is obtained to ensure no changes to the pool or the 1509 pool search pointer are made without ownership. 1510 tx_initialize_kernel_enter.c Removed TX_INITIALIZE_INIT since it is no longer needed, 1511 and added memory synchronization macros. 1512 tx_thread_preemption_change.c Added optimization to avoid calling rebalance algorithm. 1513 tx_thread_smp_rebalance_execute_list.c Corrected problem scheduling thread on excluded core, 1514 and added various optimizations. 1515 tx_thread_system_resume.c Added protection after the call to _tx_thread_system_return 1516 when the build option TX_NOT_INTERRUPTABLE is used, and added 1517 optimization to avoid calling rebalance algorithm. 1518 tx_thread_system_suspend.c Added protection after the call to _tx_thread_system_return 1519 when the build option TX_NOT_INTERRUPTABLE is used, 1520 corrected problem scheduling thread on excluded core, and 1521 added optimization to avoid unnecessary priority search. 1522 tx*.c Changed comments and copyright header. 1523 tx*.h Changed comments and copyright header. 1524 1525 152605-01-2014 ThreadX generic code version 5.6.2. This release includes the following 1527 modifications: 1528 1529 tx_api.h Added timeout sequence information to the 1530 thread control block. 1531 tx_thread.h Made the release cores flag volatile, and 1532 removed unnecessary prototypes. 1533 tx_byte_pool_search.c Added SMP-specific version. 1534 tx_thread_create.c Added logic to initialize the thread's 1535 executing core. 1536 tx_thread_system_resume.c Added optimization in resuming a thread with 1537 core(s) excluded. 1538 tx_thread_system_suspend.c Changed code to eliminate a compiler warning, 1539 added sequence counters for timeouts and 1540 suspension, and corrected problem 1541 suspending the last thread with preemption- 1542 threshold in force. 1543 tx_thread_smp_high_level_initialize.c Updated protection structure member name. 1544 tx_thread_timeout.c Added SMP-specific version. 1545 tx_thread_time_slice.c Added quick check for no time-slice expiration, 1546 and removed protection logic since this function 1547 is called under protection. 1548 tx_timer_thread_entry.c Released protection over timeout call. 1549 tx*.c Changed comments and copyright header. 1550 tx*.h Changed comments and copyright header. 1551 1552 155312-12-2012 Initial ThreadX SMP generic code version 5.6.1.