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