mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-20 07:51:35 +08:00
* include/cygwin/config.h (__getreent): Define inline version.
This commit is contained in:
parent
e65aa07ac6
commit
6e08b2f7f8
@ -1,3 +1,7 @@
|
||||
2007-09-06 Brian Dessent <brian@dessent.net>
|
||||
|
||||
* include/cygwin/config.h (__getreent): Define inline version.
|
||||
|
||||
2007-09-06 Brian Dessent <brian@dessent.net>
|
||||
|
||||
* include/sys/stdio.h (_flockfile): Don't try to lock a FILE
|
||||
|
@ -20,6 +20,27 @@ extern "C" {
|
||||
#define _CYGWIN_CONFIG_H
|
||||
|
||||
#define __DYNAMIC_REENT__
|
||||
|
||||
/* The following provides an inline version of __getreent() for newlib,
|
||||
which will be used throughout the library whereever there is a _r
|
||||
version of a function that takes _REENT. This saves the overhead
|
||||
of a function call for what amounts to a simple computation.
|
||||
|
||||
The definition below is essentially equivalent to the one in cygtls.h
|
||||
(&_my_tls.local_clib) however it uses a fixed precomputed
|
||||
offset rather than dereferencing a field of a structure.
|
||||
|
||||
Including tlsoffets.h here in order to get this constant offset
|
||||
tls_local_clib is a bit of a hack, but the alternative would require
|
||||
dragging the entire definition of struct _cygtls (a large and complex
|
||||
Cygwin internal data structure) into newlib. The machinery to
|
||||
compute these offsets already exists for the sake of gendef so
|
||||
we might as well just use it here. */
|
||||
|
||||
#include "../tlsoffsets.h"
|
||||
extern char *_tlsbase __asm__ ("%fs:4");
|
||||
#define __getreent() (struct _reent *)(_tlsbase + tls_local_clib)
|
||||
|
||||
#define __FILENAME_MAX__ (260 - 1 /* NUL */)
|
||||
#define _READ_WRITE_RETURN_TYPE _ssize_t
|
||||
#define __LARGE64_FILES 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user