Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 May 2008 18:33:34 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 141194 for review
Message-ID:  <200805051833.m45IXY7E006850@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=141194

Change 141194 by imp@imp_paco-paco on 2008/05/05 18:32:44

	IFC @141192

Affected files ...

.. //depot/projects/arm/src/etc/rc.subr#13 integrate
.. //depot/projects/arm/src/gnu/usr.bin/sort/config.h#3 integrate
.. //depot/projects/arm/src/include/stdio.h#5 integrate
.. //depot/projects/arm/src/lib/libc/Versions.def#5 integrate
.. //depot/projects/arm/src/lib/libc/stdio/Symbol.map#5 integrate
.. //depot/projects/arm/src/lib/libc/stdio/clrerr.c#4 integrate
.. //depot/projects/arm/src/lib/libc/stdio/feof.c#4 integrate
.. //depot/projects/arm/src/lib/libc/stdio/ferror.c#4 integrate
.. //depot/projects/arm/src/lib/libc/stdio/fileno.c#4 integrate
.. //depot/projects/arm/src/lib/libc/stdio/getc.c#4 integrate
.. //depot/projects/arm/src/lib/libc/stdio/getchar.c#4 integrate
.. //depot/projects/arm/src/lib/libc/stdio/local.h#4 integrate
.. //depot/projects/arm/src/lib/libc/stdio/putc.c#4 integrate
.. //depot/projects/arm/src/lib/libc/stdio/putchar.c#4 integrate
.. //depot/projects/arm/src/lib/libc/stdio/stdio.c#4 integrate
.. //depot/projects/arm/src/lib/libc/stdio/xprintf.c#4 integrate

Differences ...

==== //depot/projects/arm/src/etc/rc.subr#13 (text+ko) ====

@@ -1,5 +1,5 @@
 # $NetBSD: rc.subr,v 1.67 2006/10/07 11:25:15 elad Exp $
-# $FreeBSD: src/etc/rc.subr,v 1.81 2008/05/05 07:43:48 mtm Exp $
+# $FreeBSD: src/etc/rc.subr,v 1.83 2008/05/05 15:52:54 maxim Exp $
 #
 # Copyright (c) 1997-2004 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -171,15 +171,15 @@
 {
 	local always
 
-        case $1 in
-                #       "yes", "true", "on", or "1"
+	case $1 in
+		#	"yes", "true", "on", or "1"
         [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
 		always=true
 		;;
 	*)
 		always=false
 		;;
-	fi
+	esac
 	if [ "$autoboot" = yes -o "$always" = true ]; then
 		echo "ERROR: ABORTING BOOT (sending SIGTERM to parent)!"
 		kill -TERM ${RC_PID}

==== //depot/projects/arm/src/gnu/usr.bin/sort/config.h#3 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/gnu/usr.bin/sort/config.h,v 1.9 2008/05/03 23:36:00 marcel Exp $ */
+/* $FreeBSD: src/gnu/usr.bin/sort/config.h,v 1.10 2008/05/05 16:12:28 jhb Exp $ */
 /* config.h.  Generated by configure.  */
 /* config.hin.  Generated from configure.ac by autoheader.  */
 
@@ -1240,7 +1240,7 @@
 #define PACKAGE_VERSION "5.3.0-20040812-FreeBSD"
 
 /* the number of pending output bytes on stream `fp' */
-#define PENDING_OUTPUT_N_BYTES __fgetpendout(fp)
+#define PENDING_OUTPUT_N_BYTES fp->_p - fp->_bf._base
 
 /* Define if <inttypes.h> exists and defines unusable PRI* macros. */
 /* #undef PRI_MACROS_BROKEN */

==== //depot/projects/arm/src/include/stdio.h#5 (text+ko) ====

@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)stdio.h	8.5 (Berkeley) 4/29/95
- * $FreeBSD: src/include/stdio.h,v 1.69 2008/05/03 23:35:59 marcel Exp $
+ * $FreeBSD: src/include/stdio.h,v 1.72 2008/05/05 16:14:02 jhb Exp $
  */
 
 #ifndef	_STDIO_H_
