aboutsummaryrefslogtreecommitdiff
path: root/libio
diff options
context:
space:
mode:
Diffstat (limited to 'libio')
-rw-r--r--libio/fileops.c14
-rw-r--r--libio/genops.c62
-rw-r--r--libio/iofdopen.c6
-rw-r--r--libio/iofopen.c6
-rw-r--r--libio/iofopen64.c10
-rw-r--r--libio/iofopncook.c18
-rw-r--r--libio/iopopen.c8
-rw-r--r--libio/iovdprintf.c12
-rw-r--r--libio/iovsprintf.c10
-rw-r--r--libio/iovsscanf.c8
-rw-r--r--libio/libio.h14
-rw-r--r--libio/libioP.h33
-rw-r--r--libio/memstream.c8
-rw-r--r--libio/obprintf.c4
-rw-r--r--libio/oldfileops.c18
-rw-r--r--libio/oldiofdopen.c6
-rw-r--r--libio/oldiofopen.c10
-rw-r--r--libio/oldiopopen.c6
-rw-r--r--libio/oldstdfiles.c14
-rw-r--r--libio/stdfiles.c9
-rw-r--r--libio/stdio.c8
-rw-r--r--libio/strops.c18
-rw-r--r--libio/vasprintf.c6
-rw-r--r--libio/vsnprintf.c6
-rw-r--r--libio/wgenops.c4
25 files changed, 161 insertions, 157 deletions
diff --git a/libio/fileops.c b/libio/fileops.c
index 81dece080f..7cc8b7c7e2 100644
--- a/libio/fileops.c
+++ b/libio/fileops.c
@@ -113,16 +113,16 @@ extern int errno;
void
_IO_new_file_init (fp)
- _IO_FILE *fp;
+ struct _IO_FILE_plus *fp;
{
/* POSIX.1 allows another file handle to be used to change the position
of our file descriptor. Hence we actually don't know the actual
position before we do the first fseek (and until a following fflush). */
- fp->_offset = _IO_pos_BAD;
- fp->_IO_file_flags |= CLOSED_FILEBUF_FLAGS;
+ fp->file._offset = _IO_pos_BAD;
+ fp->file._IO_file_flags |= CLOSED_FILEBUF_FLAGS;
- _IO_link_in(fp);
- fp->_fileno = -1;
+ _IO_link_in (fp);
+ fp->file._fileno = -1;
}
int
@@ -153,7 +153,7 @@ _IO_new_file_close_it (fp)
_IO_wsetp (fp, NULL, NULL);
}
- _IO_un_link (fp);
+ _IO_un_link ((struct _IO_FILE_plus *) fp);
fp->_flags = _IO_MAGIC|CLOSED_FILEBUF_FLAGS;
fp->_fileno = -1;
fp->_offset = _IO_pos_BAD;
@@ -203,7 +203,7 @@ _IO_file_open (fp, filename, posix_mode, prot, read_write, is32not64)
if (_IO_SEEKOFF (fp, (_IO_off64_t)0, _IO_seek_end, _IOS_INPUT|_IOS_OUTPUT)
== _IO_pos_BAD && errno != ESPIPE)
return NULL;
- _IO_link_in (fp);
+ _IO_link_in ((struct _IO_FILE_plus *) fp);
return fp;
}
diff --git a/libio/genops.c b/libio/genops.c
index bdbde0ce4b..bffc355fa5 100644
--- a/libio/genops.c
+++ b/libio/genops.c
@@ -37,40 +37,40 @@ static _IO_lock_t list_all_lock = _IO_lock_initializer;
void
_IO_un_link (fp)
- _IO_FILE *fp;
+ struct _IO_FILE_plus *fp;
{
- if (fp->_flags & _IO_LINKED)
+ if (fp->file._flags & _IO_LINKED)
{
- _IO_FILE **f;
+ struct _IO_FILE_plus **f;
#ifdef _IO_MTSAFE_IO
_IO_lock_lock (list_all_lock);
#endif
- for (f = &_IO_list_all; *f != NULL; f = &(*f)->_chain)
+ for (f = &_IO_list_all; *f != NULL; f = &(*f)->file._chain)
{
if (*f == fp)
{
- *f = fp->_chain;
+ *f = fp->file._chain;
break;
}
}
#ifdef _IO_MTSAFE_IO
_IO_lock_unlock (list_all_lock);
#endif
- fp->_flags &= ~_IO_LINKED;
+ fp->file._flags &= ~_IO_LINKED;
}
}
void
_IO_link_in (fp)
- _IO_FILE *fp;
+ struct _IO_FILE_plus *fp;
{
- if ((fp->_flags & _IO_LINKED) == 0)
+ if ((fp->file._flags & _IO_LINKED) == 0)
{
- fp->_flags |= _IO_LINKED;
+ fp->file._flags |= _IO_LINKED;
#ifdef _IO_MTSAFE_IO
_IO_lock_lock (list_all_lock);
#endif
- fp->_chain = _IO_list_all;
+ fp->file._chain = _IO_list_all;
_IO_list_all = fp;
#ifdef _IO_MTSAFE_IO
_IO_lock_unlock (list_all_lock);
@@ -627,7 +627,7 @@ _IO_default_finish (fp, dummy)
_IO_lock_fini (*fp->_lock);
#endif
- _IO_un_link (fp);
+ _IO_un_link ((struct _IO_FILE_plus *) fp);
}
_IO_off64_t
@@ -739,13 +739,13 @@ int
_IO_flush_all ()
{
int result = 0;
- _IO_FILE *fp;
- for (fp = _IO_list_all; fp != NULL; fp = fp->_chain)
- if (((fp->_mode < 0 && fp->_IO_write_ptr > fp->_IO_write_base)
- || (fp->_vtable_offset == 0
- && fp->_mode > 0 && (fp->_wide_data->_IO_write_ptr
- > fp->_wide_data->_IO_write_base)))
- && _IO_OVERFLOW (fp, EOF) == EOF)
+ struct _IO_FILE_plus *fp;
+ for (fp = _IO_list_all; fp != NULL; fp = fp->file._chain)
+ if (((fp->file._mode < 0 && fp->file._IO_write_ptr > fp->file._IO_write_base)
+ || (fp->file._vtable_offset == 0
+ && fp->file._mode > 0 && (fp->file._wide_data->_IO_write_ptr
+ > fp->file._wide_data->_IO_write_base)))
+ && _IO_OVERFLOW (&fp->file, EOF) == EOF)
result = EOF;
return result;
}
@@ -753,10 +753,10 @@ _IO_flush_all ()
void
_IO_flush_all_linebuffered ()
{
- _IO_FILE *fp;
- for (fp = _IO_list_all; fp != NULL; fp = fp->_chain)
- if ((fp->_flags & _IO_NO_WRITES) == 0 && fp->_flags & _IO_LINE_BUF)
- _IO_OVERFLOW (fp, EOF);
+ struct _IO_FILE_plus *fp;
+ for (fp = _IO_list_all; fp != NULL; fp = fp->file._chain)
+ if ((fp->file._flags & _IO_NO_WRITES) == 0 && fp->file._flags & _IO_LINE_BUF)
+ _IO_OVERFLOW (&fp->file, EOF);
}
static void _IO_unbuffer_write __P ((void));
@@ -764,12 +764,12 @@ static void _IO_unbuffer_write __P ((void));
static void
_IO_unbuffer_write ()
{
- _IO_FILE *fp;
- for (fp = _IO_list_all; fp != NULL; fp = fp->_chain)
- if (! (fp->_flags & _IO_UNBUFFERED)
- && (! (fp->_flags & _IO_NO_WRITES)
- || (fp->_flags & _IO_IS_APPENDING)))
- _IO_SETBUF (fp, NULL, 0);
+ struct _IO_FILE_plus *fp;
+ for (fp = _IO_list_all; fp != NULL; fp = fp->file._chain)
+ if (! (fp->file._flags & _IO_UNBUFFERED)
+ && (! (fp->file._flags & _IO_NO_WRITES)
+ || (fp->file._flags & _IO_IS_APPENDING)))
+ _IO_SETBUF (&fp->file, NULL, 0);
}
int
@@ -1037,21 +1037,21 @@ _IO_iter_begin()
_IO_ITER
_IO_iter_end()
{
- return NULL;
+ return NULL;
}
_IO_ITER
_IO_iter_next(iter)
_IO_ITER iter;
{
- return iter->_chain;
+ return iter->file._chain;
}
_IO_FILE *
_IO_iter_file(iter)
_IO_ITER iter;
{
- return iter;
+ return (_IO_FILE *) iter;
}
void
diff --git a/libio/iofdopen.c b/libio/iofdopen.c
index 0cbbee9051..dc89576460 100644
--- a/libio/iofdopen.c
+++ b/libio/iofdopen.c
@@ -124,13 +124,13 @@ _IO_new_fdopen (fd, mode)
#endif
_IO_no_init (&new_f->fp.file, 0, 0, &new_f->wd, &_IO_wfile_jumps);
_IO_JUMPS (&new_f->fp) = &_IO_file_jumps;
- _IO_file_init (&new_f->fp.file);
+ _IO_file_init (&new_f->fp);
#if !_IO_UNIFIED_JUMPTABLES
new_f->fp.vtable = NULL;
#endif
if (_IO_file_attach (&new_f->fp.file, fd) == NULL)
{
- _IO_un_link (&new_f->fp.file);
+ _IO_un_link (&new_f->fp);
free (new_f);
return NULL;
}
@@ -140,7 +140,7 @@ _IO_new_fdopen (fd, mode)
_IO_mask_flags (&new_f->fp.file, read_write,
_IO_NO_READS+_IO_NO_WRITES+_IO_IS_APPENDING);
- return &new_f->fp.file;
+ return (_IO_FILE *) &new_f->fp;
}
strong_alias (_IO_new_fdopen, __new_fdopen)
diff --git a/libio/iofopen.c b/libio/iofopen.c
index 05e047929d..e44423be6d 100644
--- a/libio/iofopen.c
+++ b/libio/iofopen.c
@@ -50,13 +50,13 @@ _IO_new_fopen (filename, mode)
#endif
_IO_no_init (&new_f->fp.file, 0, 0, &new_f->wd, &_IO_wfile_jumps);
_IO_JUMPS (&new_f->fp) = &_IO_file_jumps;
- _IO_file_init (&new_f->fp.file);
+ _IO_file_init (&new_f->fp);
#if !_IO_UNIFIED_JUMPTABLES
new_f->fp.vtable = NULL;
#endif
- if (_IO_file_fopen (&new_f->fp.file, filename, mode, 1) != NULL)
+ if (_IO_file_fopen ((_IO_FILE *) new_f, filename, mode, 1) != NULL)
return (_IO_FILE *) &new_f->fp;
- _IO_un_link (&new_f->fp.file);
+ _IO_un_link (&new_f->fp);
free (new_f);
return NULL;
}
diff --git a/libio/iofopen64.c b/libio/iofopen64.c
index 0dc19b2e1b..dccc4c3bda 100644
--- a/libio/iofopen64.c
+++ b/libio/iofopen64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1997, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU IO Library.
This library is free software; you can redistribute it and/or
@@ -50,13 +50,13 @@ _IO_fopen64 (filename, mode)
#endif
_IO_no_init (&new_f->fp.file, 0, 0, &new_f->wd, &_IO_wfile_jumps);
_IO_JUMPS (&new_f->fp) = &_IO_file_jumps;
- _IO_file_init (&new_f->fp.file);
+ _IO_file_init (&new_f->fp);
#if !_IO_UNIFIED_JUMPTABLES
new_f->fp.vtable = NULL;
#endif
- if (_IO_file_fopen (&new_f->fp.file, filename, mode, 0) != NULL)
- return &new_f->fp.file;
- _IO_un_link (&new_f->fp.file);
+ if (_IO_file_fopen ((_IO_FILE *) new_f, filename, mode, 0) != NULL)
+ return (_IO_FILE *) &new_f->fp;
+ _IO_un_link (&new_f->fp);
free (new_f);
return NULL;
#else
diff --git a/libio/iofopncook.c b/libio/iofopncook.c
index 852a483a49..c016cfb1d5 100644
--- a/libio/iofopncook.c
+++ b/libio/iofopncook.c
@@ -121,22 +121,22 @@ void
_IO_cookie_init (struct _IO_cookie_file *cfile, int read_write,
void *cookie, _IO_cookie_io_functions_t io_functions)
{
- _IO_init (&cfile->__file, 0);
- _IO_JUMPS (&cfile->__file) = &_IO_cookie_jumps;
+ _IO_init (&cfile->__fp.file, 0);
+ _IO_JUMPS (&cfile->__fp) = &_IO_cookie_jumps;
cfile->__cookie = cookie;
cfile->__io_functions = io_functions;
- _IO_file_init(&cfile->__file);
+ _IO_file_init(&cfile->__fp);
- cfile->__file._IO_file_flags =
- _IO_mask_flags (&cfile->__file, read_write,
+ cfile->__fp.file._IO_file_flags =
+ _IO_mask_flags (&cfile->__fp.file, read_write,
_IO_NO_READS+_IO_NO_WRITES+_IO_IS_APPENDING);
/* We use a negative number different from -1 for _fileno to mark that
this special stream is not associated with a real file, but still has
to be treated as such. */
- cfile->__file._fileno = -2;
+ cfile->__fp.file._fileno = -2;
}
@@ -176,12 +176,12 @@ _IO_fopencookie (cookie, mode, io_functions)
if (new_f == NULL)
return NULL;
#ifdef _IO_MTSAFE_IO
- new_f->cfile.__file._lock = &new_f->lock;
+ new_f->cfile.__fp.file._lock = &new_f->lock;
#endif
_IO_cookie_init (&new_f->cfile, read_write, cookie, io_functions);
- return &new_f->cfile.__file;
+ return (_IO_FILE *) &new_f->cfile.__fp;
}
versioned_symbol (libc, _IO_fopencookie, fopencookie, GLIBC_2_2);
@@ -245,7 +245,7 @@ _IO_old_fopencookie (cookie, mode, io_functions)
ret = _IO_fopencookie (cookie, mode, io_functions);
if (ret != NULL)
- _IO_JUMPS (ret) = &_IO_old_cookie_jumps;
+ _IO_JUMPS ((struct _IO_FILE_plus *) ret) = &_IO_old_cookie_jumps;
return ret;
}
diff --git a/libio/iopopen.c b/libio/iopopen.c
index 3edbba4bf7..9abd429d7c 100644
--- a/libio/iopopen.c
+++ b/libio/iopopen.c
@@ -203,14 +203,14 @@ _IO_new_popen (command, mode)
#endif
fp = &new_f->fpx.file.file;
_IO_no_init (fp, 0, 0, &new_f->wd, &_IO_wproc_jumps);
- _IO_JUMPS (fp) = &_IO_proc_jumps;
- _IO_new_file_init (fp);
+ _IO_JUMPS (&new_f->fpx.file) = &_IO_proc_jumps;
+ _IO_new_file_init (&new_f->fpx.file);
#if !_IO_UNIFIED_JUMPTABLES
new_f->fpx.file.vtable = NULL;
#endif
if (_IO_new_proc_open (fp, command, mode) != NULL)
- return fp;
- _IO_un_link (fp);
+ return (_IO_FILE *) &new_f->fpx.file;
+ _IO_un_link (&new_f->fpx.file);
free (new_f);
return NULL;
}
diff --git a/libio/iovdprintf.c b/libio/iovdprintf.c
index b951006975..f7d6433d0d 100644
--- a/libio/iovdprintf.c
+++ b/libio/iovdprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU IO Library.
This library is free software; you can redistribute it and/or
@@ -43,14 +43,14 @@ _IO_vdprintf (d, format, arg)
tmpfil.file._lock = &lock;
#endif
_IO_no_init (&tmpfil.file, 0, 0, &wd, &_IO_wfile_jumps);
- _IO_JUMPS (&tmpfil.file) = &_IO_file_jumps;
- _IO_file_init (&tmpfil.file);
+ _IO_JUMPS (&tmpfil) = &_IO_file_jumps;
+ _IO_file_init (&tmpfil);
#if !_IO_UNIFIED_JUMPTABLES
tmpfil.vtable = NULL;
#endif
if (_IO_file_attach (&tmpfil.file, d) == NULL)
{
- _IO_un_link (&tmpfil.file);
+ _IO_un_link (&tmpfil);
return EOF;
}
tmpfil.file._IO_file_flags =
@@ -58,9 +58,9 @@ _IO_vdprintf (d, format, arg)
_IO_NO_READS+_IO_NO_WRITES+_IO_IS_APPENDING)
| _IO_DELETE_DONT_CLOSE);
- done = _IO_vfprintf (&tmpfil.file, format, arg);
+ done = _IO_vfprintf ((_IO_FILE *) &tmpfil, format, arg);
- _IO_FINISH (&tmpfil.file);
+ _IO_FINISH ((_IO_FILE *) &tmpfil);
return done;
}
diff --git a/libio/iovsprintf.c b/libio/iovsprintf.c
index 84c24d8d59..7f0d3ec42b 100644
--- a/libio/iovsprintf.c
+++ b/libio/iovsprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU IO Library.
This library is free software; you can redistribute it and/or
@@ -42,10 +42,10 @@ _IO_vsprintf (string, format, args)
sf._sbf._f._lock = &lock;
#endif
_IO_no_init (&sf._sbf._f, 0, -1, NULL, NULL);
- _IO_JUMPS (&sf._sbf._f) = &_IO_str_jumps;
- _IO_str_init_static (&sf._sbf._f, string, -1, string);
- ret = _IO_vfprintf (&sf._sbf._f, format, args);
- _IO_putc_unlocked ('\0', &sf._sbf._f);
+ _IO_JUMPS ((struct _IO_FILE_plus *) &sf._sbf) = &_IO_str_jumps;
+ _IO_str_init_static (&sf, string, -1, string);
+ ret = _IO_vfprintf ((_IO_FILE *) &sf._sbf, format, args);
+ _IO_putc_unlocked ('\0', (_IO_FILE *) &sf._sbf);
return ret;
}
diff --git a/libio/iovsscanf.c b/libio/iovsscanf.c
index 2b1e44dfd8..a95f0eaac1 100644
--- a/libio/iovsscanf.c
+++ b/libio/iovsscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU IO Library.
This library is free software; you can redistribute it and/or
@@ -39,9 +39,9 @@ _IO_vsscanf (string, format, args)
sf._sbf._f._lock = &lock;
#endif
_IO_no_init (&sf._sbf._f, 0, -1, NULL, NULL);
- _IO_JUMPS (&sf._sbf._f) = &_IO_str_jumps;
- _IO_str_init_static (&sf._sbf._f, (char*)string, 0, NULL);
- ret = _IO_vfscanf (&sf._sbf._f, format, args, NULL);
+ _IO_JUMPS ((struct _IO_FILE_plus *) &sf._sbf) = &_IO_str_jumps;
+ _IO_str_init_static (&sf, (char*)string, 0, NULL);
+ ret = _IO_vfscanf ((_IO_FILE *) &sf._sbf, format, args, NULL);
return ret;
}
diff --git a/libio/libio.h b/libio/libio.h
index 8fdc55a890..6d32eedf7f 100644
--- a/libio/libio.h
+++ b/libio/libio.h
@@ -252,6 +252,8 @@ struct _IO_wide_data
struct _IO_jump_t *_wide_vtable;
};
+struct _IO_FILE_plus;
+
struct _IO_FILE {
int _flags; /* High-order word is _IO_MAGIC; rest is flags. */
#define _IO_file_flags _flags
@@ -273,7 +275,7 @@ struct _IO_FILE {
struct _IO_marker *_markers;
- struct _IO_FILE *_chain;
+ struct _IO_FILE_plus *_chain;
int _fileno;
int _blksize;
@@ -310,7 +312,6 @@ struct _IO_FILE_complete
typedef struct _IO_FILE _IO_FILE;
#endif
-struct _IO_FILE_plus;
extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
@@ -369,14 +370,7 @@ typedef struct
} _IO_cookie_io_functions_t;
typedef _IO_cookie_io_functions_t cookie_io_functions_t;
-/* Special file type for fopencookie function. */
-struct _IO_cookie_file
-{
- struct _IO_FILE __file;
- const void *__vtable;
- void *__cookie;
- _IO_cookie_io_functions_t __io_functions;
-};
+struct _IO_cookie_file;
/* Initialize one of those. */
extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
diff --git a/libio/libioP.h b/libio/libioP.h
index 090f98a02d..9fb418869c 100644
--- a/libio/libioP.h
+++ b/libio/libioP.h
@@ -69,16 +69,16 @@ extern "C" {
# define _IO_JUMPS_OFFSET 1
#endif
-#define _IO_JUMPS(THIS) ((struct _IO_FILE_plus *) (THIS))->vtable
+#define _IO_JUMPS(THIS) (THIS)->vtable
#define _IO_WIDE_JUMPS(THIS) ((struct _IO_FILE *) (THIS))->_wide_data->_wide_vtable
#define _IO_CHECK_WIDE(THIS) (((struct _IO_FILE *) (THIS))->_wide_data != NULL)
#if _IO_JUMPS_OFFSET
# define _IO_JUMPS_FUNC(THIS) \
- (*(struct _IO_jump_t **) ((void *) &((struct _IO_FILE_plus *) (THIS))->vtable\
+ (*(struct _IO_jump_t **) ((void *) &_IO_JUMPS ((struct _IO_FILE_plus *) (THIS)) \
+ (THIS)->_vtable_offset))
#else
-# define _IO_JUMPS_FUNC(THIS) _IO_JUMPS(THIS)
+# define _IO_JUMPS_FUNC(THIS) _IO_JUMPS ((struct _IO_FILE_plus *) (THIS))
#endif
#define _IO_WIDE_JUMPS_FUNC(THIS) _IO_WIDE_JUMPS(THIS)
#ifdef _G_USING_THUNKS
@@ -313,9 +313,17 @@ struct _IO_FILE_plus
const struct _IO_jump_t *vtable;
};
+/* Special file type for fopencookie function. */
+struct _IO_cookie_file
+{
+ struct _IO_FILE_plus __fp;
+ void *__cookie;
+ _IO_cookie_io_functions_t __io_functions;
+};
+
/* Iterator type for walking global linked list of _IO_FILE objects. */
-typedef _IO_FILE *_IO_ITER;
+typedef struct _IO_FILE_plus *_IO_ITER;
/* Generic functions */
@@ -325,8 +333,8 @@ extern int _IO_switch_to_get_mode __P ((_IO_FILE *));
extern void _IO_init __P ((_IO_FILE *, int));
extern int _IO_sputbackc __P ((_IO_FILE *, int));
extern int _IO_sungetc __P ((_IO_FILE *));
-extern void _IO_un_link __P ((_IO_FILE *));
-extern void _IO_link_in __P ((_IO_FILE *));
+extern void _IO_un_link __P ((struct _IO_FILE_plus *));
+extern void _IO_link_in __P ((struct _IO_FILE_plus *));
extern void _IO_doallocbuf __P ((_IO_FILE *));
extern void _IO_unsave_markers __P ((_IO_FILE *));
extern void _IO_setb __P ((_IO_FILE *, char *, char *, int));
@@ -470,7 +478,7 @@ extern int _IO_file_close __P ((_IO_FILE *));
extern int _IO_file_underflow __P ((_IO_FILE *));
extern int _IO_file_overflow __P ((_IO_FILE *, int));
#define _IO_file_is_open(__fp) ((__fp)->_fileno != -1)
-extern void _IO_file_init __P ((_IO_FILE *));
+extern void _IO_file_init __P ((struct