mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-11-04 10:42:33 -05:00
Previously, newlib's _impure_ptr was updated on every context switch to point to the current task's _reent structure. However, this behavior is no longer valid on multi-core systems due to the fact that multiple cores can switch contexts at the same time, thus leading to the corruption of the _impure_ptr. However, Newlib can be compiled with __DYNAMIC_REENT__ enabled which will cause newlib functions to call __getreent() instead in order to obtain the required reent struct. This commit adds dynamic reentrancy support to FreeRTOS: - Added a configNEWLIB_REENTRANT_IS_DYNAMIC to enable dynamic reentrancy support - _impure_ptr is no longer updated with reentrancy is dynamic - Port must provide their own __getreent() that returns the current task's reent struct |
||
|---|---|---|
| .. | ||
| atomic.h | ||
| croutine.h | ||
| deprecated_definitions.h | ||
| event_groups.h | ||
| FreeRTOS.h | ||
| list.h | ||
| message_buffer.h | ||
| mpu_prototypes.h | ||
| mpu_wrappers.h | ||
| portable.h | ||
| projdefs.h | ||
| queue.h | ||
| semphr.h | ||
| stack_macros.h | ||
| StackMacros.h | ||
| stdint.readme | ||
| stream_buffer.h | ||
| task.h | ||
| timers.h | ||