@@ -60,8 +60,84 @@
 
 #define	_FSTDIO			/* Define for new stdio with functions. */
 
-struct __sFILE;
-typedef	struct __sFILE FILE;
+/*
+ * NB: to fit things in six character monocase externals, the stdio
+ * code uses the prefix `__s' for stdio objects, typically followed
+ * by a three-character attempt at a mnemonic.
+ */
+
+/* stdio buffers */
+struct __sbuf {
+	unsigned char *_base;
+	int	_size;
+};
+
+/*
+ * stdio state variables.
+ *
+ * The following always hold:
+ *
+ *	if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
+ *		_lbfsize is -_bf._size, else _lbfsize is 0
+ *	if _flags&__SRD, _w is 0
+ *	if _flags&__SWR, _r is 0
+ *
+ * This ensures that the getc and putc macros (or inline functions) never
+ * try to write or read from a file that is in `read' or `write' mode.
+ * (Moreover, they can, and do, automatically switch from read mode to
+ * write mode, and back, on "r+" and "w+" files.)
+ *
+ * _lbfsize is used only to make the inline line-buffered output stream
+ * code as compact as possible.
+ *
+ * _ub, _up, and _ur are used when ungetc() pushes back more characters
+ * than fit in the current _bf, or when ungetc() pushes back a character
+ * that does not match the previous one in _bf.  When this happens,
+ * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
+ * _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
+ *
+ * Certain members of __sFILE are accessed directly via macros or
+ * inline functions.  To preserve ABI compat, these members must not
+ * be disturbed.  These members are marked below with (*).
+ */
+typedef	struct __sFILE {
+	unsigned char *_p;	/* (*) current position in (some) buffer */
+	int	_r;		/* (*) read space left for getc() */
+	int	_w;		/* (*) write space left for putc() */
+	short	_flags;		/* (*) flags, below; this FILE is free if 0 */
+	short	_file;		/* (*) fileno, if Unix descriptor, else -1 */
+	struct	__sbuf _bf;	/* the buffer (at least 1 byte, if !NULL) */
+	int	_lbfsize;	/* (*) 0 or -_bf._size, for inline putc */
+
+	/* operations */
+	void	*_cookie;	/* (*) cookie passed to io functions */
+	int	(*_close)(void *);
+	int	(*_read)(void *, char *, int);
+	fpos_t	(*_seek)(void *, fpos_t, int);
+	int	(*_write)(void *, const char *, int);
+
+	/* separate buffer for long sequences of ungetc() */
+	struct	__sbuf _ub;	/* ungetc buffer */
+	unsigned char	*_up;	/* saved _p when _p is doing ungetc data */
+	int	_ur;		/* saved _r when _r is counting ungetc data */
+
+	/* tricks to meet minimum requirements even when malloc() fails */
+	unsigned char _ubuf[3];	/* guarantee an ungetc() buffer */
+	unsigned char _nbuf[1];	/* guarantee a getc() buffer */
+
+	/* separate buffer for fgetln() when line crosses buffer boundary */
+	struct	__sbuf _lb;	/* buffer for fgetln() */
+
+	/* Unix stdio files get aligned to block boundaries on fseek() */
+	int	_blksize;	/* stat.st_blksize (may be != _bf._size) */
+	fpos_t	_offset;	/* current lseek offset */
+
+	struct pthread_mutex *_fl_mutex;	/* used for MT-safety */
+	struct pthread *_fl_owner;	/* current owner */
+	int	_fl_count;	/* recursive lock count */
+	int	_orientation;	/* orientation for fwide() */
+	__mbstate_t _mbstate;	/* multibyte conversion state */
+} FILE;
 
 #ifndef _STDSTREAM_DECLARED
 __BEGIN_DECLS
@@ -72,11 +148,32 @@
 #define	_STDSTREAM_DECLARED
 #endif
 
