Index: newlib/libc/include/sys/reent.h =================================================================== RCS file: /cvs/src/src/newlib/libc/include/sys/reent.h,v retrieving revision 1.33 diff -u -r1.33 reent.h --- newlib/libc/include/sys/reent.h 15 Sep 2004 21:44:38 -0000 1.33 +++ newlib/libc/include/sys/reent.h 24 Jan 2005 12:01:24 -0000 @@ -158,9 +158,9 @@ struct _reent *_data; }; /* CHECK_INIT() comes from stdio/local.h; be sure to include that. */ -# define _REENT_SMALL_CHECK_INIT(fp) CHECK_INIT(fp) +# define _REENT_SMALL_CHECK_INIT(ptr) CHECK_INIT(ptr) #else -# define _REENT_SMALL_CHECK_INIT(fp) /* nothing */ +# define _REENT_SMALL_CHECK_INIT(ptr) /* nothing */ #endif struct __sFILE { Index: newlib/libc/machine/powerpc/vfprintf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/machine/powerpc/vfprintf.c,v retrieving revision 1.10 diff -u -r1.10 vfprintf.c --- newlib/libc/machine/powerpc/vfprintf.c 18 Jan 2005 17:08:55 -0000 1.10 +++ newlib/libc/machine/powerpc/vfprintf.c 24 Jan 2005 12:14:13 -0000 @@ -239,7 +239,6 @@ unsigned char buf[BUFSIZ]; /* copy the important variables */ - fake._data = fp->_data; fake._flags = fp->_flags & ~__SNBF; fake._file = fp->_file; fake._cookie = fp->_cookie; @@ -322,6 +321,7 @@ _CONST char *fmt0 _AND va_list ap) { + CHECK_INIT (_REENT); return _VFPRINTF_R (_REENT, fp, fmt0, ap); } Index: newlib/libc/machine/powerpc/vfscanf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/machine/powerpc/vfscanf.c,v retrieving revision 1.14 diff -u -r1.14 vfscanf.c --- newlib/libc/machine/powerpc/vfscanf.c 24 Nov 2004 00:45:41 -0000 1.14 +++ newlib/libc/machine/powerpc/vfscanf.c 24 Jan 2005 12:01:21 -0000 @@ -224,8 +224,8 @@ _CONST char *fmt _AND va_list ap) { - CHECK_INIT(fp); - return __svfscanf_r (fp->_data, fp, fmt, ap); + CHECK_INIT(_REENT); + return __svfscanf_r (_REENT, fp, fmt, ap); } int Index: newlib/libc/stdio/clearerr.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/clearerr.c,v retrieving revision 1.3 diff -u -r1.3 clearerr.c --- newlib/libc/stdio/clearerr.c 23 Apr 2004 20:01:54 -0000 1.3 +++ newlib/libc/stdio/clearerr.c 1 Feb 2005 18:28:37 -0000 @@ -54,12 +54,17 @@ #include <_ansi.h> #include +#include "local.h" + +/* A subroutine version of the macro clearerr. */ + #undef clearerr _VOID _DEFUN(clearerr, (fp), FILE * fp) { + CHECK_INIT(_REENT); _flockfile (fp); __sclearerr (fp); _funlockfile (fp); Index: newlib/libc/stdio/fclose.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/fclose.c,v retrieving revision 1.9 diff -u -r1.9 fclose.c --- newlib/libc/stdio/fclose.c 11 Jun 2004 20:37:10 -0000 1.9 +++ newlib/libc/stdio/fclose.c 24 Jan 2005 12:01:21 -0000 @@ -76,10 +76,10 @@ __sfp_lock_acquire (); + CHECK_INIT (rptr); + _flockfile (fp); - CHECK_INIT (fp); - if (fp->_flags == 0) /* not open! */ { _funlockfile (fp); Index: newlib/libc/stdio/feof.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/feof.c,v retrieving revision 1.3 diff -u -r1.3 feof.c --- newlib/libc/stdio/feof.c 23 Apr 2004 20:01:54 -0000 1.3 +++ newlib/libc/stdio/feof.c 1 Feb 2005 18:28:39 -0000 @@ -46,6 +46,9 @@ */ #include +#include "local.h" + +/* A subroutine version of the macro feof. */ #undef feof @@ -54,6 +57,7 @@ FILE * fp) { int result; + CHECK_INIT(_REENT); _flockfile (fp); result = __sfeof (fp); _funlockfile (fp); Index: newlib/libc/stdio/ferror.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/ferror.c,v retrieving revision 1.3 diff -u -r1.3 ferror.c --- newlib/libc/stdio/ferror.c 23 Apr 2004 20:01:54 -0000 1.3 +++ newlib/libc/stdio/ferror.c 1 Feb 2005 18:28:41 -0000 @@ -55,6 +55,7 @@ #include <_ansi.h> #include +#include "local.h" /* A subroutine version of the macro ferror. */ @@ -65,6 +66,7 @@ FILE * fp) { int result; + CHECK_INIT(_REENT); _flockfile (fp); result = __sferror (fp); _funlockfile (fp); Index: newlib/libc/stdio/fflush.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/fflush.c,v retrieving revision 1.4 diff -u -r1.4 fflush.c --- newlib/libc/stdio/fflush.c 23 Apr 2004 20:01:54 -0000 1.4 +++ newlib/libc/stdio/fflush.c 24 Jan 2005 12:01:21 -0000 @@ -67,9 +67,9 @@ if (fp == NULL) return _fwalk (_GLOBAL_REENT, fflush); - _flockfile (fp); + CHECK_INIT (_REENT); - CHECK_INIT (fp); + _flockfile (fp); t = fp->_flags; if ((t & __SWR) == 0 || (p = fp->_bf._base) == NULL) Index: newlib/libc/stdio/fgetc.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/fgetc.c,v retrieving revision 1.3 diff -u -r1.3 fgetc.c --- newlib/libc/stdio/fgetc.c 23 Apr 2004 20:01:54 -0000 1.3 +++ newlib/libc/stdio/fgetc.c 1 Feb 2005 18:28:43 -0000 @@ -55,12 +55,14 @@ #include <_ansi.h> #include +#include "local.h" int _DEFUN(fgetc, (fp), FILE * fp) { int result; + CHECK_INIT(_REENT); _flockfile (fp); result = __sgetc (fp); _funlockfile (fp); Index: newlib/libc/stdio/fgetpos.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/fgetpos.c,v retrieving revision 1.5 diff -u -r1.5 fgetpos.c --- newlib/libc/stdio/fgetpos.c 23 Apr 2004 20:01:54 -0000 1.5 +++ newlib/libc/stdio/fgetpos.c 24 Jan 2005 12:01:21 -0000 @@ -81,15 +81,12 @@ FILE * fp _AND _fpos_t * pos) { - _flockfile (fp); *pos = _ftell_r (ptr, fp); if (*pos != -1) { - _funlockfile (fp); return 0; } - _funlockfile (fp); return 1; } Index: newlib/libc/stdio/fgets.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/fgets.c,v retrieving revision 1.4 diff -u -r1.4 fgets.c --- newlib/libc/stdio/fgets.c 23 Apr 2004 20:01:54 -0000 1.4 +++ newlib/libc/stdio/fgets.c 24 Jan 2005 12:01:21 -0000 @@ -80,6 +80,8 @@ s = buf; + CHECK_INIT(_REENT); + _flockfile (fp); #ifdef __SCLE if (fp->_flags & __SCLE) Index: newlib/libc/stdio/fileno.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/fileno.c,v retrieving revision 1.3 diff -u -r1.3 fileno.c --- newlib/libc/stdio/fileno.c 23 Apr 2004 20:01:54 -0000 1.3 +++ newlib/libc/stdio/fileno.c 24 Jan 2005 12:01:22 -0000 @@ -54,8 +54,8 @@ FILE * f) { int result; + CHECK_INIT (_REENT); _flockfile (f); - CHECK_INIT (f); result = __sfileno (f); _funlockfile (f); return result; Index: newlib/libc/stdio/fputc.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/fputc.c,v retrieving revision 1.3 diff -u -r1.3 fputc.c --- newlib/libc/stdio/fputc.c 23 Apr 2004 20:01:55 -0000 1.3 +++ newlib/libc/stdio/fputc.c 1 Feb 2005 18:28:48 -0000 @@ -59,6 +59,7 @@ #include <_ansi.h> #include +#include "local.h" int _DEFUN(fputc, (ch, file), @@ -66,6 +67,7 @@ FILE * file) { int result; + CHECK_INIT(_REENT); _flockfile (file); result = putc (ch, file); _funlockfile (file); Index: newlib/libc/stdio/fputs.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/fputs.c,v retrieving revision 1.3 diff -u -r1.3 fputs.c --- newlib/libc/stdio/fputs.c 23 Apr 2004 20:01:55 -0000 1.3 +++ newlib/libc/stdio/fputs.c 1 Feb 2005 18:28:50 -0000 @@ -51,6 +51,7 @@ #include #include #include "fvwrite.h" +#include "local.h" /* * Write the given string to the given file. @@ -69,6 +70,9 @@ iov.iov_len = uio.uio_resid = strlen (s); uio.uio_iov = &iov; uio.uio_iovcnt = 1; + + CHECK_INIT(_REENT); + _flockfile (fp); result = __sfvwrite (fp, &uio); _funlockfile (fp); Index: newlib/libc/stdio/fread.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/fread.c,v retrieving revision 1.9 diff -u -r1.9 fread.c --- newlib/libc/stdio/fread.c 13 Dec 2004 19:42:16 -0000 1.9 +++ newlib/libc/stdio/fread.c 24 Jan 2005 12:01:22 -0000 @@ -125,6 +125,8 @@ if ((resid = count * size) == 0) return 0; + CHECK_INIT(_REENT); + _flockfile (fp); if (fp->_r < 0) fp->_r = 0; Index: newlib/libc/stdio/freopen.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/freopen.c,v retrieving revision 1.11 diff -u -r1.11 freopen.c --- newlib/libc/stdio/freopen.c 11 Jun 2004 20:37:10 -0000 1.11 +++ newlib/libc/stdio/freopen.c 24 Jan 2005 12:01:22 -0000 @@ -91,9 +91,9 @@ __sfp_lock_acquire (); - _flockfile (fp); + CHECK_INIT (ptr); - CHECK_INIT (fp); + _flockfile (fp); if ((flags = __sflags (ptr, mode, &oflags)) == 0) { Index: newlib/libc/stdio/fseek.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/fseek.c,v retrieving revision 1.10 diff -u -r1.10 fseek.c --- newlib/libc/stdio/fseek.c 23 Apr 2004 20:01:55 -0000 1.10 +++ newlib/libc/stdio/fseek.c 24 Jan 2005 12:01:22 -0000 @@ -129,11 +129,11 @@ struct stat st; int havepos; - _flockfile (fp); - /* Make sure stdio is set up. */ - CHECK_INIT (fp); + CHECK_INIT (ptr); + + _flockfile (fp); /* If we've been doing some writing, and we're in append mode then we don't really know where the filepos is. */ Index: newlib/libc/stdio/ftell.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/ftell.c,v retrieving revision 1.8 diff -u -r1.8 ftell.c --- newlib/libc/stdio/ftell.c 6 Jan 2005 20:10:56 -0000 1.8 +++ newlib/libc/stdio/ftell.c 24 Jan 2005 17:16:19 -0000 @@ -105,11 +105,11 @@ { _fpos_t pos; - _flockfile (fp); - /* Ensure stdio is set up. */ - CHECK_INIT (fp); + CHECK_INIT (ptr); + + _flockfile (fp); if (fp->_seek == NULL) { Index: newlib/libc/stdio/fwrite.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/fwrite.c,v retrieving revision 1.3 diff -u -r1.3 fwrite.c --- newlib/libc/stdio/fwrite.c 23 Apr 2004 20:01:55 -0000 1.3 +++ newlib/libc/stdio/fwrite.c 24 Jan 2005 12:01:22 -0000 @@ -99,6 +99,8 @@ * generally slow and since this occurs whenever size==0. */ + CHECK_INIT(_REENT); + _flockfile (fp); if (__sfvwrite (fp, &uio) == 0) { Index: newlib/libc/stdio/getc.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/getc.c,v retrieving revision 1.3 diff -u -r1.3 getc.c --- newlib/libc/stdio/getc.c 23 Apr 2004 20:01:55 -0000 1.3 +++ newlib/libc/stdio/getc.c 1 Feb 2005 18:28:57 -0000 @@ -64,6 +64,7 @@ #include <_ansi.h> #include +#include "local.h" /* * A subroutine version of the macro getc. @@ -76,8 +77,8 @@ register FILE *fp) { int result; + CHECK_INIT (_REENT); _flockfile (fp); - /* CHECK_INIT is called (eventually) by __srefill. */ result = __sgetc (fp); _funlockfile (fp); return result; Index: newlib/libc/stdio/getchar.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/getchar.c,v retrieving revision 1.3 diff -u -r1.3 getchar.c --- newlib/libc/stdio/getchar.c 23 Apr 2004 20:01:55 -0000 1.3 +++ newlib/libc/stdio/getchar.c 24 Jan 2005 12:01:22 -0000 @@ -82,7 +82,7 @@ _DEFUN(_getchar_r, (f), struct _reent *f) { - _REENT_SMALL_CHECK_INIT (_stdin_r (f)); + _REENT_SMALL_CHECK_INIT (f); return getc (_stdin_r (f)); } Index: newlib/libc/stdio/getdelim.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/getdelim.c,v retrieving revision 1.3 diff -u -r1.3 getdelim.c --- newlib/libc/stdio/getdelim.c 23 Apr 2004 20:01:55 -0000 1.3 +++ newlib/libc/stdio/getdelim.c 24 Jan 2005 12:01:22 -0000 @@ -79,9 +79,9 @@ *n = DEFAULT_LINE_SIZE; } - _flockfile (fp); + CHECK_INIT (_REENT); - CHECK_INIT (fp); + _flockfile (fp); numbytes = *n; ptr = buf; Index: newlib/libc/stdio/iprintf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/iprintf.c,v retrieving revision 1.6 diff -u -r1.6 iprintf.c --- newlib/libc/stdio/iprintf.c 24 Nov 2004 00:45:41 -0000 1.6 +++ newlib/libc/stdio/iprintf.c 24 Jan 2005 12:01:22 -0000 @@ -40,7 +40,7 @@ int ret; va_list ap; - _REENT_SMALL_CHECK_INIT (_stdout_r (_REENT)); + _REENT_SMALL_CHECK_INIT (_REENT); #ifdef _HAVE_STDC va_start (ap, fmt); #else @@ -67,7 +67,7 @@ int ret; va_list ap; - _REENT_SMALL_CHECK_INIT (_stdout_r (ptr)); + _REENT_SMALL_CHECK_INIT (ptr); #ifdef _HAVE_STDC va_start (ap, fmt); #else Index: newlib/libc/stdio/iscanf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/iscanf.c,v retrieving revision 1.1 diff -u -r1.1 iscanf.c --- newlib/libc/stdio/iscanf.c 24 Nov 2004 00:45:41 -0000 1.1 +++ newlib/libc/stdio/iscanf.c 24 Jan 2005 12:01:22 -0000 @@ -39,7 +39,7 @@ int ret; va_list ap; - _REENT_SMALL_CHECK_INIT (_stdin_r (_REENT)); + _REENT_SMALL_CHECK_INIT (_REENT); #ifdef _HAVE_STDC va_start (ap, fmt); #else @@ -65,7 +65,7 @@ int ret; va_list ap; - _REENT_SMALL_CHECK_INIT (_stdin_r (ptr)); + _REENT_SMALL_CHECK_INIT (ptr); #ifdef _HAVE_STDC va_start (ap, fmt); #else Index: newlib/libc/stdio/local.h =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/local.h,v retrieving revision 1.14 diff -u -r1.14 local.h --- newlib/libc/stdio/local.h 24 Nov 2004 00:45:41 -0000 1.14 +++ newlib/libc/stdio/local.h 24 Jan 2005 12:01:22 -0000 @@ -49,11 +49,11 @@ /* Called by the main entry point fns to ensure stdio has been initialized. */ -#define CHECK_INIT(fp) \ +#define CHECK_INIT(ptr) \ do \ { \ - if (_REENT && !_REENT->__sdidinit) \ - __sinit (_REENT); \ + if ((ptr) && !(ptr)->__sdidinit) \ + __sinit (ptr); \ } \ while (0) Index: newlib/libc/stdio/perror.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/perror.c,v retrieving revision 1.3 diff -u -r1.3 perror.c --- newlib/libc/stdio/perror.c 23 Apr 2004 20:01:55 -0000 1.3 +++ newlib/libc/stdio/perror.c 24 Jan 2005 12:01:22 -0000 @@ -74,7 +74,7 @@ { char *error; - _REENT_SMALL_CHECK_INIT (_stderr_r (ptr)); + _REENT_SMALL_CHECK_INIT (ptr); if (s != NULL && *s != '\0') { fputs (s, _stderr_r (ptr)); Index: newlib/libc/stdio/printf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/printf.c,v retrieving revision 1.4 diff -u -r1.4 printf.c --- newlib/libc/stdio/printf.c 23 Apr 2004 20:01:55 -0000 1.4 +++ newlib/libc/stdio/printf.c 24 Jan 2005 12:01:22 -0000 @@ -39,7 +39,7 @@ int ret; va_list ap; - _REENT_SMALL_CHECK_INIT (_stdout_r (ptr)); + _REENT_SMALL_CHECK_INIT (ptr); #ifdef _HAVE_STDC va_start (ap, fmt); #else @@ -65,7 +65,7 @@ int ret; va_list ap; - _REENT_SMALL_CHECK_INIT (_stdout_r (_REENT)); + _REENT_SMALL_CHECK_INIT (_REENT); #ifdef _HAVE_STDC va_start (ap, fmt); #else Index: newlib/libc/stdio/putc.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/putc.c,v retrieving revision 1.3 diff -u -r1.3 putc.c --- newlib/libc/stdio/putc.c 23 Apr 2004 20:01:55 -0000 1.3 +++ newlib/libc/stdio/putc.c 1 Feb 2005 18:29:07 -0000 @@ -67,6 +67,7 @@ #include <_ansi.h> #include +#include "local.h" /* * A subroutine version of the macro putc. @@ -80,8 +81,8 @@ register FILE *fp) { int result; + CHECK_INIT (_REENT); _flockfile (fp); - /* CHECK_INIT is (eventually) called by __swbuf. */ result = __sputc (c, fp); _funlockfile (fp); return result; Index: newlib/libc/stdio/putchar.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/putchar.c,v retrieving revision 1.5 diff -u -r1.5 putchar.c --- newlib/libc/stdio/putchar.c 23 Apr 2004 20:01:55 -0000 1.5 +++ newlib/libc/stdio/putchar.c 24 Jan 2005 12:01:23 -0000 @@ -80,7 +80,7 @@ struct _reent *ptr _AND int c) { - _REENT_SMALL_CHECK_INIT (_stdout_r (ptr)); + _REENT_SMALL_CHECK_INIT (ptr); return putc (c, _stdout_r (ptr)); } Index: newlib/libc/stdio/puts.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/puts.c,v retrieving revision 1.3 diff -u -r1.3 puts.c --- newlib/libc/stdio/puts.c 23 Apr 2004 20:01:55 -0000 1.3 +++ newlib/libc/stdio/puts.c 24 Jan 2005 12:01:23 -0000 @@ -90,7 +90,7 @@ uio.uio_iov = &iov[0]; uio.uio_iovcnt = 2; - _REENT_SMALL_CHECK_INIT (_stdout_r (ptr)); + _REENT_SMALL_CHECK_INIT (ptr); return (__sfvwrite (_stdout_r (ptr), &uio) ? EOF : '\n'); } Index: newlib/libc/stdio/refill.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/refill.c,v retrieving revision 1.5 diff -u -r1.5 refill.c --- newlib/libc/stdio/refill.c 17 Nov 2004 17:02:10 -0000 1.5 +++ newlib/libc/stdio/refill.c 24 Jan 2005 12:01:23 -0000 @@ -41,7 +41,7 @@ { /* make sure stdio is set up */ - CHECK_INIT (fp); + CHECK_INIT (_REENT); fp->_r = 0; /* largely a convenience for callers */ Index: newlib/libc/stdio/scanf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/scanf.c,v retrieving revision 1.5 diff -u -r1.5 scanf.c --- newlib/libc/stdio/scanf.c 23 Apr 2004 20:01:55 -0000 1.5 +++ newlib/libc/stdio/scanf.c 24 Jan 2005 12:01:23 -0000 @@ -39,7 +39,7 @@ int ret; va_list ap; - _REENT_SMALL_CHECK_INIT (_stdin_r (_REENT)); + _REENT_SMALL_CHECK_INIT (_REENT); #ifdef _HAVE_STDC va_start (ap, fmt); #else @@ -65,7 +65,7 @@ int ret; va_list ap; - _REENT_SMALL_CHECK_INIT (_stdin_r (ptr)); + _REENT_SMALL_CHECK_INIT (ptr); #ifdef _HAVE_STDC va_start (ap, fmt); #else Index: newlib/libc/stdio/setvbuf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/setvbuf.c,v retrieving revision 1.4 diff -u -r1.4 setvbuf.c --- newlib/libc/stdio/setvbuf.c 23 Apr 2004 20:01:55 -0000 1.4 +++ newlib/libc/stdio/setvbuf.c 24 Jan 2005 12:01:23 -0000 @@ -104,9 +104,9 @@ { int ret = 0; - _flockfile (fp); + CHECK_INIT (_REENT); - CHECK_INIT (fp); + _flockfile (fp); /* * Verify arguments. The `int' limit on `size' is due to this Index: newlib/libc/stdio/ungetc.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/ungetc.c,v retrieving revision 1.5 diff -u -r1.5 ungetc.c --- newlib/libc/stdio/ungetc.c 3 May 2004 17:27:56 -0000 1.5 +++ newlib/libc/stdio/ungetc.c 24 Jan 2005 12:01:23 -0000 @@ -77,14 +77,14 @@ if (c == EOF) return (EOF); - _flockfile (fp); - /* Ensure stdio has been initialized. ??? Might be able to remove this as some other stdio routine should have already been called to get the char we are un-getting. */ - CHECK_INIT (fp); + CHECK_INIT (rptr); + _flockfile (fp); + /* After ungetc, we won't be at eof anymore */ fp->_flags &= ~__SEOF; Index: newlib/libc/stdio/vfprintf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/vfprintf.c,v retrieving revision 1.37 diff -u -r1.37 vfprintf.c --- newlib/libc/stdio/vfprintf.c 11 Jun 2004 20:37:10 -0000 1.37 +++ newlib/libc/stdio/vfprintf.c 24 Jan 2005 12:01:23 -0000 @@ -533,8 +533,8 @@ (u_long)GET_ARG (N, ap, u_int)) #endif + CHECK_INIT (data); _flockfile (fp); - CHECK_INIT (fp); /* sorry, fprintf(read_only_file, "") returns EOF, not 0 */ if (cantwrite (fp)) { Index: newlib/libc/stdio/vfscanf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/vfscanf.c,v retrieving revision 1.27 diff -u -r1.27 vfscanf.c --- newlib/libc/stdio/vfscanf.c 6 Jan 2005 23:31:56 -0000 1.27 +++ newlib/libc/stdio/vfscanf.c 24 Jan 2005 12:57:15 -0000 @@ -231,7 +231,7 @@ _CONST char *fmt _AND va_list ap) { - CHECK_INIT(fp); + CHECK_INIT(_REENT); return __SVFSCANF_R (_REENT, fp, fmt, ap); } @@ -253,6 +253,7 @@ _CONST char *fmt _AND va_list ap) { + CHECK_INIT(data); return __SVFSCANF_R (data, fp, fmt, ap); } Index: newlib/libc/stdio/viprintf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/viprintf.c,v retrieving revision 1.1 diff -u -r1.1 viprintf.c --- newlib/libc/stdio/viprintf.c 24 Nov 2004 00:45:41 -0000 1.1 +++ newlib/libc/stdio/viprintf.c 24 Jan 2005 12:01:23 -0000 @@ -145,7 +145,7 @@ _CONST char *fmt _AND va_list ap) { - _REENT_SMALL_CHECK_INIT (_stdout_r (_REENT)); + _REENT_SMALL_CHECK_INIT (_REENT); return _vfiprintf_r (_REENT, _stdout_r (_REENT), fmt, ap); } @@ -157,6 +157,6 @@ _CONST char *fmt _AND va_list ap) { - _REENT_SMALL_CHECK_INIT (_stdout_r (ptr)); + _REENT_SMALL_CHECK_INIT (ptr); return _vfiprintf_r (ptr, _stdout_r (ptr), fmt, ap); } Index: newlib/libc/stdio/viscanf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/viscanf.c,v retrieving revision 1.1 diff -u -r1.1 viscanf.c --- newlib/libc/stdio/viscanf.c 24 Nov 2004 00:45:41 -0000 1.1 +++ newlib/libc/stdio/viscanf.c 24 Jan 2005 12:01:23 -0000 @@ -121,7 +121,7 @@ _CONST char *fmt _AND va_list ap) { - _REENT_SMALL_CHECK_INIT (_stdin_r (_REENT)); + _REENT_SMALL_CHECK_INIT (_REENT); return __svfiscanf_r (_REENT, _stdin_r (_REENT), fmt, ap); } @@ -133,7 +133,7 @@ _CONST char *fmt _AND va_list ap) { - _REENT_SMALL_CHECK_INIT (_stdin_r (ptr)); + _REENT_SMALL_CHECK_INIT (ptr); return __svfiscanf_r (ptr, _stdin_r (ptr), fmt, ap); } Index: newlib/libc/stdio/vprintf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/vprintf.c,v retrieving revision 1.5 diff -u -r1.5 vprintf.c --- newlib/libc/stdio/vprintf.c 23 Apr 2004 20:01:55 -0000 1.5 +++ newlib/libc/stdio/vprintf.c 24 Jan 2005 12:01:23 -0000 @@ -33,7 +33,7 @@ _CONST char *fmt _AND va_list ap) { - _REENT_SMALL_CHECK_INIT (_stdout_r (_REENT)); + _REENT_SMALL_CHECK_INIT (_REENT); return _vfprintf_r (_REENT, _stdout_r (_REENT), fmt, ap); } @@ -45,6 +45,6 @@ _CONST char *fmt _AND va_list ap) { - _REENT_SMALL_CHECK_INIT (_stdout_r (ptr)); + _REENT_SMALL_CHECK_INIT (ptr); return _vfprintf_r (ptr, _stdout_r (ptr), fmt, ap); } Index: newlib/libc/stdio/vscanf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/vscanf.c,v retrieving revision 1.3 diff -u -r1.3 vscanf.c --- newlib/libc/stdio/vscanf.c 23 Apr 2004 20:01:55 -0000 1.3 +++ newlib/libc/stdio/vscanf.c 24 Jan 2005 12:01:23 -0000 @@ -34,7 +34,7 @@ _CONST char *fmt _AND va_list ap) { - _REENT_SMALL_CHECK_INIT (_stdin_r (_REENT)); + _REENT_SMALL_CHECK_INIT (_REENT); return __svfscanf_r (_REENT, _stdin_r (_REENT), fmt, ap); } @@ -46,7 +46,7 @@ _CONST char *fmt _AND va_list ap) { - _REENT_SMALL_CHECK_INIT (_stdin_r (ptr)); + _REENT_SMALL_CHECK_INIT (ptr); return __svfscanf_r (ptr, _stdin_r (ptr), fmt, ap); } Index: newlib/libc/stdio/wbuf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/wbuf.c,v retrieving revision 1.2 diff -u -r1.2 wbuf.c --- newlib/libc/stdio/wbuf.c 23 Apr 2004 20:01:55 -0000 1.2 +++ newlib/libc/stdio/wbuf.c 24 Jan 2005 12:01:23 -0000 @@ -40,7 +40,7 @@ /* Ensure stdio has been initialized. */ - CHECK_INIT (fp); + CHECK_INIT (_REENT); /* * In case we cannot write, or longjmp takes us out early, Index: newlib/libc/stdio/wsetup.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/wsetup.c,v retrieving revision 1.2 diff -u -r1.2 wsetup.c --- newlib/libc/stdio/wsetup.c 23 Apr 2004 20:01:55 -0000 1.2 +++ newlib/libc/stdio/wsetup.c 24 Jan 2005 12:01:23 -0000 @@ -34,7 +34,7 @@ { /* Make sure stdio is set up. */ - CHECK_INIT (fp); + CHECK_INIT (_REENT); /* * If we are not writing, we had better be reading and writing. Index: newlib/libc/stdio64/fgetpos64.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio64/fgetpos64.c,v retrieving revision 1.3 diff -u -r1.3 fgetpos64.c --- newlib/libc/stdio64/fgetpos64.c 22 Aug 2003 18:52:25 -0000 1.3 +++ newlib/libc/stdio64/fgetpos64.c 24 Jan 2005 12:01:23 -0000 @@ -60,15 +60,12 @@ FILE * fp _AND _fpos64_t * pos) { - _flockfile(fp); *pos = (_fpos64_t)_ftello64_r (ptr, fp); if (*pos != -1) { - _funlockfile(fp); return 0; } - _funlockfile(fp); return 1; } Index: newlib/libc/stdio64/freopen64.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio64/freopen64.c,v retrieving revision 1.6 diff -u -r1.6 freopen64.c --- newlib/libc/stdio64/freopen64.c 16 Sep 2004 21:18:50 -0000 1.6 +++ newlib/libc/stdio64/freopen64.c 24 Jan 2005 12:01:23 -0000 @@ -91,9 +91,9 @@ __sfp_lock_acquire (); - _flockfile(fp); + CHECK_INIT (ptr); - CHECK_INIT (fp); + _flockfile(fp); if ((flags = __sflags (ptr, mode, &oflags)) == 0) { Index: newlib/libc/stdio64/fseeko64.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio64/fseeko64.c,v retrieving revision 1.5 diff -u -r1.5 fseeko64.c --- newlib/libc/stdio64/fseeko64.c 26 Aug 2003 18:09:43 -0000 1.5 +++ newlib/libc/stdio64/fseeko64.c 24 Jan 2005 12:01:23 -0000 @@ -111,11 +111,11 @@ struct stat64 st; int havepos; - _flockfile(fp); - /* Make sure stdio is set up. */ - CHECK_INIT (fp); + CHECK_INIT (ptr); + + _flockfile(fp); curoff = fp->_offset; Index: newlib/libc/stdio64/ftello64.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio64/ftello64.c,v retrieving revision 1.3 diff -u -r1.3 ftello64.c --- newlib/libc/stdio64/ftello64.c 22 Aug 2003 18:52:25 -0000 1.3 +++ newlib/libc/stdio64/ftello64.c 24 Jan 2005 12:01:24 -0000 @@ -91,11 +91,11 @@ { _fpos64_t pos; - _flockfile(fp); - /* Ensure stdio is set up. */ - CHECK_INIT (fp); + CHECK_INIT (ptr); + + _flockfile(fp); if (fp->_seek64 == NULL) { Index: newlib/libc/stdlib/mallocr.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdlib/mallocr.c,v retrieving revision 1.12 diff -u -r1.12 mallocr.c --- newlib/libc/stdlib/mallocr.c 19 Aug 2003 18:09:54 -0000 1.12 +++ newlib/libc/stdlib/mallocr.c 24 Jan 2005 12:01:24 -0000 @@ -3484,7 +3484,7 @@ MALLOC_UNLOCK; #ifdef INTERNAL_NEWLIB - _REENT_SMALL_CHECK_INIT(_stderr_r (reent_ptr)); + _REENT_SMALL_CHECK_INIT(reent_ptr); fp = _stderr_r(reent_ptr); #define fprintf fiprintf #else Index: newlib/libc/stdlib/mstats.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdlib/mstats.c,v retrieving revision 1.4 diff -u -r1.4 mstats.c --- newlib/libc/stdlib/mstats.c 5 Sep 2003 00:13:15 -0000 1.4 +++ newlib/libc/stdlib/mstats.c 24 Jan 2005 12:01:24 -0000 @@ -140,7 +140,7 @@ struct _reent *ptr _AND char *s) { - _REENT_SMALL_CHECK_INIT(_stderr_r (ptr)); + _REENT_SMALL_CHECK_INIT(ptr); fiprintf (_stderr_r (ptr), "Memory allocation statistics %s\n", s); _malloc_stats_r (ptr); } Index: newlib/libc/sys/arm/syscalls.c =================================================================== RCS file: /cvs/src/src/newlib/libc/sys/arm/syscalls.c,v retrieving revision 1.9 diff -u -r1.9 syscalls.c --- newlib/libc/sys/arm/syscalls.c 6 Jan 2004 19:27:21 -0000 1.9 +++ newlib/libc/sys/arm/syscalls.c 24 Jan 2005 12:01:24 -0000 @@ -55,20 +55,17 @@ /* following is copied from libc/stdio/local.h to check std streams */ extern void _EXFUN(__sinit,(struct _reent *)); -#define CHECK_INIT(fp) \ - do \ - { \ - if ((fp)->_data == 0) \ - (fp)->_data = _REENT; \ - if (!(fp)->_data->__sdidinit) \ - __sinit ((fp)->_data); \ - } \ +#define CHECK_INIT(ptr) \ + do \ + { \ + if ((ptr) && !(ptr)->__sdidinit) \ + __sinit (ptr); \ + } \ while (0) /* Adjust our internal handles to stay away from std* handles. */ #define FILE_HANDLE_OFFSET (0x20) -static int std_files_checked; static int monitor_stdin; static int monitor_stdout; static int monitor_stderr; @@ -119,13 +116,8 @@ static int remap_handle (int fh) { - if (!std_files_checked) - { - CHECK_INIT(stdin); - CHECK_INIT(stdout); - CHECK_INIT(stderr); - std_files_checked = 1; - } + CHECK_INIT(_REENT); + if (fh == STDIN_FILENO) return monitor_stdin; if (fh == STDOUT_FILENO)