about summary refs log tree commit diff
path: root/libio/libioP.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-06-07 22:50:32 +0000
committerUlrich Drepper <drepper@redhat.com>2000-06-07 22:50:32 +0000
commit3fc9ca4e389ff1606a4883d50401eaa1a777a07e (patch)
tree70a6a54e2bf0415e3622475f1a0613a7cfef3b40 /libio/libioP.h
parentce177a8416e21b074d1d3382d81939897ff86fa8 (diff)
downloadglibc-3fc9ca4e389ff1606a4883d50401eaa1a777a07e.tar.gz
glibc-3fc9ca4e389ff1606a4883d50401eaa1a777a07e.tar.xz
glibc-3fc9ca4e389ff1606a4883d50401eaa1a777a07e.zip
Update.
2000-06-04  Kaz Kylheku  <kaz@ashi.footprints.net>

	Lock for stdio stream list becomes global, for use in LinuxThreads.

	* libio/genops.c (_IO_iter_begin, _IO_iter_end,
	_IO_iter_next, _IO_iter_file, _IO_list_lock, _IO_list_unlock,
	_IO_list_resetlock): New interface for iterating global list of
	streams without accessing the _IO_list_all global variable,
	and for manipulating the lock which protects this list.
	* libio/libioP.h: Likewise.
	* libio/Version: Add entries for the new functions.

	* libio/libioP.h (_IO_ITER): New typedef, just an alias for
	pointer to _IO_FILE.
Diffstat (limited to 'libio/libioP.h')
-rw-r--r--libio/libioP.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/libio/libioP.h b/libio/libioP.h
index 59d20cd4be..090f98a02d 100644
--- a/libio/libioP.h
+++ b/libio/libioP.h
@@ -313,6 +313,10 @@ struct _IO_FILE_plus
   const struct _IO_jump_t *vtable;
 };
 
+/* Iterator type for walking global linked list of _IO_FILE objects. */
+
+typedef _IO_FILE *_IO_ITER;
+
 /* Generic functions */
 
 extern void _IO_switch_to_main_get_area __P ((_IO_FILE *));
@@ -351,6 +355,17 @@ extern int _IO_wmarker_delta __P ((struct _IO_marker *));
 extern int _IO_seekmark __P ((_IO_FILE *, struct _IO_marker *, int));
 extern int _IO_seekwmark __P ((_IO_FILE *, struct _IO_marker *, int));
 
+/* Functions for iterating global list and dealing with
+   its lock */
+
+extern _IO_ITER _IO_iter_begin __P ((void));
+extern _IO_ITER _IO_iter_end __P ((void));
+extern _IO_ITER _IO_iter_next __P ((_IO_ITER));
+extern _IO_FILE *_IO_iter_file __P ((_IO_ITER));
+extern void _IO_list_lock __P ((void));
+extern void _IO_list_unlock __P ((void));
+extern void _IO_list_resetlock __P ((void));
+
 /* Default jumptable functions. */
 
 extern int _IO_default_underflow __P ((_IO_FILE *));