+#define	__SLBF	0x0001		/* line buffered */
+#define	__SNBF	0x0002		/* unbuffered */
+#define	__SRD	0x0004		/* OK to read */
+#define	__SWR	0x0008		/* OK to write */
+	/* RD and WR are never simultaneously asserted */
+#define	__SRW	0x0010		/* open for reading & writing */
+#define	__SEOF	0x0020		/* found EOF */
+#define	__SERR	0x0040		/* found error */
+#define	__SMBF	0x0080		/* _buf is from malloc */
+#define	__SAPP	0x0100		/* fdopen()ed in append mode */
+#define	__SSTR	0x0200		/* this is an sprintf/snprintf string */
+#define	__SOPT	0x0400		/* do fseek() optimization */
+#define	__SNPT	0x0800		/* do not do fseek() optimization */
+#define	__SOFF	0x1000		/* set iff _offset is in fact correct */
+#define	__SMOD	0x2000		/* true => fgetln modified _p text */
+#define	__SALC	0x4000		/* allocate string space dynamically */
+#define	__SIGN	0x8000		/* ignore this file in _fwalk */
+
 /*
  * The following three definitions are for ANSI C, which took them
  * from System V, which brilliantly took internal interface macros and
  * made them official arguments to setvbuf(), without renaming them.
  * Hence, these ugly _IOxxx names are *supposed* to appear in user code.
+ *
+ * Although numbered as their counterparts above, the implementation
+ * does not rely on this.
  */
 #define	_IOFBF	0		/* setvbuf should set fully buffered */
 #define	_IOLBF	1		/* setvbuf should set line buffered */
@@ -204,8 +301,8 @@
 void	 funlockfile(FILE *);
 
 /*
- * See ISO/IEC 9945-1 ANSI/IEEE Std 1003.1 Second Edition 1996-07-12
- * B.8.2.7 for the rationale behind the *_unlocked() functions.
+ * These are normally used through macros as defined below, but POSIX
+ * requires functions as well.
  */
 int	 getc_unlocked(FILE *);
 int	 getchar_unlocked(void);
@@ -249,12 +346,6 @@
 int	 vasprintf(char **, const char *, __va_list)
 	    __printflike(2, 0);
 
-/* XXX used by libftpio */
-void	*__fgetcookie(FILE *);
-void	__fsetfileno(FILE *, int);
-/* XXX used by sort */
-size_t	__fgetpendout(FILE *);
-
 /*
  * The system error table contains messages for the first sys_nerr
  * positive errno values.  Use strerror() or strerror_r() from <string.h>
@@ -295,5 +386,76 @@
 #endif
 #endif /* __BSD_VISIBLE */
 
+/*
+ * Functions internal to the implementation.
+ */
+int	__srget(FILE *);
+int	__swbuf(int, FILE *);
+
+/*
+ * The __sfoo macros are here so that we can
+ * define function versions in the C library.
+ */
+#define	__sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++))
+#if defined(__GNUC__) && defined(__STDC__)
+static __inline int __sputc(int _c, FILE *_p) {
+	if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n'))
+		return (*_p->_p++ = _c);
+	else
+		return (__swbuf(_c, _p));
+}
+#else
+/*
+ * This has been tuned to generate reasonable code on the vax using pcc.
+ */
+#define	__sputc(c, p) \
+	(--(p)->_w < 0 ? \
+		(p)->_w >= (p)->_lbfsize ? \
+			(*(p)->_p = (c)), *(p)->_p != '\n' ? \
+				(int)*(p)->_p++ : \
+				__swbuf('\n', p) : \
+			__swbuf((int)(c), p) : \
+		(*(p)->_p = (c), (int)*(p)->_p++))
+#endif
+
+#define	__sfeof(p)	(((p)->_flags & __SEOF) != 0)
+#define	__sferror(p)	(((p)->_flags & __SERR) != 0)
+#define	__sclearerr(p)	((void)((p)->_flags &= ~(__SERR|__SEOF)))
+#define	__sfileno(p)	((p)->_file)
+
+extern int __isthreaded;
+
+#define	feof(p)		(!__isthreaded ? __sfeof(p) : (feof)(p))
+#define	ferror(p)	(!__isthreaded ? __sferror(p) : (ferror)(p))
+#define	clearerr(p)	(!__isthreaded ? __sclearerr(p) : (clearerr)(p))
+
+#if __POSIX_VISIBLE
+#define	fileno(p)	(!__isthreaded ? __sfileno(p) : (fileno)(p))
+#endif
+
+#define	getc(fp)	(!__isthreaded ? __sgetc(fp) : (getc)(fp))
+#define	putc(x, fp)	(!__isthreaded ? __sputc(x, fp) : (putc)(x, fp))
+
+#define	getchar()	getc(stdin)
+#define	putchar(x)	putc(x, stdout)
+
+#if __BSD_VISIBLE
+/*
+ * See ISO/IEC 9945-1 ANSI/IEEE Std 1003.1 Second Edition 1996-07-12
+ * B.8.2.7 for the rationale behind the *_unlocked() macros.
+ */
+#define	feof_unlocked(p)	__sfeof(p)
+#define	ferror_unlocked(p)	__sferror(p)
+#define	clearerr_unlocked(p)	__sclearerr(p)
+#define	fileno_unlocked(p)	__sfileno(p)
+#endif
+#if __POSIX_VISIBLE >= 199506
+#define	getc_unlocked(fp)	__sgetc(fp)
+#define	putc_unlocked(x, fp)	__sputc(x, fp)
+
+#define	getchar_unlocked()	getc_unlocked(stdin)
+#define	putchar_unlocked(x)	putc_unlocked(x, stdout)
+#endif
+
 __END_DECLS
 #endif /* !_STDIO_H_ */

