update from main archive 960907
authordrepper <drepper>
Sat, 7 Sep 1996 23:55:48 +0000 (23:55 +0000)
committerdrepper <drepper>
Sat, 7 Sep 1996 23:55:48 +0000 (23:55 +0000)
14 files changed:
libio/Banner [new file with mode: 0644]
libio/iofdopen.c
libio/iofopen.c
libio/iofopncook.c
libio/iopopen.c
libio/iovsprintf.c
libio/iovsscanf.c
libio/libio.h
libio/libioP.h
libio/memstream.c
libio/stdfiles.c
libio/vasprintf.c
libio/vdprintf.c
libio/vsnprintf.c

diff --git a/libio/Banner b/libio/Banner
new file mode 100644 (file)
index 0000000..8ec3141
--- /dev/null
@@ -0,0 +1 @@
+GNU libio by Per Bothner
index c49387b..797192e 100644 (file)
@@ -42,7 +42,9 @@ _IO_fdopen (fd, mode)
   struct locked_FILE
   {
     struct _IO_FILE_plus fp;
+#ifdef _IO_MTSAFE_IO
     _IO_lock_t lock;
+#endif
   } *new_f;
   int fd_flags;
 
@@ -104,7 +106,9 @@ _IO_fdopen (fd, mode)
   new_f = (struct locked_FILE *) malloc (sizeof (struct locked_FILE));
   if (new_f == NULL)
     return NULL;
+#ifdef _IO_MTSAFE_IO
   new_f->fp.file._lock = &new_f->lock;
+#endif
   _IO_init (&new_f->fp.file, 0);
   _IO_JUMPS (&new_f->fp.file) = &_IO_file_jumps;
   _IO_file_init (&new_f->fp.file);
index 334df46..cea2415 100644 (file)
@@ -35,12 +35,16 @@ _IO_fopen (filename, mode)
   struct locked_FILE
   {
     struct _IO_FILE_plus fp;
+#ifdef _IO_MTSAFE_IO
     _IO_lock_t lock;
+#endif
   } *new_f = (struct locked_FILE *) malloc (sizeof (struct locked_FILE));
 
   if (new_f == NULL)
     return NULL;
+#ifdef _IO_MTSAFE_IO
   new_f->fp.file._lock = &new_f->lock;
+#endif
   _IO_init (&new_f->fp.file, 0);
   _IO_JUMPS (&new_f->fp.file) = &_IO_file_jumps;
   _IO_file_init (&new_f->fp.file);
index 4193c24..718205e 100644 (file)
@@ -131,7 +131,9 @@ fopencookie (cookie, mode, io_functions)
   struct locked_FILE
   {
     struct _IO_cookie_file cfile;
+#ifdef _IO_MTSAFE_IO
     _IO_lock_t lock;
+#endif
   } *new_f;
 
   switch (*mode++)
@@ -154,7 +156,9 @@ fopencookie (cookie, mode, io_functions)
   new_f = (struct locked_FILE *) malloc (sizeof (struct locked_FILE));
   if (new_f == NULL)
     return NULL;
+#ifdef _IO_MTSAFE_IO
   new_f->cfile.file._lock = &new_f->lock;
+#endif
 
   _IO_init (&new_f->cfile.file, 0);
   _IO_JUMPS (&new_f->cfile.file) = &_IO_cookie_jumps;
