How is _GLOBAL_REENT meant to be used?
Jeff Johnston
jjohnstn@redhat.com
Sat Apr 22 20:21:00 GMT 2006
Thomas Zenker wrote:
> Hi, I've ported newlib to my preemptive RTOS. The REENT resp. _impure_ptr
> is set during task switches. Now on exit from a task fwalk etc. does not
> cleanup impure_ptr but GLOBAL_REENT (_global_impure_ptr), which is the
> static version.
> How is it meant to be used or is there a possibility to map GLOBAL_REENT
> to REENT without changing newlib?
> Thomas
>
The _GLOBAL_REENT struct is used to store and access global information
across threads. Such information includes open files and the atexit
lists, for example. In the case of the I/O cleanup function in
libc/stdio/findfp.c, _GLOBAL_REENT is used to walk the open file list
and issue fclose. This corresponds to the fact that when a file is
opened via fopen/freopen, it is added to the list of _GLOBAL_REENT (see
__sfp in libc/stdio/findfp.c).
-- Jeff J.
More information about the Newlib
mailing list