==== //depot/projects/arm/src/lib/libc/Versions.def#5 (text) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/lib/libc/Versions.def,v 1.5 2008/05/04 04:11:00 marcel Exp $
+# $FreeBSD: src/lib/libc/Versions.def,v 1.6 2008/05/05 16:14:02 jhb Exp $
 
 # This is our first version; it depends on no other.
 # This version was first added to 7.0-current.
@@ -15,6 +15,3 @@
 # simple ABI-checking tools.
 FBSDprivate_1.0 {
 } FBSD_1.0;
-
-FBSDprivate_1.1 {
-} FBSD_1.1;

==== //depot/projects/arm/src/lib/libc/stdio/Symbol.map#5 (text) ====

@@ -1,5 +1,5 @@
 /*
- * $FreeBSD: src/lib/libc/stdio/Symbol.map,v 1.7 2008/05/04 04:11:01 marcel Exp $
+ * $FreeBSD: src/lib/libc/stdio/Symbol.map,v 1.8 2008/05/05 16:14:02 jhb Exp $
  */
 
 FBSD_1.0 {
@@ -149,9 +149,3 @@
 	__printf_arginfo_vis;
 	__printf_render_vis;
 };
-
-FBSDprivate_1.1 {
-	__fgetcookie;
-	__fgetpendout;
-	__fsetfileno;
-};

==== //depot/projects/arm/src/lib/libc/stdio/clrerr.c#4 (text+ko) ====

@@ -34,15 +34,15 @@
 static char sccsid[] = "@(#)clrerr.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdio/clrerr.c,v 1.11 2008/05/02 15:25:07 jhb Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdio/clrerr.c,v 1.12 2008/05/05 16:03:52 jhb Exp $");
 
 #include "namespace.h"
 #include <stdio.h>
 #include "un-namespace.h"
-#include "local.h"
 #include "libc_private.h"
 
-#define	__sclearerr(p)	((void)((p)->_flags &= ~(__SERR|__SEOF)))
+#undef clearerr
+#undef clearerr_unlocked
 
 void
 clearerr(fp)

==== //depot/projects/arm/src/lib/libc/stdio/feof.c#4 (text+ko) ====

@@ -34,15 +34,15 @@
 static char sccsid[] = "@(#)feof.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdio/feof.c,v 1.11 2008/05/02 15:25:07 jhb Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdio/feof.c,v 1.12 2008/05/05 16:03:52 jhb Exp $");
 
 #include "namespace.h"
 #include <stdio.h>
 #include "un-namespace.h"
-#include "local.h"
 #include "libc_private.h"
 
