PERFORCE change 141262 for review
Sam Leffler
sam at FreeBSD.org
Wed May 7 02:20:51 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=141262
Change 141262 by sam at sam_ebb on 2008/05/07 02:20:26
IFC @ 141260
Affected files ...
.. //depot/projects/vap/etc/etc.mips/ttys#1 branch
.. //depot/projects/vap/etc/rc.d/hostid#4 integrate
.. //depot/projects/vap/etc/rc.subr#4 integrate
.. //depot/projects/vap/gnu/lib/libstdc++/config.h#3 integrate
.. //depot/projects/vap/gnu/usr.bin/binutils/objdump/Makefile#3 integrate
.. //depot/projects/vap/gnu/usr.bin/sort/config.h#3 integrate
.. //depot/projects/vap/include/stdio.h#6 integrate
.. //depot/projects/vap/lib/libc/Versions.def#4 integrate
.. //depot/projects/vap/lib/libc/gen/readdir.c#4 integrate
.. //depot/projects/vap/lib/libc/gen/telldir.c#4 integrate
.. //depot/projects/vap/lib/libc/gen/telldir.h#3 integrate
.. //depot/projects/vap/lib/libc/stdio/Symbol.map#4 integrate
.. //depot/projects/vap/lib/libc/stdio/clrerr.c#4 integrate
.. //depot/projects/vap/lib/libc/stdio/feof.c#4 integrate
.. //depot/projects/vap/lib/libc/stdio/ferror.c#4 integrate
.. //depot/projects/vap/lib/libc/stdio/fileno.c#4 integrate
.. //depot/projects/vap/lib/libc/stdio/getc.c#4 integrate
.. //depot/projects/vap/lib/libc/stdio/getchar.c#4 integrate
.. //depot/projects/vap/lib/libc/stdio/local.h#5 integrate
.. //depot/projects/vap/lib/libc/stdio/putc.c#4 integrate
.. //depot/projects/vap/lib/libc/stdio/putchar.c#4 integrate
.. //depot/projects/vap/lib/libc/stdio/stdio.c#4 integrate
.. //depot/projects/vap/lib/libc/stdio/xprintf.c#5 integrate
.. //depot/projects/vap/lib/libdisk/disk.c#4 integrate
.. //depot/projects/vap/lib/libdisk/libdisk.h#3 integrate
.. //depot/projects/vap/lib/libdisk/write_mips_disk.c#1 branch
.. //depot/projects/vap/lib/libftpio/ftpio.c#4 integrate
.. //depot/projects/vap/lib/libthr/thread/thr_exit.c#8 integrate
.. //depot/projects/vap/lib/msun/mips/Symbol.map#2 integrate
.. //depot/projects/vap/libexec/rtld-elf/rtld.c#4 integrate
.. //depot/projects/vap/libexec/rtld-elf/rtld_lock.c#3 integrate
.. //depot/projects/vap/libexec/rtld-elf/rtld_lock.h#3 integrate
.. //depot/projects/vap/sys/arm/at91/uart_dev_at91usart.c#4 integrate
.. //depot/projects/vap/sys/conf/NOTES#18 integrate
.. //depot/projects/vap/sys/conf/files#38 integrate
.. //depot/projects/vap/sys/contrib/rdma/core_priv.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_addr.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_cache.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_cm.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_fmr_pool.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_mad.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_marshall.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_pack.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_sa.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_smi.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_umem.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_user_cm.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_user_mad.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_user_sa.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_user_verbs.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/ib_verbs.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/iw_cm.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/krping/getopt.c#1 branch
.. //depot/projects/vap/sys/contrib/rdma/krping/getopt.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/krping/krping.c#1 branch
.. //depot/projects/vap/sys/contrib/rdma/krping/krping.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/krping/krping_dev.c#1 branch
.. //depot/projects/vap/sys/contrib/rdma/rdma_addr.c#1 branch
.. //depot/projects/vap/sys/contrib/rdma/rdma_cache.c#1 branch
.. //depot/projects/vap/sys/contrib/rdma/rdma_cm.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/rdma_cm_ib.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/rdma_cma.c#1 branch
.. //depot/projects/vap/sys/contrib/rdma/rdma_device.c#1 branch
.. //depot/projects/vap/sys/contrib/rdma/rdma_iwcm.c#1 branch
.. //depot/projects/vap/sys/contrib/rdma/rdma_user_cm.h#1 branch
.. //depot/projects/vap/sys/contrib/rdma/rdma_verbs.c#1 branch
.. //depot/projects/vap/sys/contrib/rdma/types.h#1 branch
.. //depot/projects/vap/sys/dev/ath/if_ath.c#72 integrate
.. //depot/projects/vap/sys/dev/ath/if_athvar.h#24 integrate
.. //depot/projects/vap/sys/dev/bge/if_bge.c#14 integrate
.. //depot/projects/vap/sys/dev/bge/if_bgereg.h#10 integrate
.. //depot/projects/vap/sys/dev/cxgb/cxgb_config.h#4 integrate
.. //depot/projects/vap/sys/dev/cxgb/cxgb_main.c#9 integrate
.. //depot/projects/vap/sys/dev/cxgb/cxgb_offload.c#6 integrate
.. //depot/projects/vap/sys/dev/cxgb/cxgb_osdep.h#5 integrate
.. //depot/projects/vap/sys/dev/cxgb/t3cdev.h#3 integrate
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.h#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.h#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cq.c#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_dbg.c#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ev.c#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.c#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.h#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_mem.c#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.h#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_resource.c#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_resource.h#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_user.h#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_wr.h#1 branch
.. //depot/projects/vap/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#7 integrate
.. //depot/projects/vap/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c#8 integrate
.. //depot/projects/vap/sys/dev/cxgb/ulp/tom/cxgb_ddp.c#4 integrate
.. //depot/projects/vap/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.h#2 integrate
.. //depot/projects/vap/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h#3 integrate
.. //depot/projects/vap/sys/dev/dcons/dcons_os.c#6 integrate
.. //depot/projects/vap/sys/dev/mpt/mpt.h#6 integrate
.. //depot/projects/vap/sys/dev/mpt/mpt_user.c#1 branch
.. //depot/projects/vap/sys/dev/ofw/ofw_console.c#7 integrate
.. //depot/projects/vap/sys/dev/sio/sio.c#7 integrate
.. //depot/projects/vap/sys/dev/uart/uart_core.c#7 integrate
.. //depot/projects/vap/sys/kern/kern_cpu.c#6 integrate
.. //depot/projects/vap/sys/kern/subr_blist.c#3 integrate
.. //depot/projects/vap/sys/kern/subr_kdb.c#7 integrate
.. //depot/projects/vap/sys/kern/vfs_subr.c#17 integrate
.. //depot/projects/vap/sys/modules/cxgb/Makefile#5 integrate
.. //depot/projects/vap/sys/modules/cxgb/iw_cxgb/Makefile#1 branch
.. //depot/projects/vap/sys/modules/esp/Makefile#5 integrate
.. //depot/projects/vap/sys/modules/hfa/Makefile#3 integrate
.. //depot/projects/vap/sys/modules/hme/Makefile#3 integrate
.. //depot/projects/vap/sys/modules/isp/Makefile#5 integrate
.. //depot/projects/vap/sys/modules/ispfw/Makefile#5 integrate
.. //depot/projects/vap/sys/modules/le/Makefile#3 integrate
.. //depot/projects/vap/sys/modules/mpt/Makefile#5 integrate
.. //depot/projects/vap/sys/modules/rdma/Makefile#1 branch
.. //depot/projects/vap/sys/modules/rdma/addr/Makefile#1 branch
.. //depot/projects/vap/sys/modules/rdma/cma/Makefile#1 branch
.. //depot/projects/vap/sys/modules/rdma/core/Makefile#1 branch
.. //depot/projects/vap/sys/modules/rdma/iwcm/Makefile#1 branch
.. //depot/projects/vap/sys/modules/rdma/krping/Makefile#1 branch
.. //depot/projects/vap/sys/modules/scc/Makefile#4 integrate
.. //depot/projects/vap/sys/modules/sound/driver/Makefile#5 integrate
.. //depot/projects/vap/sys/netinet/tcp.h#7 integrate
.. //depot/projects/vap/sys/netinet/tcp_usrreq.c#9 integrate
.. //depot/projects/vap/sys/pc98/cbus/sio.c#5 integrate
.. //depot/projects/vap/sys/security/audit/audit.h#5 integrate
.. //depot/projects/vap/sys/sun4v/sun4v/hvcons.c#4 integrate
.. //depot/projects/vap/sys/sys/blist.h#3 integrate
.. //depot/projects/vap/sys/sys/kdb.h#5 integrate
.. //depot/projects/vap/sys/sys/mpt_ioctl.h#1 branch
.. //depot/projects/vap/sys/vm/swap_pager.c#7 integrate
.. //depot/projects/vap/usr.bin/env/env.1#4 integrate
.. //depot/projects/vap/usr.sbin/pkg_install/Makefile.inc#3 integrate
.. //depot/projects/vap/usr.sbin/pkg_install/add/perform.c#5 integrate
.. //depot/projects/vap/usr.sbin/pkg_install/delete/perform.c#4 integrate
.. //depot/projects/vap/usr.sbin/pkg_install/lib/lib.h#4 integrate
.. //depot/projects/vap/usr.sbin/pkg_install/lib/match.c#4 integrate
.. //depot/projects/vap/usr.sbin/sade/disks.c#3 integrate
.. //depot/projects/vap/usr.sbin/sade/label.c#3 integrate
Differences ...
==== //depot/projects/vap/etc/rc.d/hostid#4 (text+ko) ====
@@ -24,7 +24,7 @@
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
-# $FreeBSD: src/etc/rc.d/hostid,v 1.8 2008/01/24 07:04:12 ru Exp $
+# $FreeBSD: src/etc/rc.d/hostid,v 1.9 2008/05/06 10:40:20 mtm Exp $
#
# PROVIDE: hostid
@@ -45,7 +45,7 @@
{
uuid=$1
# Generate hostid based on hostuuid - take first four bytes from md5(uuid).
- id=`echo -n $uuid | md5`
+ id=`echo -n $uuid | /sbin/md5`
id="0x${id%????????????????????????}"
# Set both kern.hostuuid and kern.hostid.
echo "Setting hostuuid: ${uuid}."
==== //depot/projects/vap/etc/rc.subr#4 (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.80 2008/01/26 11:22:11 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,11 +171,15 @@
{
local always
- if [ -n "$1" ] && checkyesno $1; then
+ case $1 in
+ # "yes", "true", "on", or "1"
+ [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
always=true
- else
+ ;;
+ *)
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/vap/gnu/lib/libstdc++/config.h#3 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/gnu/lib/libstdc++/config.h,v 1.15 2007/05/19 04:25:56 kan Exp $ */
+/* $FreeBSD: src/gnu/lib/libstdc++/config.h,v 1.16 2008/05/03 21:24:28 gonzo Exp $ */
#ifndef __ISO_C_VISIBLE
#include <sys/cdefs.h>
#endif
@@ -371,7 +371,7 @@
/* #undef HAVE_TANL */
/* Define to 1 if the target supports thread-local storage. */
-#if !defined(__sparc64__) && !defined(__arm__)
+#if !defined(__sparc64__) && !defined(__arm__) && !defined(__mips__)
#define HAVE_TLS 1
#endif
==== //depot/projects/vap/gnu/usr.bin/binutils/objdump/Makefile#3 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/gnu/usr.bin/binutils/objdump/Makefile,v 1.14 2004/06/16 07:09:42 obrien Exp $
+# $FreeBSD: src/gnu/usr.bin/binutils/objdump/Makefile,v 1.15 2008/05/04 04:13:35 marcel Exp $
.include "../Makefile.inc0"
@@ -6,7 +6,7 @@
PROG= objdump
SRCS= objdump.c prdbg.c
-WARNS?= 2
+WARNS?= 1
CFLAGS+= -D_GNU_SOURCE
CFLAGS+= -I${.CURDIR}/${RELTOP}/libbinutils
CFLAGS+= -I${SRCDIR}/binutils
==== //depot/projects/vap/gnu/usr.bin/sort/config.h#3 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/gnu/usr.bin/sort/config.h,v 1.8 2004/08/12 06:40:31 tjr 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 fp->_p - fp->_bf._base
+#define PENDING_OUTPUT_N_BYTES __fgetpendout(fp)
/* Define if <inttypes.h> exists and defines unusable PRI* macros. */
/* #undef PRI_MACROS_BROKEN */
==== //depot/projects/vap/include/stdio.h#6 (text+ko) ====
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)stdio.h 8.5 (Berkeley) 4/29/95
- * $FreeBSD: src/include/stdio.h,v 1.68 2008/05/03 20:09:44 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,9 +346,6 @@
int vasprintf(char **, const char *, __va_list)
__printflike(2, 0);
-void *__fgetcookie(FILE *);
-void __fsetfileno(FILE *, int);
-
/*
* The system error table contains messages for the first sys_nerr
* positive errno values. Use strerror() or strerror_r() from <string.h>
@@ -292,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/vap/lib/libc/Versions.def#4 (text) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/lib/libc/Versions.def,v 1.4 2007/12/14 20:49:06 deischen Exp $
+# $FreeBSD: src/lib/libc/Versions.def,v 1.7 2008/05/06 01:41:55 deischen Exp $
# This is our first version; it depends on no other.
# This version was first added to 7.0-current.
@@ -13,5 +13,7 @@
# strictly for use only by other FreeBSD applications and libraries
# are listed here. We use a separate namespace so we can write
# simple ABI-checking tools.
+#
+# Please do NOT increment the version of this namespace.
FBSDprivate_1.0 {
-} FBSD_1.0;
+};
==== //depot/projects/vap/lib/libc/gen/readdir.c#4 (text+ko) ====
@@ -31,7 +31,7 @@
static char sccsid[] = "@(#)readdir.c 8.3 (Berkeley) 9/29/94";
#endif /* LIBC_SCCS and not lint */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/gen/readdir.c,v 1.14 2007/12/03 14:33:50 des Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/gen/readdir.c,v 1.15 2008/05/05 14:05:23 kib Exp $");
#include "namespace.h"
#include <sys/param.h>
@@ -48,8 +48,9 @@
* get next entry in a directory.
*/
struct dirent *
-_readdir_unlocked(dirp)
+_readdir_unlocked(dirp, skip)
DIR *dirp;
+ int skip;
{
struct dirent *dp;
@@ -72,7 +73,7 @@
dp->d_reclen > dirp->dd_len + 1 - dirp->dd_loc)
return (NULL);
dirp->dd_loc += dp->d_reclen;
- if (dp->d_ino == 0)
+ if (dp->d_ino == 0 && skip)
continue;
if (dp->d_type == DT_WHT && (dirp->dd_flags & DTF_HIDEW))
continue;
@@ -88,11 +89,11 @@
if (__isthreaded) {
_pthread_mutex_lock(&dirp->dd_lock);
- dp = _readdir_unlocked(dirp);
+ dp = _readdir_unlocked(dirp, 1);
_pthread_mutex_unlock(&dirp->dd_lock);
}
else
- dp = _readdir_unlocked(dirp);
+ dp = _readdir_unlocked(dirp, 1);
return (dp);
}
@@ -109,11 +110,11 @@
errno = 0;
if (__isthreaded) {
_pthread_mutex_lock(&dirp->dd_lock);
- if ((dp = _readdir_unlocked(dirp)) != NULL)
+ if ((dp = _readdir_unlocked(dirp, 1)) != NULL)
memcpy(entry, dp, _GENERIC_DIRSIZ(dp));
_pthread_mutex_unlock(&dirp->dd_lock);
}
- else if ((dp = _readdir_unlocked(dirp)) != NULL)
+ else if ((dp = _readdir_unlocked(dirp, 1)) != NULL)
memcpy(entry, dp, _GENERIC_DIRSIZ(dp));
if (errno != 0) {
==== //depot/projects/vap/lib/libc/gen/telldir.c#4 (text+ko) ====
@@ -31,7 +31,7 @@
static char sccsid[] = "@(#)telldir.c 8.1 (Berkeley) 6/4/93";
#endif /* LIBC_SCCS and not lint */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/gen/telldir.c,v 1.10 2007/12/03 14:33:51 des Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/gen/telldir.c,v 1.11 2008/05/05 14:05:23 kib Exp $");
#include "namespace.h"
#include <sys/param.h>
@@ -98,7 +98,7 @@
dirp->dd_seek = lp->loc_seek;
dirp->dd_loc = 0;
while (dirp->dd_loc < lp->loc_loc) {
- dp = _readdir_unlocked(dirp);
+ dp = _readdir_unlocked(dirp, 0);
if (dp == NULL)
break;
}
==== //depot/projects/vap/lib/libc/gen/telldir.h#3 (text+ko) ====
@@ -29,7 +29,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/lib/libc/gen/telldir.h,v 1.2 2001/01/24 12:59:24 deischen Exp $
+ * $FreeBSD: src/lib/libc/gen/telldir.h,v 1.3 2008/05/05 14:05:23 kib Exp $
*/
#ifndef _TELLDIR_H_
@@ -59,7 +59,7 @@
long td_loccnt; /* index of entry for sequential readdir's */
};
-struct dirent *_readdir_unlocked(DIR *);
+struct dirent *_readdir_unlocked(DIR *, int);
void _reclaim_telldir(DIR *);
void _seekdir(DIR *, long);
==== //depot/projects/vap/lib/libc/stdio/Symbol.map#4 (text) ====
@@ -1,5 +1,5 @@
/*
- * $FreeBSD: src/lib/libc/stdio/Symbol.map,v 1.6 2007/12/18 23:49:05 das Exp $
+ * $FreeBSD: src/lib/libc/stdio/Symbol.map,v 1.8 2008/05/05 16:14:02 jhb Exp $
*/
FBSD_1.0 {
@@ -149,3 +149,9 @@
__printf_arginfo_vis;
__printf_render_vis;
};
+
+FBSDprivate_1.1 {
+ __fgetcookie;
+ __fgetpendout;
+ __fsetfileno;
+};
==== //depot/projects/vap/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/vap/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/vap/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/vap/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/vap/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/vap/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/vap/lib/libc/stdio/local.h#5 (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/vap/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/vap/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/vap/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.26 2008/05/03 20:09:44 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,20 +46,6 @@
#include "un-namespace.h"
#include "local.h"
-void *
-__fgetcookie(FILE *fp)
-{
-
- return (fp->_cookie);
-}
-
-void
-__fsetfileno(FILE *fp, int fd)
-{
-
- fp->_file = fd;
-}
-
/*
* Small standard I/O/seek/close functions.
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list