summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdio/local.h
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2008-04-17 22:17:54 +0000
committerjhb <jhb@FreeBSD.org>2008-04-17 22:17:54 +0000
commitab875ea72654fac71cb13470c85b43412c2e2391 (patch)
treeb259dd878c8cb0ee9fb15608aebb9453ad10e7b1 /lib/libc/stdio/local.h
parented4c4d169e660b4253a11c7915cd7a01c4b11398 (diff)
downloadFreeBSD-src-ab875ea72654fac71cb13470c85b43412c2e2391.zip
FreeBSD-src-ab875ea72654fac71cb13470c85b43412c2e2391.tar.gz
Next stage of stdio cleanup: Retire __sFILEX and merge the fields back into
__sFILE. This was supposed to be done in 6.0. Some notes: - Where possible I restored the various lines to their pre-__sFILEX state. - Retire INITEXTRA() and just initialize the wchar bits (orientation and mbstate) explicitly instead. The various places that used INITEXTRA didn't need the locking fields or _up initialized. (Some places needed _up to exist and not be off the end of a NULL or garbage pointer, but they didn't require it to be initialized to a specific value.) - For now, stdio.h "knows" that pthread_t is a 'struct pthread *' to avoid namespace pollution of including all the pthread types in stdio.h. Once we remove all the inlines and make __sFILE private it can go back to using pthread_t, etc. - This does not remove any of the inlines currently and does not change any of the public ABI of 'FILE'. MFC after: 1 month Reviewed by: peter
Diffstat (limited to 'lib/libc/stdio/local.h')
-rw-r--r--lib/libc/stdio/local.h23
1 files changed, 2 insertions, 21 deletions
diff --git a/lib/libc/stdio/local.h b/lib/libc/stdio/local.h
index 9d2ff0f..09b3a18 100644
--- a/lib/libc/stdio/local.h
+++ b/lib/libc/stdio/local.h
@@ -80,16 +80,6 @@ extern size_t __fread(void * __restrict buf, size_t size, size_t count,
extern int __sdidinit;
-/* hold a buncha junk that would grow the ABI */
-struct __sFILEX {
- unsigned char *_up; /* saved _p when _p is doing ungetc data */
- pthread_mutex_t fl_mutex; /* used for MT-safety */
- pthread_t fl_owner; /* current owner */
- int fl_count; /* recursive lock count */
- int orientation; /* orientation for fwide() */
- mbstate_t mbstate; /* multibyte conversion state */
-};
-
/*
* Prepare the given FILE for writing, and return 0 iff it
* can be written now. Otherwise, return EOF and set errno.
@@ -119,20 +109,11 @@ struct __sFILEX {
(fp)->_lb._base = NULL; \
}
-#define INITEXTRA(fp) { \
- (fp)->_extra->_up = NULL; \
- (fp)->_extra->fl_mutex = PTHREAD_MUTEX_INITIALIZER; \
- (fp)->_extra->fl_owner = NULL; \
- (fp)->_extra->fl_count = 0; \
- (fp)->_extra->orientation = 0; \
- memset(&(fp)->_extra->mbstate, 0, sizeof(mbstate_t)); \
-}
-
/*
* Set the orientation for a stream. If o > 0, the stream has wide-
* orientation. If o < 0, the stream has byte-orientation.
*/
#define ORIENT(fp, o) do { \
- if ((fp)->_extra->orientation == 0) \
- (fp)->_extra->orientation = (o); \
+ if ((fp)->_orientation == 0) \
+ (fp)->_orientation = (o); \
} while (0)
OpenPOWER on IntegriCloud