-#define	__sfeof(p)	(((p)->_flags & __SEOF) != 0)
+#undef feof
+#undef feof_unlocked
 
 int
 feof(FILE *fp)

==== //depot/projects/arm/src/lib/libc/stdio/ferror.c#4 (text+ko) ====

@@ -34,14 +34,16 @@
 static char sccsid[] = "@(#)ferror.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdio/ferror.c,v 1.11 2008/05/02 15:25:07 jhb Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdio/ferror.c,v 1.12 2008/05/05 16:03:52 jhb Exp $");
 
 #include "namespace.h"
 #include <stdio.h>
 #include "un-namespace.h"
-#include "local.h"
 #include "libc_private.h"
 
+#undef ferror
+#undef ferror_unlocked
+
 int
 ferror(FILE *fp)
 {

==== //depot/projects/arm/src/lib/libc/stdio/fileno.c#4 (text+ko) ====

@@ -34,15 +34,15 @@
 static char sccsid[] = "@(#)fileno.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdio/fileno.c,v 1.12 2008/05/02 15:25:07 jhb Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdio/fileno.c,v 1.13 2008/05/05 16:03:52 jhb Exp $");
 
 #include "namespace.h"
 #include <stdio.h>
 #include "un-namespace.h"
-#include "local.h"
 #include "libc_private.h"
 
-#define	__sfileno(p)	((p)->_file)
+#undef fileno
+#undef fileno_unlocked
 
 int
 fileno(FILE *fp)

==== //depot/projects/arm/src/lib/libc/stdio/getc.c#4 (text+ko) ====

@@ -34,7 +34,7 @@
 static char sccsid[] = "@(#)getc.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdio/getc.c,v 1.15 2008/05/02 15:25:07 jhb Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdio/getc.c,v 1.16 2008/05/05 16:03:52 jhb Exp $");
 
 #include "namespace.h"
 #include <stdio.h>
@@ -42,6 +42,9 @@
 #include "libc_private.h"
 #include "local.h"
 
+#undef getc
+#undef getc_unlocked
+
 int
 getc(FILE *fp)
 {

==== //depot/projects/arm/src/lib/libc/stdio/getchar.c#4 (text+ko) ====

@@ -34,7 +34,7 @@
 static char sccsid[] = "@(#)getchar.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdio/getchar.c,v 1.14 2008/05/02 15:25:07 jhb Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdio/getchar.c,v 1.15 2008/05/05 16:03:52 jhb Exp $");
 
 /*
  * A subroutine version of the macro getchar.
@@ -45,6 +45,9 @@
 #include "local.h"
 #include "libc_private.h"
 
+#undef getchar
+#undef getchar_unlocked
+
 int
 getchar()
 {

==== //depot/projects/arm/src/lib/libc/stdio/local.h#4 (text+ko) ====

@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)local.h	8.3 (Berkeley) 7/3/94
- * $FreeBSD: src/lib/libc/stdio/local.h,v 1.32 2008/05/02 15:25:07 jhb Exp $
+ * $FreeBSD: src/lib/libc/stdio/local.h,v 1.33 2008/05/05 16:03:52 jhb Exp $
  */
 
 #include <sys/types.h>	/* for off_t */
@@ -39,105 +39,9 @@
 #include <wchar.h>
 
 /*
- * Information local to this implementation of stdio, in particular,
- * macros, private functions, private variables, and the definition of
- * FILE.
- *
- * NB: to fit things in six character monocase externals, the stdio
- * code uses the prefix `__s' for stdio objects, typically followed
- * by a three-character attempt at a mnemonic.
- */
-
-/* stdio buffers */
-struct __sbuf {
-	unsigned char *_base;
-	int	_size;
-};
-
-/*
- * stdio state variables.
- *
- * The following always hold:
- *
- *	if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
- *		_lbfsize is -_bf._size, else _lbfsize is 0
- *	if _flags&__SRD, _w is 0
- *	if _flags&__SWR, _r is 0
- *
- * This ensures that the getc and putc macros (or inline functions) never
- * try to write or read from a file that is in `read' or `write' mode.
- * (Moreover, they can, and do, automatically switch from read mode to
- * write mode, and back, on "r+" and "w+" files.)
- *
- * _lbfsize is used only to make the inline line-buffered output stream
- * code as compact as possible.
- *
- * _ub, _up, and _ur are used when ungetc() pushes back more characters
- * than fit in the current _bf, or when ungetc() pushes back a character
- * that does not match the previous one in _bf.  When this happens,
- * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
- * _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
- *
- * Certain members of __sFILE are accessed directly via macros or
- * inline functions.  To preserve ABI compat, these members must not
- * be disturbed.  These members are marked below with (*).
+ * Information local to this implementation of stdio,
+ * in particular, macros and private variables.
  */
