about summary refs log tree commit diff
path: root/libio/libio.h
diff options
context:
space:
mode:
authorGreg McGary <greg@mcgary.org>2000-06-29 07:16:42 +0000
committerGreg McGary <greg@mcgary.org>2000-06-29 07:16:42 +0000
commit2ca8b1eef9c8b5ee2083bfbd8fd055353ab206ba (patch)
tree67d524af4cf749ac76e443a42123eaf2d14ca0dd /libio/libio.h
parent2e23c3cc3fede8cc080af74f1b4f124b12955138 (diff)
downloadglibc-2ca8b1eef9c8b5ee2083bfbd8fd055353ab206ba.tar.gz
glibc-2ca8b1eef9c8b5ee2083bfbd8fd055353ab206ba.tar.xz
glibc-2ca8b1eef9c8b5ee2083bfbd8fd055353ab206ba.zip
2000-06-28 Greg McGary <greg@mcgary.org>
	* libio/libio.h (struct _IO_cookie_file): Move struct type defintion out.
	(_IO_FILE): Declare chain as (struct _IO_FILE_plus *).
	* libio/libioP.h (struct _IO_cookie_file): Move struct type defintion in.
	(_IO_JUMPS): Don't cast THIS--expect arg to be a (struct _IO_FILE_plus *).
	(_IO_JUMPS_FUNC): Express in terms of _IO_JUMPS, and add cast to
	THIS, since _IO_JUMPS no longer does it implicitly.
	(_IO_file_init, _IO_old_file_init, _IO_new_file_init): Declare
	arg type as (struct _IO_FILE_plus *).
	(_IO_str_init_static, _IO_str_init_readonly): Declare 1st
	arg as (_IO_strfile *).
	* libio/strops.c (_IO_str_init_static, _IO_str_init_readonly):
	Declare 1st arg as (_IO_strfile *).
	* libio/fileops.c (_IO_new_file_init): Declare
	arg type as (struct _IO_FILE_plus *).
	* libio/oldfileops.c (_IO_old_file_init): Likewise.
	* libio/genops.c (_IO_link_in, _IO_un_link): Likewise.
	(_IO_flush_all, _IO_flush_all_linebuffered, _IO_unbuffer_write):
	Declare iteration pointer as (struct _IO_FILE_plus *).
	(_IO_iter_next, _IO_iter_file): _IO_ITER is now (struct _IO_FILE_plus *).
	* libio/stdfiles.c (_IO_list_all): Declare as (struct _IO_FILE_plus *).
	* libio/oldstdfiles.c (_IO_list_all): Likewise.
	(_IO_check_libio): Set user-visible handles to (struct _IO_FILE_plus *).
	* libio/stdio.c (stdin, stdout, stderr): Set user-visible handles
	to (struct _IO_FILE_plus *).

	* libio/iofdopen.c (_IO_new_fdopen): Pass FILE handle pointer
	whose high bound includes vtable to all functions that will use
	vtable.  For streambufs, pass pointer whose bounds include struct
	_IO_strfile.
	* libio/wgenops.c (_IO_wdefault_finish): Likewise.
	* libio/oldiofdopen.c (_IO_old_fdopen): Likewise.
	* libio/iofopen.c (_IO_new_fopen): Likewise.
	* libio/oldiofopen.c (_IO_old_fopen): Likewise.
	* libio/iofopen64.c (_IO_fopen64): Likewise.
	* libio/iopopen.c (_IO_new_popen): Likewise.
	* libio/oldiopopen.c (_IO_old_popen): Likewise.
	* libio/memstream.c (open_memstream): Likewise.
	* libio/iovsscanf.c (_IO_vsscanf): Likewise.
	* libio/iovsprintf.c (_IO_vsprintf): Likewise.
	* libio/iovdprintf.c (_IO_vdprintf): Likewise.
	* libio/iofopncook.c (_IO_cookie_init): Likewise.
	* libio/obprintf.c (_IO_obstack_vprintf): Likewise.
	* libio/vasprintf.c (_IO_vasprintf): Likewise.
	* libio/vsnprintf.c (_IO_vsnprintf): Likewise.
	* libio/stdfiles.c (_IO_stdout_, _IO_stderr_): Likewise.
	* libio/oldstdfiles.c (_IO_stdout_, _IO_stderr_): Likewise.
	* stdlib/strfmon.c (__strfmon_l): Likewise.
	* stdio-common/vfprintf.c (buffered_vfprintf): Likewise.
	(vfprintf): Qualify computed-goto targets as unbounded.
