This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: How is _GLOBAL_REENT meant to be used?
- From: Jeff Johnston <jjohnstn at redhat dot com>
- To: Thomas Zenker <thz at isepos dot de>
- Cc: newlib at sourceware dot org
- Date: Fri, 21 Apr 2006 19:39:16 -0400
- Subject: Re: How is _GLOBAL_REENT meant to be used?
- References: <4448F81A.20340.162D826@localhost>
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.