From 3fc9ca4e389ff1606a4883d50401eaa1a777a07e Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 7 Jun 2000 22:50:32 +0000 Subject: Update. 2000-06-04 Kaz Kylheku 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. --- libio/libioP.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'libio/libioP.h') 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 *)); -- cgit v1.2.3