-struct __sFILE {
-	unsigned char *_p;	/* (*) current position in (some) buffer */
-	int	_r;		/* (*) read space left for getc() */
-	int	_w;		/* (*) write space left for putc() */
-	short	_flags;		/* (*) flags, below; this FILE is free if 0 */
-	short	_file;		/* (*) fileno, if Unix descriptor, else -1 */
-	struct	__sbuf _bf;	/* the buffer (at least 1 byte, if !NULL) */
-	int	_lbfsize;	/* (*) 0 or -_bf._size, for inline putc */
-
-	/* operations */
-	void	*_cookie;	/* cookie passed to io functions */
-	int	(*_close)(void *);
-	int	(*_read)(void *, char *, int);
-	fpos_t	(*_seek)(void *, fpos_t, int);
-	int	(*_write)(void *, const char *, int);
-
-	/* separate buffer for long sequences of ungetc() */
-	struct	__sbuf _ub;	/* ungetc buffer */
-	unsigned char	*_up;	/* saved _p when _p is doing ungetc data */
-	int	_ur;		/* saved _r when _r is counting ungetc data */
-
-	/* tricks to meet minimum requirements even when malloc() fails */
-	unsigned char _ubuf[3];	/* guarantee an ungetc() buffer */
-	unsigned char _nbuf[1];	/* guarantee a getc() buffer */
-
-	/* separate buffer for fgetln() when line crosses buffer boundary */
-	struct	__sbuf _lb;	/* buffer for fgetln() */
-
-	/* Unix stdio files get aligned to block boundaries on fseek() */
-	int	_blksize;	/* stat.st_blksize (may be != _bf._size) */
-	fpos_t	_offset;	/* current lseek offset */
-
-	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 */
-};
-
-#define	__SLBF	0x0001		/* line buffered */
-#define	__SNBF	0x0002		/* unbuffered */
-#define	__SRD	0x0004		/* OK to read */
-#define	__SWR	0x0008		/* OK to write */
-	/* RD and WR are never simultaneously asserted */
-#define	__SRW	0x0010		/* open for reading & writing */
-#define	__SEOF	0x0020		/* found EOF */
-#define	__SERR	0x0040		/* found error */
-#define	__SMBF	0x0080		/* _buf is from malloc */
-#define	__SAPP	0x0100		/* fdopen()ed in append mode */
-#define	__SSTR	0x0200		/* this is an sprintf/snprintf string */
-#define	__SOPT	0x0400		/* do fseek() optimization */
-#define	__SNPT	0x0800		/* do not do fseek() optimization */
-#define	__SOFF	0x1000		/* set iff _offset is in fact correct */
-#define	__SMOD	0x2000		/* true => fgetln modified _p text */
-#define	__SALC	0x4000		/* allocate string space dynamically */
-#define	__SIGN	0x8000		/* ignore this file in _fwalk */
 
 extern int	_sread(FILE *, char *, int);
 extern int	_swrite(FILE *, char const *, int);
@@ -153,8 +57,6 @@
 extern int	__slbexpand(FILE *, size_t);
 extern int	__srefill(FILE *);
 extern int	__sread(void *, char *, int);
-extern int	__srget(FILE *);
-extern int	__swbuf(int, FILE *);
 extern int	__swrite(void *, char const *, int);
 extern fpos_t	__sseek(void *, fpos_t, int);
 extern int	__sclose(void *);
