From owner-p4-projects@FreeBSD.ORG Fri Apr 18 02:30:29 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C35AB106567A; Fri, 18 Apr 2008 02:30:29 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 83CDB1065672 for ; Fri, 18 Apr 2008 02:30:29 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 67C388FC1A for ; Fri, 18 Apr 2008 02:30:29 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m3I2UT7I033204 for ; Fri, 18 Apr 2008 02:30:29 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m3I2UTKC033176 for perforce@freebsd.org; Fri, 18 Apr 2008 02:30:29 GMT (envelope-from marcel@freebsd.org) Date: Fri, 18 Apr 2008 02:30:29 GMT Message-Id: <200804180230.m3I2UTKC033176@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 140198 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Apr 2008 02:30:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=140198 Change 140198 by marcel@marcel_xcllnt on 2008/04/18 02:29:39 IFC @140197 Affected files ... .. //depot/projects/ia64/gnu/usr.bin/binutils/libbfd/Makefile.i386#7 integrate .. //depot/projects/ia64/include/stdio.h#24 integrate .. //depot/projects/ia64/lib/libc/stdio/_flock_stub.c#5 integrate .. //depot/projects/ia64/lib/libc/stdio/asprintf.c#7 integrate .. //depot/projects/ia64/lib/libc/stdio/fgetwc.c#8 integrate .. //depot/projects/ia64/lib/libc/stdio/fgetws.c#6 integrate .. //depot/projects/ia64/lib/libc/stdio/findfp.c#12 integrate .. //depot/projects/ia64/lib/libc/stdio/fputwc.c#8 integrate .. //depot/projects/ia64/lib/libc/stdio/fputws.c#5 integrate .. //depot/projects/ia64/lib/libc/stdio/freopen.c#10 integrate .. //depot/projects/ia64/lib/libc/stdio/fseek.c#6 integrate .. //depot/projects/ia64/lib/libc/stdio/fwide.c#2 integrate .. //depot/projects/ia64/lib/libc/stdio/local.h#14 integrate .. //depot/projects/ia64/lib/libc/stdio/refill.c#5 integrate .. //depot/projects/ia64/lib/libc/stdio/snprintf.c#8 integrate .. //depot/projects/ia64/lib/libc/stdio/sprintf.c#8 integrate .. //depot/projects/ia64/lib/libc/stdio/sscanf.c#6 integrate .. //depot/projects/ia64/lib/libc/stdio/ungetc.c#6 integrate .. //depot/projects/ia64/lib/libc/stdio/ungetwc.c#9 integrate .. //depot/projects/ia64/lib/libc/stdio/vasprintf.c#6 integrate .. //depot/projects/ia64/lib/libc/stdio/vfprintf.c#31 integrate .. //depot/projects/ia64/lib/libc/stdio/vfwprintf.c#20 integrate .. //depot/projects/ia64/lib/libc/stdio/vsnprintf.c#9 integrate .. //depot/projects/ia64/lib/libc/stdio/vsprintf.c#7 integrate .. //depot/projects/ia64/lib/libc/stdio/vsscanf.c#7 integrate .. //depot/projects/ia64/lib/libc/stdio/vswprintf.c#7 integrate .. //depot/projects/ia64/lib/libc/stdio/vswscanf.c#5 integrate .. //depot/projects/ia64/lib/libc/stdio/xprintf.c#5 integrate .. //depot/projects/ia64/sys/contrib/pf/net/pf.c#25 integrate .. //depot/projects/ia64/sys/dev/ata/ata-all.c#77 integrate .. //depot/projects/ia64/sys/dev/ata/ata-all.h#43 integrate .. //depot/projects/ia64/sys/dev/ata/ata-chipset.c#63 integrate .. //depot/projects/ia64/sys/dev/ata/ata-disk.c#55 integrate .. //depot/projects/ia64/sys/dev/ata/ata-dma.c#48 integrate .. //depot/projects/ia64/sys/dev/ata/ata-lowlevel.c#41 integrate .. //depot/projects/ia64/sys/dev/ata/ata-pci.c#56 integrate .. //depot/projects/ia64/sys/dev/ata/ata-queue.c#31 integrate .. //depot/projects/ia64/sys/dev/ata/ata-raid.c#45 integrate .. //depot/projects/ia64/sys/dev/ata/atapi-cam.c#36 integrate .. //depot/projects/ia64/sys/dev/ata/atapi-cd.c#57 integrate .. //depot/projects/ia64/sys/dev/ata/atapi-fd.c#32 integrate .. //depot/projects/ia64/sys/dev/ata/atapi-tape.c#32 integrate .. //depot/projects/ia64/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c#3 integrate .. //depot/projects/ia64/sys/dev/if_ndis/if_ndis.c#31 integrate .. //depot/projects/ia64/sys/dev/if_ndis/if_ndisvar.h#16 integrate .. //depot/projects/ia64/sys/ia64/include/vmparam.h#24 integrate .. //depot/projects/ia64/sys/kern/kern_intr.c#52 integrate .. //depot/projects/ia64/sys/kern/kern_linker.c#49 integrate .. //depot/projects/ia64/sys/kern/kern_subr.c#39 integrate .. //depot/projects/ia64/sys/kern/kern_switch.c#54 integrate .. //depot/projects/ia64/sys/kern/kern_synch.c#77 integrate .. //depot/projects/ia64/sys/kern/kern_thread.c#107 integrate .. //depot/projects/ia64/sys/kern/sched_4bsd.c#47 integrate .. //depot/projects/ia64/sys/kern/sched_ule.c#59 integrate .. //depot/projects/ia64/sys/kern/subr_sleepqueue.c#23 integrate .. //depot/projects/ia64/sys/kern/subr_trap.c#63 integrate .. //depot/projects/ia64/sys/kern/subr_turnstile.c#22 integrate .. //depot/projects/ia64/sys/kern/subr_witness.c#69 integrate .. //depot/projects/ia64/sys/netinet/in.h#35 integrate .. //depot/projects/ia64/sys/netinet/in_mcast.c#2 integrate .. //depot/projects/ia64/sys/netinet/in_pcb.c#58 integrate .. //depot/projects/ia64/sys/netinet/in_pcb.h#38 integrate .. //depot/projects/ia64/sys/netinet/ip_divert.c#42 integrate .. //depot/projects/ia64/sys/netinet/ip_fw2.c#72 integrate .. //depot/projects/ia64/sys/netinet/ip_icmp.c#36 integrate .. //depot/projects/ia64/sys/netinet/ip_options.c#6 integrate .. //depot/projects/ia64/sys/netinet/ip_output.c#66 integrate .. //depot/projects/ia64/sys/netinet/raw_ip.c#56 integrate .. //depot/projects/ia64/sys/netinet/tcp_input.c#82 integrate .. //depot/projects/ia64/sys/netinet/tcp_output.c#45 integrate .. //depot/projects/ia64/sys/netinet/tcp_reass.c#3 integrate .. //depot/projects/ia64/sys/netinet/tcp_sack.c#17 integrate .. //depot/projects/ia64/sys/netinet/tcp_subr.c#68 integrate .. //depot/projects/ia64/sys/netinet/tcp_syncache.c#54 integrate .. //depot/projects/ia64/sys/netinet/tcp_timer.c#34 integrate .. //depot/projects/ia64/sys/netinet/tcp_timewait.c#4 integrate .. //depot/projects/ia64/sys/netinet/tcp_usrreq.c#43 integrate .. //depot/projects/ia64/sys/netinet/udp_usrreq.c#55 integrate .. //depot/projects/ia64/sys/netinet6/icmp6.c#37 integrate .. //depot/projects/ia64/sys/netinet6/in6_pcb.c#38 integrate .. //depot/projects/ia64/sys/netinet6/in6_src.c#27 integrate .. //depot/projects/ia64/sys/netinet6/raw_ip6.c#32 integrate .. //depot/projects/ia64/sys/netinet6/udp6_usrreq.c#36 integrate .. //depot/projects/ia64/sys/security/audit/audit_arg.c#12 integrate .. //depot/projects/ia64/sys/security/mac/mac_inet.c#8 integrate .. //depot/projects/ia64/sys/sparc64/pci/apb.c#12 integrate .. //depot/projects/ia64/sys/sparc64/pci/ofw_pci_if.m#8 integrate .. //depot/projects/ia64/sys/sparc64/pci/ofw_pcib.c#8 integrate .. //depot/projects/ia64/sys/sparc64/pci/ofw_pcib_subr.c#8 integrate .. //depot/projects/ia64/sys/sparc64/pci/ofw_pcib_subr.h#4 integrate .. //depot/projects/ia64/sys/sparc64/pci/ofw_pcibus.c#13 integrate .. //depot/projects/ia64/sys/sparc64/pci/psycho.c#45 integrate .. //depot/projects/ia64/sys/sparc64/pci/psychovar.h#16 integrate .. //depot/projects/ia64/sys/sys/proc.h#117 integrate .. //depot/projects/ia64/sys/sys/sched.h#21 integrate .. //depot/projects/ia64/sys/sys/sysctl.h#39 integrate .. //depot/projects/ia64/sys/sys/termios.h#5 integrate .. //depot/projects/ia64/sys/vm/vm_glue.c#61 integrate .. //depot/projects/ia64/sys/vm/vm_zeroidle.c#28 integrate .. //depot/projects/ia64/usr.bin/env/env.1#7 integrate .. //depot/projects/ia64/usr.bin/env/env.c#10 integrate Differences ... ==== //depot/projects/ia64/gnu/usr.bin/binutils/libbfd/Makefile.i386#7 (text+ko) ==== @@ -1,12 +1,19 @@ -# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.i386,v 1.17 2004/07/08 17:05:32 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.i386,v 1.18 2008/04/17 23:36:35 marcel Exp $ DEFAULT_VECTOR= bfd_elf32_i386_freebsd_vec -SRCS+= cpu-i386.c \ +SRCS+= cofflink.c \ + cpu-i386.c \ + efi-app-ia32.c \ elf32-i386.c \ elf32-target.h \ elf32.c \ - elflink.c + elflink.c \ + peigen.c VECS= ${DEFAULT_VECTOR} \ - bfd_elf32_i386_vec + bfd_elf32_i386_vec \ + bfd_efi_app_ia32_vec + +peigen.c: peXXigen.c + sed -e s/XX/pe/g ${.ALLSRC} > ${.TARGET} ==== //depot/projects/ia64/include/stdio.h#24 (text+ko) ==== @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)stdio.h 8.5 (Berkeley) 4/29/95 - * $FreeBSD: src/include/stdio.h,v 1.62 2008/03/31 12:14:04 kib Exp $ + * $FreeBSD: src/include/stdio.h,v 1.64 2008/04/17 22:17:53 jhb Exp $ */ #ifndef _STDIO_H_ @@ -72,9 +72,6 @@ int _size; }; -/* hold a buncha junk that would grow the ABI */ -struct __sFILEX; - /* * stdio state variables. * @@ -98,15 +95,19 @@ * 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 */ + 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 */ + int _lbfsize; /* (*) 0 or -_bf._size, for inline putc */ /* operations */ void *_cookie; /* cookie passed to io functions */ @@ -117,7 +118,7 @@ /* separate buffer for long sequences of ungetc() */ struct __sbuf _ub; /* ungetc buffer */ - struct __sFILEX *_extra; /* additions to FILE to not break ABI */ + 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 */ @@ -130,6 +131,12 @@ /* 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 ==== //depot/projects/ia64/lib/libc/stdio/_flock_stub.c#5 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/_flock_stub.c,v 1.15 2007/01/12 07:31:30 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/_flock_stub.c,v 1.16 2008/04/17 22:17:53 jhb Exp $"); #include "namespace.h" #include @@ -55,31 +55,21 @@ __weak_reference(_ftrylockfile, ftrylockfile); __weak_reference(_funlockfile, funlockfile); -/* - * We need to retain binary compatibility for a while. So pretend - * that _lock is part of FILE * even though it is dereferenced off - * _extra now. When we stop encoding the size of FILE into binaries - * this can be changed in stdio.h. This will reduce the amount of - * code that has to change in the future (just remove this comment - * and #define). - */ -#define _lock _extra - void _flockfile(FILE *fp) { pthread_t curthread = _pthread_self(); - if (fp->_lock->fl_owner == curthread) - fp->_lock->fl_count++; + if (fp->_fl_owner == curthread) + fp->_fl_count++; else { /* * Make sure this mutex is treated as a private * internal mutex: */ - _pthread_mutex_lock(&fp->_lock->fl_mutex); - fp->_lock->fl_owner = curthread; - fp->_lock->fl_count = 1; + _pthread_mutex_lock(&fp->_fl_mutex); + fp->_fl_owner = curthread; + fp->_fl_count = 1; } } @@ -98,15 +88,15 @@ pthread_t curthread = _pthread_self(); int ret = 0; - if (fp->_lock->fl_owner == curthread) - fp->_lock->fl_count++; + if (fp->_fl_owner == curthread) + fp->_fl_count++; /* * Make sure this mutex is treated as a private * internal mutex: */ - else if (_pthread_mutex_trylock(&fp->_lock->fl_mutex) == 0) { - fp->_lock->fl_owner = curthread; - fp->_lock->fl_count = 1; + else if (_pthread_mutex_trylock(&fp->_fl_mutex) == 0) { + fp->_fl_owner = curthread; + fp->_fl_count = 1; } else ret = -1; @@ -121,26 +111,26 @@ /* * Check if this file is owned by the current thread: */ - if (fp->_lock->fl_owner == curthread) { + if (fp->_fl_owner == curthread) { /* * Check if this thread has locked the FILE * more than once: */ - if (fp->_lock->fl_count > 1) + if (fp->_fl_count > 1) /* * Decrement the count of the number of * times the running thread has locked this * file: */ - fp->_lock->fl_count--; + fp->_fl_count--; else { /* * The running thread will release the * lock now: */ - fp->_lock->fl_count = 0; - fp->_lock->fl_owner = NULL; - _pthread_mutex_unlock(&fp->_lock->fl_mutex); + fp->_fl_count = 0; + fp->_fl_owner = NULL; + _pthread_mutex_unlock(&fp->_fl_mutex); } } } ==== //depot/projects/ia64/lib/libc/stdio/asprintf.c#7 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/asprintf.c,v 1.13 2002/09/26 13:09:48 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/asprintf.c,v 1.14 2008/04/17 22:17:53 jhb Exp $"); #include #include @@ -43,7 +43,6 @@ int ret; va_list ap; FILE f; - struct __sFILEX ext; f._file = -1; f._flags = __SWR | __SSTR | __SALC; @@ -54,8 +53,8 @@ return (-1); } f._bf._size = f._w = 127; /* Leave room for the NUL */ - f._extra = &ext; - INITEXTRA(&f); + f._orientation = 0; + memset(&f._mbstate, 0, sizeof(mbstate_t)); va_start(ap, fmt); ret = __vfprintf(&f, fmt, ap); /* Use unlocked __vfprintf */ va_end(ap); ==== //depot/projects/ia64/lib/libc/stdio/fgetwc.c#8 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/fgetwc.c,v 1.12 2004/07/20 08:27:27 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/fgetwc.c,v 1.13 2008/04/17 22:17:53 jhb Exp $"); #include "namespace.h" #include @@ -71,7 +71,7 @@ return (wc); } do { - nconv = __mbrtowc(&wc, fp->_p, fp->_r, &fp->_extra->mbstate); + nconv = __mbrtowc(&wc, fp->_p, fp->_r, &fp->_mbstate); if (nconv == (size_t)-1) break; else if (nconv == (size_t)-2) ==== //depot/projects/ia64/lib/libc/stdio/fgetws.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/fgetws.c,v 1.6 2004/10/03 15:48:32 stefanf Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/fgetws.c,v 1.7 2008/04/17 22:17:53 jhb Exp $"); #include "namespace.h" #include @@ -62,7 +62,7 @@ nl = memchr(fp->_p, '\n', fp->_r); nconv = __mbsnrtowcs(wsp, &src, nl != NULL ? (nl - fp->_p + 1) : fp->_r, - n - 1, &fp->_extra->mbstate); + n - 1, &fp->_mbstate); if (nconv == (size_t)-1) /* Conversion error */ goto error; @@ -86,7 +86,7 @@ if (wsp == ws) /* EOF */ goto error; - if (!__mbsinit(&fp->_extra->mbstate)) + if (!__mbsinit(&fp->_mbstate)) /* Incomplete character */ goto error; *wsp++ = L'\0'; ==== //depot/projects/ia64/lib/libc/stdio/findfp.c#12 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)findfp.c 8.2 (Berkeley) 1/4/94"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/findfp.c,v 1.31 2007/01/09 00:28:06 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/findfp.c,v 1.32 2008/04/17 22:17:53 jhb Exp $"); #include #include @@ -54,36 +54,19 @@ #define NDYNAMIC 10 /* add ten more whenever necessary */ #define std(flags, file) \ - {0,0,0,flags,file,{0},0,__sF+file,__sclose,__sread,__sseek,__swrite, \ - {0}, __sFX + file} + {0,0,0,flags,file,{0},0,__sF+file,__sclose,__sread,__sseek,__swrite} /* p r w flags file _bf z cookie close read seek write */ - /* _ub _extra */ + /* the usual - (stdin + stdout + stderr) */ static FILE usual[FOPEN_MAX - 3]; -static struct __sFILEX usual_extra[FOPEN_MAX - 3]; static struct glue uglue = { NULL, FOPEN_MAX - 3, usual }; -static struct __sFILEX __sFX[3]; - -/* - * We can't make this 'static' until 6.0-current due to binary - * compatibility concerns. This also means we cannot change the - * sizeof(FILE) until that time either and must continue to use the - * __sFILEX stuff to add to FILE. - */ -FILE __sF[3] = { +static FILE __sF[3] = { std(__SRD, STDIN_FILENO), std(__SWR, STDOUT_FILENO), std(__SWR|__SNBF, STDERR_FILENO) }; -/* - * The following kludge is done to ensure enough binary compatibility - * with future versions of libc. Or rather it allows us to work with - * libraries that have been built with a newer libc that defines these - * symbols and expects libc to provide them. We only have need to support - * i386 because it is the only "old" system we have deployed. - */ FILE *__stdinp = &__sF[0]; FILE *__stdoutp = &__sF[1]; FILE *__stderrp = &__sF[2]; @@ -109,25 +92,17 @@ { struct glue *g; static FILE empty; - static struct __sFILEX emptyx; FILE *p; - struct __sFILEX *fx; - g = (struct glue *)malloc(sizeof(*g) + ALIGNBYTES + n * sizeof(FILE) + - n * sizeof(struct __sFILEX)); + g = (struct glue *)malloc(sizeof(*g) + ALIGNBYTES + n * sizeof(FILE)); if (g == NULL) return (NULL); p = (FILE *)ALIGN(g + 1); - fx = (struct __sFILEX *)&p[n]; g->next = NULL; g->niobs = n; g->iobs = p; - while (--n >= 0) { - *p = empty; - p->_extra = fx; - *p->_extra = emptyx; - p++, fx++; - } + while (--n >= 0) + *p++ = empty; return (g); } @@ -175,8 +150,8 @@ fp->_lb._base = NULL; /* no line buffer */ fp->_lb._size = 0; /* fp->_lock = NULL; */ /* once set always set (reused) */ - fp->_extra->orientation = 0; - memset(&fp->_extra->mbstate, 0, sizeof(mbstate_t)); + fp->_orientation = 0; + memset(&fp->_mbstate, 0, sizeof(mbstate_t)); return (fp); } @@ -229,17 +204,8 @@ void __sinit() { - int i; - THREAD_LOCK(); - if (__sdidinit == 0) { - /* Set _extra for the usual suspects. */ - for (i = 0; i < FOPEN_MAX - 3; i++) - usual[i]._extra = &usual_extra[i]; - - /* Make sure we clean up on exit. */ - __cleanup = _cleanup; /* conservative */ - __sdidinit = 1; - } - THREAD_UNLOCK(); + /* Make sure we clean up on exit. */ + __cleanup = _cleanup; /* conservative */ + __sdidinit = 1; } ==== //depot/projects/ia64/lib/libc/stdio/fputwc.c#8 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/fputwc.c,v 1.10 2004/07/20 08:27:27 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/fputwc.c,v 1.11 2008/04/17 22:17:53 jhb Exp $"); #include "namespace.h" #include @@ -56,8 +56,7 @@ *buf = (unsigned char)wc; len = 1; } else { - if ((len = __wcrtomb(buf, wc, &fp->_extra->mbstate)) == - (size_t)-1) { + if ((len = __wcrtomb(buf, wc, &fp->_mbstate)) == (size_t)-1) { fp->_flags |= __SERR; return (WEOF); } ==== //depot/projects/ia64/lib/libc/stdio/fputws.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/fputws.c,v 1.6 2004/07/21 10:54:57 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/fputws.c,v 1.7 2008/04/17 22:17:53 jhb Exp $"); #include "namespace.h" #include @@ -55,7 +55,7 @@ iov.iov_base = buf; do { nbytes = __wcsnrtombs(buf, &ws, SIZE_T_MAX, sizeof(buf), - &fp->_extra->mbstate); + &fp->_mbstate); if (nbytes == (size_t)-1) goto error; iov.iov_len = uio.uio_resid = nbytes; ==== //depot/projects/ia64/lib/libc/stdio/freopen.c#10 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)freopen.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/freopen.c,v 1.20 2008/02/27 21:25:19 jhb Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/freopen.c,v 1.21 2008/04/17 22:17:54 jhb Exp $"); #include "namespace.h" #include @@ -182,8 +182,8 @@ if (HASLB(fp)) FREELB(fp); fp->_lb._size = 0; - fp->_extra->orientation = 0; - memset(&fp->_extra->mbstate, 0, sizeof(mbstate_t)); + fp->_orientation = 0; + memset(&fp->_mbstate, 0, sizeof(mbstate_t)); if (f < 0) { /* did not get it after all */ fp->_flags = 0; /* set it free */ ==== //depot/projects/ia64/lib/libc/stdio/fseek.c#6 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)fseek.c 8.3 (Berkeley) 1/2/94"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/fseek.c,v 1.43 2007/06/18 02:09:08 ache Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/fseek.c,v 1.44 2008/04/17 22:17:54 jhb Exp $"); #include "namespace.h" #include @@ -233,7 +233,7 @@ */ if (HASUB(fp)) { curoff += fp->_r; /* kill off ungetc */ - n = fp->_extra->_up - fp->_bf._base; + n = fp->_up - fp->_bf._base; curoff -= n; n += fp->_ur; } else { @@ -255,7 +255,7 @@ if (HASUB(fp)) FREEUB(fp); fp->_flags &= ~__SEOF; - memset(&fp->_extra->mbstate, 0, sizeof(mbstate_t)); + memset(&fp->_mbstate, 0, sizeof(mbstate_t)); return (0); } @@ -283,7 +283,7 @@ fp->_r -= n; } fp->_flags &= ~__SEOF; - memset(&fp->_extra->mbstate, 0, sizeof(mbstate_t)); + memset(&fp->_mbstate, 0, sizeof(mbstate_t)); return (0); /* @@ -306,6 +306,6 @@ fp->_r = 0; /* fp->_w = 0; */ /* unnecessary (I think...) */ fp->_flags &= ~__SEOF; - memset(&fp->_extra->mbstate, 0, sizeof(mbstate_t)); + memset(&fp->_mbstate, 0, sizeof(mbstate_t)); return (0); } ==== //depot/projects/ia64/lib/libc/stdio/fwide.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/fwide.c,v 1.1 2002/08/13 09:30:41 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/fwide.c,v 1.2 2008/04/17 22:17:54 jhb Exp $"); #include "namespace.h" #include @@ -42,9 +42,9 @@ FLOCKFILE(fp); /* Only change the orientation if the stream is not oriented yet. */ - if (mode != 0 && fp->_extra->orientation == 0) - fp->_extra->orientation = mode > 0 ? 1 : -1; - m = fp->_extra->orientation; + if (mode != 0 && fp->_orientation == 0) + fp->_orientation = mode > 0 ? 1 : -1; + m = fp->_orientation; FUNLOCKFILE(fp); return (m); ==== //depot/projects/ia64/lib/libc/stdio/local.h#14 (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.30 2007/01/09 00:28:06 imp Exp $ + * $FreeBSD: src/lib/libc/stdio/local.h,v 1.31 2008/04/17 22:17:54 jhb Exp $ */ #include /* for off_t */ @@ -80,16 +80,6 @@ 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 @@ (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) ==== //depot/projects/ia64/lib/libc/stdio/refill.c#5 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)refill.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/refill.c,v 1.19 2007/01/09 00:28:07 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/refill.c,v 1.20 2008/04/17 22:17:54 jhb Exp $"); #include "namespace.h" #include @@ -106,7 +106,7 @@ if (HASUB(fp)) { FREEUB(fp); if ((fp->_r = fp->_ur) != 0) { - fp->_p = fp->_extra->_up; + fp->_p = fp->_up; return (0); } } ==== //depot/projects/ia64/lib/libc/stdio/snprintf.c#8 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)snprintf.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/snprintf.c,v 1.21 2007/01/09 00:28:07 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/snprintf.c,v 1.22 2008/04/17 22:17:54 jhb Exp $"); #include #include @@ -49,7 +49,6 @@ int ret; va_list ap; FILE f; - struct __sFILEX ext; on = n; if (n != 0) @@ -61,8 +60,8 @@ f._flags = __SWR | __SSTR; f._bf._base = f._p = (unsigned char *)str; f._bf._size = f._w = n; - f._extra = &ext; - INITEXTRA(&f); + f._orientation = 0; + memset(&f._mbstate, 0, sizeof(mbstate_t)); ret = __vfprintf(&f, fmt, ap); if (on > 0) *f._p = '\0'; ==== //depot/projects/ia64/lib/libc/stdio/sprintf.c#8 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)sprintf.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/sprintf.c,v 1.15 2007/01/09 00:28:07 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/sprintf.c,v 1.16 2008/04/17 22:17:54 jhb Exp $"); #include #include @@ -47,14 +47,13 @@ int ret; va_list ap; FILE f; - struct __sFILEX ext; f._file = -1; f._flags = __SWR | __SSTR; f._bf._base = f._p = (unsigned char *)str; f._bf._size = f._w = INT_MAX; - f._extra = &ext; - INITEXTRA(&f); + f._orientation = 0; + memset(&f._mbstate, 0, sizeof(mbstate_t)); va_start(ap, fmt); ret = __vfprintf(&f, fmt, ap); va_end(ap); ==== //depot/projects/ia64/lib/libc/stdio/sscanf.c#6 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)sscanf.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/sscanf.c,v 1.12 2007/01/09 00:28:07 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/sscanf.c,v 1.13 2008/04/17 22:17:54 jhb Exp $"); #include #include @@ -59,7 +59,6 @@ { int ret; va_list ap; - struct __sFILEX extra; FILE f; f._file = -1; @@ -69,8 +68,8 @@ f._read = eofread; f._ub._base = NULL; f._lb._base = NULL; - f._extra = &extra; - INITEXTRA(&f); + f._orientation = 0; + memset(&f._mbstate, 0, sizeof(mbstate_t)); va_start(ap, fmt); ret = __svfscanf(&f, fmt, ap); va_end(ap); ==== //depot/projects/ia64/lib/libc/stdio/ungetc.c#6 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)ungetc.c 8.2 (Berkeley) 11/3/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/ungetc.c,v 1.17 2007/01/09 00:28:07 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/ungetc.c,v 1.18 2008/04/17 22:17:54 jhb Exp $"); #include "namespace.h" #include @@ -158,7 +158,7 @@ * Initially, we will use the `reserve' buffer. */ fp->_ur = fp->_r; - fp->_extra->_up = fp->_p; + fp->_up = fp->_p; fp->_ub._base = fp->_ubuf; fp->_ub._size = sizeof(fp->_ubuf); fp->_ubuf[sizeof(fp->_ubuf) - 1] = c; ==== //depot/projects/ia64/lib/libc/stdio/ungetwc.c#9 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/ungetwc.c,v 1.10 2005/08/20 07:59:13 stefanf Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/ungetwc.c,v 1.11 2008/04/17 22:17:54 jhb Exp $"); #include "namespace.h" #include @@ -49,7 +49,7 @@ if (wc == WEOF) return (WEOF); - if ((len = __wcrtomb(buf, wc, &fp->_extra->mbstate)) == (size_t)-1) { + if ((len = __wcrtomb(buf, wc, &fp->_mbstate)) == (size_t)-1) { fp->_flags |= __SERR; return (WEOF); } ==== //depot/projects/ia64/lib/libc/stdio/vasprintf.c#6 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/vasprintf.c,v 1.18 2002/09/26 13:11:24 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/vasprintf.c,v 1.19 2008/04/17 22:17:54 jhb Exp $"); #include #include @@ -43,7 +43,6 @@ { int ret; FILE f; - struct __sFILEX ext; f._file = -1; f._flags = __SWR | __SSTR | __SALC; @@ -54,8 +53,8 @@ return (-1); } f._bf._size = f._w = 127; /* Leave room for the NUL */ - f._extra = &ext; - INITEXTRA(&f); + f._orientation = 0; + memset(&f._mbstate, 0, sizeof(mbstate_t)); ret = __vfprintf(&f, fmt, ap); if (ret < 0) { free(f._bf._base); ==== //depot/projects/ia64/lib/libc/stdio/vfprintf.c#31 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)vfprintf.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/vfprintf.c,v 1.77 2007/05/08 03:08:28 das Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/vfprintf.c,v 1.78 2008/04/17 22:17:54 jhb Exp $"); /* * Actual printf innards. @@ -149,7 +149,8 @@ fake._file = fp->_file; fake._cookie = fp->_cookie; fake._write = fp->_write; - fake._extra = fp->_extra; + fake._orientation = fp->_orientation; + fake._mbstate = fp->_mbstate; /* set up the buffer */ fake._bf._base = fake._p = buf; ==== //depot/projects/ia64/lib/libc/stdio/vfwprintf.c#20 (text+ko) ==== @@ -36,7 +36,7 @@ #endif /* LIBC_SCCS and not lint */ #endif #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/vfwprintf.c,v 1.28 2007/12/18 01:20:33 das Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/vfwprintf.c,v 1.29 2008/04/17 22:17:54 jhb Exp $"); /* * Actual wprintf innards. @@ -132,7 +132,8 @@ fake._file = fp->_file; fake._cookie = fp->_cookie; fake._write = fp->_write; - fake._extra = fp->_extra; + fake._orientation = fp->_orientation; + fake._mbstate = fp->_mbstate; /* set up the buffer */ fake._bf._base = fake._p = buf; ==== //depot/projects/ia64/lib/libc/stdio/vsnprintf.c#9 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)vsnprintf.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/vsnprintf.c,v 1.23 2007/01/09 00:28:08 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/vsnprintf.c,v 1.24 2008/04/17 22:17:54 jhb Exp $"); #include #include @@ -48,7 +48,6 @@ int ret; char dummy[2]; FILE f; - struct __sFILEX ext; on = n; if (n != 0) @@ -66,8 +65,8 @@ f._flags = __SWR | __SSTR; f._bf._base = f._p = (unsigned char *)str; f._bf._size = f._w = n; - f._extra = &ext; - INITEXTRA(&f); + f._orientation = 0; + memset(&f._mbstate, 0, sizeof(mbstate_t)); ret = __vfprintf(&f, fmt, ap); if (on > 0) *f._p = '\0'; ==== //depot/projects/ia64/lib/libc/stdio/vsprintf.c#7 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)vsprintf.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/vsprintf.c,v 1.15 2007/01/09 00:28:08 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/vsprintf.c,v 1.16 2008/04/17 22:17:54 jhb Exp $"); #include #include @@ -45,14 +45,13 @@ { int ret; FILE f; - struct __sFILEX ext; f._file = -1; f._flags = __SWR | __SSTR; f._bf._base = f._p = (unsigned char *)str; f._bf._size = f._w = INT_MAX; - f._extra = &ext; - INITEXTRA(&f); + f._orientation = 0; + memset(&f._mbstate, 0, sizeof(mbstate_t)); ret = __vfprintf(&f, fmt, ap); *f._p = 0; return (ret); ==== //depot/projects/ia64/lib/libc/stdio/vsscanf.c#7 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)vsscanf.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/vsscanf.c,v 1.13 2007/01/09 00:28:08 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/vsscanf.c,v 1.14 2008/04/17 22:17:54 jhb Exp $"); #include #include @@ -61,7 +61,6 @@ __va_list ap; { FILE f; - struct __sFILEX ext; >>> TRUNCATED FOR MAIL (1000 lines) <<<