2000-06-28  Greg McGary  <greg@mcgary.org>

	* libio/libio.h (struct _IO_cookie_file): Move struct type defintion out.
	(_IO_FILE): Declare chain as (struct _IO_FILE_plus *).
	* libio/libioP.h (struct _IO_cookie_file): Move struct type defintion in.
	(_IO_JUMPS): Don't cast THIS--expect arg to be a (struct _IO_FILE_plus *).
	(_IO_JUMPS_FUNC): Express in terms of _IO_JUMPS, and add cast to
	THIS, since _IO_JUMPS no longer does it implicitly.
	(_IO_file_init, _IO_old_file_init, _IO_new_file_init): Declare
	arg type as (struct _IO_FILE_plus *).
	(_IO_str_init_static, _IO_str_init_readonly): Declare 1st
	arg as (_IO_strfile *).
	* libio/strops.c (_IO_str_init_static, _IO_str_init_readonly):
	Declare 1st arg as (_IO_strfile *).
	* libio/fileops.c (_IO_new_file_init): Declare
	arg type as (struct _IO_FILE_plus *).
	* libio/oldfileops.c (_IO_old_file_init): Likewise.
	* libio/genops.c (_IO_link_in, _IO_un_link): Likewise.
	(_IO_flush_all, _IO_flush_all_linebuffered, _IO_unbuffer_write):
	Declare iteration pointer as (struct _IO_FILE_plus *).
	(_IO_iter_next, _IO_iter_file): _IO_ITER is now (struct _IO_FILE_plus *).
	* libio/stdfiles.c (_IO_list_all): Declare as (struct _IO_FILE_plus *).
	* libio/oldstdfiles.c (_IO_list_all): Likewise.
	(_IO_check_libio): Set user-visible handles to (struct _IO_FILE_plus *).
	* libio/stdio.c (stdin, stdout, stderr): Set user-visible handles
	to (struct _IO_FILE_plus *).

	* libio/iofdopen.c (_IO_new_fdopen): Pass FILE handle pointer
	whose high bound includes vtable to all functions that will use
	vtable.  For streambufs, pass pointer whose bounds include struct
	_IO_strfile.
	* libio/wgenops.c (_IO_wdefault_finish): Likewise.
	* libio/oldiofdopen.c (_IO_old_fdopen): Likewise.
	* libio/iofopen.c (_IO_new_fopen): Likewise.
	* libio/oldiofopen.c (_IO_old_fopen): Likewise.
	* libio/iofopen64.c (_IO_fopen64): Likewise.
	* libio/iopopen.c (_IO_new_popen): Likewise.
	* libio/oldiopopen.c (_IO_old_popen): Likewise.
	* libio/memstream.c (open_memstream): Likewise.
	* libio/iovsscanf.c (_IO_vsscanf): Likewise.
	* libio/iovsprintf.c (_IO_vsprintf): Likewise.
	* libio/iovdprintf.c (_IO_vdprintf): Likewise.
	* libio/iofopncook.c (_IO_cookie_init): Likewise.
	* libio/obprintf.c (_IO_obstack_vprintf): Likewise.
	* libio/vasprintf.c (_IO_vasprintf): Likewise.
	* libio/vsnprintf.c (_IO_vsnprintf): Likewise.
	* libio/stdfiles.c (_IO_stdout_, _IO_stderr_): Likewise.
	* libio/oldstdfiles.c (_IO_stdout_, _IO_stderr_): Likewise.
	* stdlib/strfmon.c (__strfmon_l): Likewise.
	* stdio-common/vfprintf.c (buffered_vfprintf): Likewise.
	(vfprintf): Qualify computed-goto targets as unbounded.
Diffstat (limited to 'libio/libio.h')
-rw-r--r--libio/libio.h14
1 files changed, 4 insertions, 10 deletions
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,