@@ -179,38 +81,6 @@
 
 
 /*
- * Get and store individual characters from a file stream.
- */
-#define	__sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++))
-#if defined(__GNUC__) && defined(__STDC__)
-static __inline int
-__sputc(int _c, FILE *_p)
-{
-	if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n'))
-		return (*_p->_p++ = _c);
-	else
-		return (__swbuf(_c, _p));
-}
-#else
-/*
- * This has been tuned to generate reasonable code on the vax using pcc.
- */
-#define	__sputc(c, p) \
-	(--(p)->_w < 0 ? \
-		(p)->_w >= (p)->_lbfsize ? \
-			(*(p)->_p = (c)), *(p)->_p != '\n' ? \
-				(int)*(p)->_p++ : \
-				__swbuf('\n', p) : \
-			__swbuf((int)(c), p) : \
-		(*(p)->_p = (c), (int)*(p)->_p++))
-#endif
-
-/*
- * Return true if the file stream has encountered an error.
- */
-#define	__sferror(p)	(((p)->_flags & __SERR) != 0)
-
-/*
  * Prepare the given FILE for writing, and return 0 iff it
  * can be written now.  Otherwise, return EOF and set errno.
  */

==== //depot/projects/arm/src/lib/libc/stdio/putc.c#4 (text+ko) ====

@@ -34,7 +34,7 @@
 static char sccsid[] = "@(#)putc.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdio/putc.c,v 1.15 2008/05/02 15:25:07 jhb Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdio/putc.c,v 1.16 2008/05/05 16:03:52 jhb Exp $");
 
 #include "namespace.h"
 #include <stdio.h>
@@ -42,6 +42,9 @@
 #include "local.h"
 #include "libc_private.h"
 
+#undef putc
+#undef putc_unlocked
+
 int
 putc(c, fp)
 	int c;

==== //depot/projects/arm/src/lib/libc/stdio/putchar.c#4 (text+ko) ====

@@ -34,7 +34,7 @@
 static char sccsid[] = "@(#)putchar.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdio/putchar.c,v 1.15 2008/05/02 15:25:07 jhb Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdio/putchar.c,v 1.16 2008/05/05 16:03:52 jhb Exp $");
 
 #include "namespace.h"
 #include <stdio.h>
@@ -42,6 +42,9 @@
 #include "local.h"
 #include "libc_private.h"
 
+#undef putchar
+#undef putchar_unlocked
+
 /*
  * A subroutine version of the macro putchar
  */

==== //depot/projects/arm/src/lib/libc/stdio/stdio.c#4 (text+ko) ====

@@ -34,7 +34,7 @@
 static char sccsid[] = "@(#)stdio.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdio/stdio.c,v 1.27 2008/05/03 23:35:59 marcel Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdio/stdio.c,v 1.28 2008/05/05 16:14:02 jhb Exp $");
 
 #include "namespace.h"
 #include <errno.h>
@@ -46,27 +46,6 @@
 #include "un-namespace.h"
 #include "local.h"
 
-void *
-__fgetcookie(FILE *fp)
-{
-
-	return (fp->_cookie);
-}
-
-size_t
-__fgetpendout(FILE *fp)
-{
-
-	return (fp->_p - fp->_bf._base);
-}
-
-void
-__fsetfileno(FILE *fp, int fd)
-{
-
-	fp->_file = fd;
-}
-
 /*
  * Small standard I/O/seek/close functions.
  */

==== //depot/projects/arm/src/lib/libc/stdio/xprintf.c#4 (text+ko) ====

@@ -30,7 +30,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libc/stdio/xprintf.c,v 1.7 2008/05/02 15:25:07 jhb Exp $
+ * $FreeBSD: src/lib/libc/stdio/xprintf.c,v 1.8 2008/05/05 16:03:52 jhb Exp $
  */
 
 #include "namespace.h"
@@ -47,7 +47,6 @@
 #include <string.h>
 #include <wchar.h>
 #include "un-namespace.h"
-#include "local.h"
 
 #include "printf.h"
 #include "fvwrite.h"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200805051833.m45IXY7E006850>