This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How is _GLOBAL_REENT meant to be used?


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]