index ca2a18e..dc1e74d 100644 (file)
@@ -152,14 +152,18 @@ DEFUN(_IO_popen, (command, mode),
   struct locked_FILE
   {
     struct _IO_proc_file fpx;
+#ifdef _IO_MTSAFE_IO
     _IO_lock_t lock;
+#endif
   } *new_f;
   _IO_FILE *fp;
 
   new_f = (struct locked_FILE *) malloc (sizeof (struct locked_FILE));
   if (new_f == NULL)
     return NULL;
+#ifdef _IO_MTSAFE_IO
   new_f->fpx.file.file._lock = &new_f->lock;
+#endif
   fp = (_IO_FILE*)&new_f->fpx;
   _IO_init(fp, 0);
   _IO_JUMPS(fp) = &_IO_proc_jumps;
index 916804f..b2e8b67 100644 (file)
@@ -32,10 +32,14 @@ _IO_vsprintf (string, format, args)
       _IO_va_list args;
 {
   _IO_strfile sf;
+#ifdef _IO_MTSAFE_IO
   _IO_lock_t lock;
+#endif
   int ret;
 
+#ifdef _IO_MTSAFE_IO
   sf._f._lock = &lock;
+#endif
   _IO_init ((_IO_FILE *) &sf, 0);
   _IO_JUMPS ((_IO_FILE *) &sf) = &_IO_str_jumps;
   _IO_str_init_static ((_IO_FILE *) &sf, string, -1, string);
index 5b4c790..6e7d8c5 100644 (file)
@@ -30,8 +30,10 @@ DEFUN(_IO_vsscanf, (string, format, args),
       const char *string AND const char *format AND _IO_va_list args)
 {
   _IO_strfile sf;
+#ifdef _IO_MTSAFE_IO
   _IO_lock_t lock;
   sf._f._lock = &lock;
+#endif
   _IO_init((_IO_FILE*)&sf, 0);
   _IO_JUMPS((_IO_FILE*)&sf) = &_IO_str_jumps;
   _IO_str_init_static ((_IO_FILE*)&sf, (char*)string, 0, NULL);
index 17cef91..36e839f 100644 (file)
@@ -152,6 +152,7 @@ typedef struct
 #ifdef _IO_MTSAFE_IO
 #include <pthread.h>
 typedef pthread_mutex_t _IO_lock_t;
+#define _IO_lock_init PTHREAD_MUTEX_INITIALIZER
 #else
 typedef void _IO_lock_t;
 #endif
index ac4df17..f5e6dc5 100644 (file)
@@ -342,10 +342,18 @@ extern int _IO_vscanf __P((const char *, _IO_va_list));
 #else
 #define _IO_FJUMP &_IO_file_jumps,
 #endif
+#ifdef _IO_MTSAFE_IO
 /* check following! */
 #define FILEBUF_LITERAL(CHAIN, FLAGS, FD) \
        { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \
-         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, _IO_FJUMP FD}
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, _IO_FJUMP FD, \
+          0, 0, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock }
+#else
+/* check following! */
+#define FILEBUF_LITERAL(CHAIN, FLAGS, FD) \
+       { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \
+          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, _IO_FJUMP FD }
+#endif
 
 /* VTABLE_LABEL defines NAME as of the CLASS class.
    CNLENGTH is strlen(#CLASS).  */
index 1a4f4b9..8f9c8ac 100644 (file)
@@ -67,14 +67,18 @@ open_memstream (bufloc, sizeloc)
   struct locked_FILE
   {
     struct _IO_FILE_memstream fp;
+#ifdef _IO_MTSAFE_IO
     _IO_lock_t lock;
+#endif
   } *new_f;
   char *buf;
 
   new_f = (struct locked_FILE *) malloc (sizeof (struct locked_FILE));
   if (new_f == NULL)
     return NULL;
+#ifdef _IO_MTSAFE_IO
   new_f->fp._sf._f._lock = &new_f->lock;
+#endif
 
   buf = ALLOC_BUF (_IO_BUFSIZ);
   _IO_init (&new_f->fp._sf._f, 0);
index 1d0ef85..c50d5f1 100644 (file)
@@ -31,10 +31,16 @@ the executable file might be covered by the GNU General Public License. */
 
 #include "libioP.h"
 
-
+#ifdef _IO_MTSAFE_IO
+#define DEF_STDFILE(NAME, FD, CHAIN, FLAGS) \
+  static _IO_lock_t _IO_stdfile_##FD##_lock = _IO_lock_init; \
+  struct _IO_FILE_plus NAME \
+    = {FILEBUF_LITERAL(CHAIN, FLAGS, FD), &_IO_file_jumps}
+#else
 #define DEF_STDFILE(NAME, FD, CHAIN, FLAGS) \
   struct _IO_FILE_plus NAME \
     = {FILEBUF_LITERAL(CHAIN, FLAGS, FD), &_IO_file_jumps}
+#endif
 
 DEF_STDFILE(_IO_stdin_, 0, 0, _IO_NO_WRITES);
 DEF_STDFILE(_IO_stdout_, 1, &_IO_stdin_.file, _IO_NO_READS);
index cf50603..57a3b08 100644 (file)
@@ -38,12 +38,16 @@ _IO_vasprintf (result_ptr, format, args)
   const _IO_size_t init_string_size = 100;
   char *string;
   _IO_strfile sf;
+#ifdef _IO_MTSAFE_IO
   _IO_lock_t lock;
+#endif
   int ret;
   string = ALLOC_BUF(init_string_size);
   if (string == NULL)
     return -1;
+#ifdef _IO_MTSAFE_IO
   sf._f._lock = &lock;
+#endif
   _IO_init((_IO_FILE*)&sf, 0);
   _IO_JUMPS((_IO_FILE*)&sf) = &_IO_str_jumps;
   _IO_str_init_static ((_IO_FILE*)&sf, string, init_string_size, string);
index 8c5833c..b4b1cc3 100644 (file)
@@ -32,10 +32,14 @@ _IO_vdprintf (d, format, arg)
      _IO_va_list arg;
 {
   struct _IO_FILE_plus tmpfil;
+#ifdef _IO_MTSAFE_IO
   _IO_lock_t lock;
+#endif
   int done;
 
+#ifdef _IO_MTSAFE_IO
   tmpfil.file._lock = &lock;
+#endif
   _IO_init (&tmpfil.file, 0);
   _IO_JUMPS (&tmpfil.file) = &_IO_file_jumps;
   _IO_file_init (&tmpfil.file);
index 174640d..9f767b5 100644 (file)
@@ -33,9 +33,11 @@ _IO_vsnprintf (string, maxlen, format, args)
      _IO_va_list args;
 {
   _IO_strfile sf;
-  _IO_lock_t lock;
   int ret;
+#ifdef _IO_MTSAFE_IO
+  _IO_lock_t lock;
   sf._f._lock = &lock;
+#endif
   _IO_init ((_IO_FILE *) &sf, 0);
   _IO_JUMPS ((_IO_FILE *) &sf) = &_IO_str_jumps;
   _IO_str_init_static ((_IO_FILE *) &sf, string, maxlen - 1, string);