Date: Thu, 14 Apr 2005 01:50:04 GMT From: David Xu <davidxu@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 75114 for review Message-ID: <200504140150.j3E1o4HQ008805@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=75114 Change 75114 by davidxu@davidxu_celeron on 2005/04/14 01:49:18 IFC. Affected files ... .. //depot/projects/davidxu_thread/src/games/fortune/datfiles/fortunes#9 integrate .. //depot/projects/davidxu_thread/src/lib/libc/i386/gen/_set_tp.c#2 integrate .. //depot/projects/davidxu_thread/src/lib/libc/i386/sys/Makefile.inc#2 integrate .. //depot/projects/davidxu_thread/src/lib/libc/i386/sys/i386_get_fsbase.c#1 branch .. //depot/projects/davidxu_thread/src/lib/libc/i386/sys/i386_get_gsbase.c#1 branch .. //depot/projects/davidxu_thread/src/lib/libc/i386/sys/i386_set_fsbase.c#1 branch .. //depot/projects/davidxu_thread/src/lib/libc/i386/sys/i386_set_gsbase.c#1 branch .. //depot/projects/davidxu_thread/src/lib/libdisk/disk.c#3 integrate .. //depot/projects/davidxu_thread/src/lib/libpthread/arch/i386/i386/pthread_md.c#2 integrate .. //depot/projects/davidxu_thread/src/lib/libpthread/arch/i386/include/pthread_md.h#2 integrate .. //depot/projects/davidxu_thread/src/lib/libthr/arch/i386/i386/pthread_md.c#2 integrate .. //depot/projects/davidxu_thread/src/lib/libthr/arch/i386/include/pthread_md.h#2 integrate .. //depot/projects/davidxu_thread/src/lib/libthread_db/libthr_db.c#14 integrate .. //depot/projects/davidxu_thread/src/libexec/rtld-elf/i386/reloc.c#2 integrate .. //depot/projects/davidxu_thread/src/sbin/sysctl/sysctl.c#3 integrate .. //depot/projects/davidxu_thread/src/share/Makefile#2 integrate .. //depot/projects/davidxu_thread/src/share/examples/etc/make.conf#8 integrate .. //depot/projects/davidxu_thread/src/share/man/man5/make.conf.5#7 integrate .. //depot/projects/davidxu_thread/src/sys/amd64/conf/GENERIC#6 integrate .. //depot/projects/davidxu_thread/src/sys/arm/sa11x0/sa11x0_io.c#3 integrate .. //depot/projects/davidxu_thread/src/sys/coda/coda_vnops.c#7 integrate .. //depot/projects/davidxu_thread/src/sys/compat/linux/linux_file.c#4 integrate .. //depot/projects/davidxu_thread/src/sys/compat/linux/linux_getcwd.c#4 integrate .. //depot/projects/davidxu_thread/src/sys/compat/linux/linux_ioctl.c#4 integrate .. //depot/projects/davidxu_thread/src/sys/conf/Makefile.alpha#5 integrate .. //depot/projects/davidxu_thread/src/sys/conf/Makefile.amd64#5 integrate .. //depot/projects/davidxu_thread/src/sys/conf/Makefile.arm#5 integrate .. //depot/projects/davidxu_thread/src/sys/conf/Makefile.i386#5 integrate .. //depot/projects/davidxu_thread/src/sys/conf/Makefile.ia64#5 integrate .. //depot/projects/davidxu_thread/src/sys/conf/Makefile.pc98#6 integrate .. //depot/projects/davidxu_thread/src/sys/conf/Makefile.powerpc#5 integrate .. //depot/projects/davidxu_thread/src/sys/conf/Makefile.sparc64#5 integrate .. //depot/projects/davidxu_thread/src/sys/conf/kern.pre.mk#4 integrate .. //depot/projects/davidxu_thread/src/sys/contrib/pf/net/pf.c#6 integrate .. //depot/projects/davidxu_thread/src/sys/dev/aic/aic_cbus.c#2 integrate .. //depot/projects/davidxu_thread/src/sys/dev/ata/ata-card.c#5 integrate .. //depot/projects/davidxu_thread/src/sys/dev/ata/ata-cbus.c#4 integrate .. //depot/projects/davidxu_thread/src/sys/dev/ata/ata-isa.c#4 integrate .. //depot/projects/davidxu_thread/src/sys/dev/dpt/dpt_pci.c#5 integrate .. //depot/projects/davidxu_thread/src/sys/dev/ed/if_ed98.h#3 integrate .. //depot/projects/davidxu_thread/src/sys/dev/ep/if_ep.c#3 integrate .. //depot/projects/davidxu_thread/src/sys/dev/ida/ida.c#3 integrate .. //depot/projects/davidxu_thread/src/sys/dev/ida/ida_eisa.c#3 integrate .. //depot/projects/davidxu_thread/src/sys/dev/ida/ida_pci.c#5 integrate .. //depot/projects/davidxu_thread/src/sys/dev/ida/idareg.h#2 integrate .. //depot/projects/davidxu_thread/src/sys/dev/ida/idavar.h#3 integrate .. //depot/projects/davidxu_thread/src/sys/dev/pccbb/pccbb_pci.c#6 integrate .. //depot/projects/davidxu_thread/src/sys/dev/pci/pci_user.c#3 integrate .. //depot/projects/davidxu_thread/src/sys/dev/pci/pcib_if.m#3 integrate .. //depot/projects/davidxu_thread/src/sys/dev/sound/pci/es137x.c#5 integrate .. //depot/projects/davidxu_thread/src/sys/dev/sound/usb/uaudio_pcm.c#6 integrate .. //depot/projects/davidxu_thread/src/sys/fs/devfs/devfs_vnops.c#10 integrate .. //depot/projects/davidxu_thread/src/sys/fs/hpfs/hpfs_vnops.c#7 integrate .. //depot/projects/davidxu_thread/src/sys/fs/msdosfs/msdosfs_lookup.c#4 integrate .. //depot/projects/davidxu_thread/src/sys/fs/nwfs/nwfs_vnops.c#6 integrate .. //depot/projects/davidxu_thread/src/sys/fs/pseudofs/pseudofs_vnops.c#7 integrate .. //depot/projects/davidxu_thread/src/sys/fs/smbfs/smbfs_vnops.c#9 integrate .. //depot/projects/davidxu_thread/src/sys/fs/udf/udf_vnops.c#7 integrate .. //depot/projects/davidxu_thread/src/sys/fs/unionfs/union_vnops.c#9 integrate .. //depot/projects/davidxu_thread/src/sys/gnu/ext2fs/ext2_lookup.c#4 integrate .. //depot/projects/davidxu_thread/src/sys/i386/i386/genassym.c#3 integrate .. //depot/projects/davidxu_thread/src/sys/i386/i386/machdep.c#8 integrate .. //depot/projects/davidxu_thread/src/sys/i386/i386/mp_machdep.c#6 integrate .. //depot/projects/davidxu_thread/src/sys/i386/i386/swtch.s#2 integrate .. //depot/projects/davidxu_thread/src/sys/i386/i386/sys_machdep.c#5 integrate .. //depot/projects/davidxu_thread/src/sys/i386/i386/vm86bios.s#2 integrate .. //depot/projects/davidxu_thread/src/sys/i386/include/clock.h#5 integrate .. //depot/projects/davidxu_thread/src/sys/i386/include/pc/display.h#2 integrate .. //depot/projects/davidxu_thread/src/sys/i386/include/pcb.h#2 integrate .. //depot/projects/davidxu_thread/src/sys/i386/include/pcpu.h#4 integrate .. //depot/projects/davidxu_thread/src/sys/i386/include/segments.h#2 integrate .. //depot/projects/davidxu_thread/src/sys/i386/include/sysarch.h#3 integrate .. //depot/projects/davidxu_thread/src/sys/i386/linux/linux.h#2 integrate .. //depot/projects/davidxu_thread/src/sys/isofs/cd9660/cd9660_lookup.c#3 integrate .. //depot/projects/davidxu_thread/src/sys/kern/tty.c#7 integrate .. //depot/projects/davidxu_thread/src/sys/kern/vfs_cache.c#5 integrate .. //depot/projects/davidxu_thread/src/sys/kern/vfs_lookup.c#8 integrate .. //depot/projects/davidxu_thread/src/sys/kern/vfs_subr.c#12 integrate .. //depot/projects/davidxu_thread/src/sys/net/iso88025.h#3 integrate .. //depot/projects/davidxu_thread/src/sys/netgraph/ng_cisco.c#5 integrate .. //depot/projects/davidxu_thread/src/sys/nfs4client/nfs4_vnops.c#8 integrate .. //depot/projects/davidxu_thread/src/sys/nfsclient/nfs_vnops.c#10 integrate .. //depot/projects/davidxu_thread/src/sys/pc98/i386/machdep.c#9 integrate .. //depot/projects/davidxu_thread/src/sys/pc98/include/bus_memio.h#2 integrate .. //depot/projects/davidxu_thread/src/sys/pc98/include/bus_pio.h#2 integrate .. //depot/projects/davidxu_thread/src/sys/pc98/include/clock.h#2 integrate .. //depot/projects/davidxu_thread/src/sys/pc98/include/pc/display.h#2 integrate .. //depot/projects/davidxu_thread/src/sys/pc98/pc98/isa_dma.c#3 integrate .. //depot/projects/davidxu_thread/src/sys/pc98/pc98/olpt.c#3 integrate .. //depot/projects/davidxu_thread/src/sys/pc98/pc98/scterm-sck.c#2 integrate .. //depot/projects/davidxu_thread/src/sys/sys/mouse.h#4 integrate .. //depot/projects/davidxu_thread/src/sys/ufs/ufs/ufs_lookup.c#4 integrate .. //depot/projects/davidxu_thread/src/tools/regression/usr.bin/Makefile#4 integrate .. //depot/projects/davidxu_thread/src/tools/regression/usr.bin/printf/Makefile#1 branch .. //depot/projects/davidxu_thread/src/tools/regression/usr.bin/printf/regress.b.out#1 branch .. //depot/projects/davidxu_thread/src/tools/regression/usr.bin/printf/regress.d.out#1 branch .. //depot/projects/davidxu_thread/src/tools/regression/usr.bin/printf/regress.f.out#1 branch .. //depot/projects/davidxu_thread/src/tools/regression/usr.bin/printf/regress.m1.out#1 branch .. //depot/projects/davidxu_thread/src/tools/regression/usr.bin/printf/regress.m2.out#1 branch .. //depot/projects/davidxu_thread/src/tools/regression/usr.bin/printf/regress.m3.out#1 branch .. //depot/projects/davidxu_thread/src/tools/regression/usr.bin/printf/regress.m4.out#1 branch .. //depot/projects/davidxu_thread/src/tools/regression/usr.bin/printf/regress.s.out#1 branch .. //depot/projects/davidxu_thread/src/tools/regression/usr.bin/printf/regress.sh#1 branch .. //depot/projects/davidxu_thread/src/tools/regression/usr.bin/printf/regress.t#1 branch .. //depot/projects/davidxu_thread/src/tools/tools/ministat/ministat.c#2 integrate .. //depot/projects/davidxu_thread/src/tools/tools/nanobsd/Makefile#5 integrate .. //depot/projects/davidxu_thread/src/tools/tools/nanobsd/i386.diskimage#6 integrate .. //depot/projects/davidxu_thread/src/tools/tools/nanobsd/make.conf#6 integrate .. //depot/projects/davidxu_thread/src/usr.bin/make/var.c#9 integrate .. //depot/projects/davidxu_thread/src/usr.bin/printf/printf.c#4 integrate .. //depot/projects/davidxu_thread/src/usr.sbin/mixer/mixer.8#2 integrate .. //depot/projects/davidxu_thread/src/usr.sbin/mixer/mixer.c#2 integrate .. //depot/projects/davidxu_thread/src/usr.sbin/moused/moused.8#3 integrate .. //depot/projects/davidxu_thread/src/usr.sbin/moused/moused.c#3 integrate Differences ... ==== //depot/projects/davidxu_thread/src/games/fortune/datfiles/fortunes#9 (text+ko) ==== @@ -1,5 +1,5 @@ This fortune brought to you by: -$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.174 2005/04/10 10:53:26 schweikh Exp $ +$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.175 2005/04/13 06:11:49 phk Exp $ % ======================================================================= @@ -15198,6 +15198,11 @@ Computerspeak for "information". Properly pronounced the way Bostonians pronounce the word for a female child. % +Data is not information; +Information is not knowledge; +Knowledge is not wisdom; + -- Gary Flake +% Dave Mack: "Your stupidity, Allen, is simply not up to par." Allen Gwinn: "Yours is." % ==== //depot/projects/davidxu_thread/src/lib/libc/i386/gen/_set_tp.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/i386/gen/_set_tp.c,v 1.2 2004/11/06 03:28:26 peter Exp $ + * $FreeBSD: src/lib/libc/i386/gen/_set_tp.c,v 1.3 2005/04/14 00:02:37 peter Exp $ */ #include <string.h> @@ -36,8 +36,11 @@ { #ifndef COMPAT_32BIT union descriptor ldt; - int sel; + int error, sel; + error = i386_set_gsbase(tp); + if (error == 0) + return; memset(&ldt, 0, sizeof(ldt)); ldt.sd.sd_lolimit = 0xffff; /* 4G limit */ ldt.sd.sd_lobase = ((uintptr_t)tp) & 0xffffff; ==== //depot/projects/davidxu_thread/src/lib/libc/i386/sys/Makefile.inc#2 (text+ko) ==== @@ -1,9 +1,10 @@ # from: Makefile.inc,v 1.1 1993/09/03 19:04:23 jtc Exp -# $FreeBSD: src/lib/libc/i386/sys/Makefile.inc,v 1.28 2004/11/06 03:28:26 peter Exp $ +# $FreeBSD: src/lib/libc/i386/sys/Makefile.inc,v 1.29 2005/04/14 00:01:35 peter Exp $ .if !defined(COMPAT_32BIT) SRCS+= i386_clr_watch.c i386_get_ioperm.c i386_get_ldt.c i386_set_ioperm.c \ i386_set_ldt.c i386_set_watch.c i386_vm86.c +SRCS+= i386_get_fsbase.c i386_get_gsbase.c i386_set_fsbase.c i386_set_gsbase.c .else SRCS+= _amd64_get_fsbase.c _amd64_get_gsbase.c _amd64_set_fsbase.c _amd64_set_gsbase.c .endif ==== //depot/projects/davidxu_thread/src/lib/libdisk/disk.c#3 (text+ko) ==== @@ -8,7 +8,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/lib/libdisk/disk.c,v 1.124 2004/12/22 08:17:18 yongari Exp $"); +__FBSDID("$FreeBSD: src/lib/libdisk/disk.c,v 1.125 2005/04/13 13:42:38 nyan Exp $"); #include <stdio.h> #include <stdlib.h> @@ -324,7 +324,6 @@ return 0; } -#ifdef PC98 const char * slice_type_name( int type, int subtype ) { @@ -332,27 +331,6 @@ switch (type) { case whole: return "whole"; - case fat: - return "fat"; - case freebsd: - switch (subtype) { - case 0xc494: return "freebsd"; - default: return "unknown"; - } - case unused: - return "unused"; - default: - return "unknown"; - } -} -#else /* PC98 */ -const char * -slice_type_name( int type, int subtype ) -{ - - switch (type) { - case whole: - return "whole"; case mbr: switch (subtype) { case 1: return "fat (12-bit)"; @@ -392,7 +370,11 @@ return "fat"; case freebsd: switch (subtype) { +#ifdef PC98 + case 0xc494: return "freebsd"; +#else case 165: return "freebsd"; +#endif default: return "unknown"; } case extended: @@ -407,4 +389,3 @@ return "unknown"; } } -#endif /* PC98 */ ==== //depot/projects/davidxu_thread/src/lib/libpthread/arch/i386/i386/pthread_md.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/lib/libpthread/arch/i386/i386/pthread_md.c,v 1.4 2004/11/06 03:35:51 peter Exp $"); +__FBSDID("$FreeBSD: src/lib/libpthread/arch/i386/i386/pthread_md.c,v 1.5 2005/04/14 00:13:19 peter Exp $"); #include <sys/types.h> #include <machine/cpufunc.h> @@ -42,6 +42,8 @@ #include "rtld_tls.h" #include "pthread_md.h" +int _thr_using_setbase; + struct tcb * _tcb_ctor(struct pthread *thread, int initial) { @@ -78,8 +80,10 @@ { #ifndef COMPAT_32BIT union descriptor ldt; + void *base; #endif struct kcb *kcb; + int error; kcb = malloc(sizeof(struct kcb)); if (kcb != NULL) { @@ -87,20 +91,35 @@ kcb->kcb_self = kcb; kcb->kcb_kse = kse; #ifndef COMPAT_32BIT - ldt.sd.sd_hibase = (unsigned int)kcb >> 24; - ldt.sd.sd_lobase = (unsigned int)kcb & 0xFFFFFF; - ldt.sd.sd_hilimit = (sizeof(struct kcb) >> 16) & 0xF; - ldt.sd.sd_lolimit = sizeof(struct kcb) & 0xFFFF; - ldt.sd.sd_type = SDT_MEMRWA; - ldt.sd.sd_dpl = SEL_UPL; - ldt.sd.sd_p = 1; - ldt.sd.sd_xx = 0; - ldt.sd.sd_def32 = 1; - ldt.sd.sd_gran = 0; /* no more than 1M */ - kcb->kcb_ldt = i386_set_ldt(LDT_AUTO_ALLOC, &ldt, 1); - if (kcb->kcb_ldt < 0) { - free(kcb); - return (NULL); + switch (_thr_using_setbase) { + case 1: /* use i386_set_gsbase() in _kcb_set */ + kcb->kcb_ldt = -1; + break; + case 0: /* Untested, try the get/set_gsbase routines once */ + error = i386_get_gsbase(&base); + if (error == 0) { + _thr_using_setbase = 1; + break; + } + /* fall through */ + case 2: /* Use the user_ldt code, we must have an old kernel */ + _thr_using_setbase = 2; + ldt.sd.sd_hibase = (unsigned int)kcb >> 24; + ldt.sd.sd_lobase = (unsigned int)kcb & 0xFFFFFF; + ldt.sd.sd_hilimit = (sizeof(struct kcb) >> 16) & 0xF; + ldt.sd.sd_lolimit = sizeof(struct kcb) & 0xFFFF; + ldt.sd.sd_type = SDT_MEMRWA; + ldt.sd.sd_dpl = SEL_UPL; + ldt.sd.sd_p = 1; + ldt.sd.sd_xx = 0; + ldt.sd.sd_def32 = 1; + ldt.sd.sd_gran = 0; /* no more than 1M */ + kcb->kcb_ldt = i386_set_ldt(LDT_AUTO_ALLOC, &ldt, 1); + if (kcb->kcb_ldt < 0) { + free(kcb); + return (NULL); + } + break; } #endif } ==== //depot/projects/davidxu_thread/src/lib/libpthread/arch/i386/include/pthread_md.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/arch/i386/include/pthread_md.h,v 1.13 2004/11/06 03:35:51 peter Exp $ + * $FreeBSD: src/lib/libpthread/arch/i386/include/pthread_md.h,v 1.14 2005/04/14 00:13:20 peter Exp $ */ /* * Machine-dependent thread prototypes/definitions for the thread kernel. @@ -40,6 +40,8 @@ extern int _thr_setcontext(mcontext_t *, intptr_t, intptr_t *); extern int _thr_getcontext(mcontext_t *); +extern int _thr_using_setbase; + #define KSE_STACKSIZE 16384 #define DTV_OFFSET offsetof(struct tcb, tcb_dtv) @@ -155,8 +157,12 @@ #ifndef COMPAT_32BIT int val; - val = (kcb->kcb_ldt << 3) | 7; - __asm __volatile("movl %0, %%gs" : : "r" (val)); + if (_thr_using_setbase == 1) { + i386_set_gsbase(kcb); + } else { + val = (kcb->kcb_ldt << 3) | 7; + __asm __volatile("movl %0, %%gs" : : "r" (val)); + } #else _amd64_set_gsbase(kcb); #endif ==== //depot/projects/davidxu_thread/src/lib/libthr/arch/i386/i386/pthread_md.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/arch/i386/i386/pthread_md.c,v 1.1 2005/04/02 01:19:58 davidxu Exp $ + * $FreeBSD: src/lib/libthr/arch/i386/i386/pthread_md.c,v 1.2 2005/04/14 00:44:06 peter Exp $ */ #include <sys/types.h> @@ -35,14 +35,18 @@ #include "pthread_md.h" +int _thr_using_setbase; + struct tcb * _tcb_ctor(struct pthread *thread, int initial) { #ifndef COMPAT_32BIT union descriptor ldt; + void *base; #endif struct tcb *tcb; void *oldtls; + int error; if (initial) __asm __volatile("movl %%gs:0, %0" : "=r" (oldtls)); @@ -53,20 +57,35 @@ if (tcb) { tcb->tcb_thread = thread; #ifndef COMPAT_32BIT - ldt.sd.sd_hibase = (unsigned int)tcb >> 24; - ldt.sd.sd_lobase = (unsigned int)tcb & 0xFFFFFF; - ldt.sd.sd_hilimit = (sizeof(struct tcb) >> 16) & 0xF; - ldt.sd.sd_lolimit = sizeof(struct tcb) & 0xFFFF; - ldt.sd.sd_type = SDT_MEMRWA; - ldt.sd.sd_dpl = SEL_UPL; - ldt.sd.sd_p = 1; - ldt.sd.sd_xx = 0; - ldt.sd.sd_def32 = 1; - ldt.sd.sd_gran = 0; /* no more than 1M */ - tcb->tcb_ldt = i386_set_ldt(LDT_AUTO_ALLOC, &ldt, 1); - if (tcb->tcb_ldt < 0) { - _rtld_free_tls(tcb, sizeof(struct tcb), 16); - tcb = NULL; + tcb->tcb_ldt = -1; + switch (_thr_using_setbase) { + case 1: /* use i386_set_gsbase() in _kcb_set */ + break; + case 0: /* Untested, try the get/set_gsbase routines once */ + error = i386_get_gsbase(&base); + if (error == 0) { + _thr_using_setbase = 1; + break; + } + /* fall through */ + case 2: /* Use the user_ldt code, we must have an old kernel */ + _thr_using_setbase = 2; + ldt.sd.sd_hibase = (unsigned int)tcb >> 24; + ldt.sd.sd_lobase = (unsigned int)tcb & 0xFFFFFF; + ldt.sd.sd_hilimit = (sizeof(struct tcb) >> 16) & 0xF; + ldt.sd.sd_lolimit = sizeof(struct tcb) & 0xFFFF; + ldt.sd.sd_type = SDT_MEMRWA; + ldt.sd.sd_dpl = SEL_UPL; + ldt.sd.sd_p = 1; + ldt.sd.sd_xx = 0; + ldt.sd.sd_def32 = 1; + ldt.sd.sd_gran = 0; /* no more than 1M */ + tcb->tcb_ldt = i386_set_ldt(LDT_AUTO_ALLOC, &ldt, 1); + if (tcb->tcb_ldt < 0) { + _rtld_free_tls(tcb, sizeof(struct tcb), 16); + tcb = NULL; + } + break; } #endif } ==== //depot/projects/davidxu_thread/src/lib/libthr/arch/i386/include/pthread_md.h#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/arch/i386/include/pthread_md.h,v 1.1 2005/04/02 01:19:58 davidxu Exp $ + * $FreeBSD: src/lib/libthr/arch/i386/include/pthread_md.h,v 1.2 2005/04/14 00:44:07 peter Exp $ */ /* @@ -39,6 +39,8 @@ #define DTV_OFFSET offsetof(struct tcb, tcb_dtv) +extern int _thr_using_setbase; + /* * Variant II tcb, first two members are required by rtld, * %gs points to the structure. @@ -88,8 +90,12 @@ #ifndef COMPAT_32BIT int val; - val = (tcb->tcb_ldt << 3) | 7; - __asm __volatile("movl %0, %%gs" : : "r" (val)); + if (_thr_using_setbase == 1) { + i386_set_gsbase(tcb); + } else { + val = (tcb->tcb_ldt << 3) | 7; + __asm __volatile("movl %0, %%gs" : : "r" (val)); + } #else _amd64_set_gsbase(tcb); #endif ==== //depot/projects/davidxu_thread/src/lib/libthread_db/libthr_db.c#14 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/lib/libthread_db/libthr_db.c,v 1.6 2005/04/12 23:33:08 davidxu Exp $"); +__FBSDID("$FreeBSD: src/lib/libthread_db/libthr_db.c,v 1.7 2005/04/13 04:57:38 davidxu Exp $"); #include <proc_service.h> #include <stddef.h> ==== //depot/projects/davidxu_thread/src/libexec/rtld-elf/i386/reloc.c#2 (text+ko) ==== @@ -22,7 +22,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/libexec/rtld-elf/i386/reloc.c,v 1.14 2004/11/06 03:32:07 peter Exp $ + * $FreeBSD: src/libexec/rtld-elf/i386/reloc.c,v 1.15 2005/04/14 00:04:50 peter Exp $ */ /* @@ -329,7 +329,7 @@ void* tls; #ifndef COMPAT_32BIT union descriptor ldt; - int sel; + int error, sel; #endif /* @@ -341,18 +341,21 @@ tls = allocate_tls(objs, NULL, 2*sizeof(Elf_Addr), sizeof(Elf_Addr)); #ifndef COMPAT_32BIT - memset(&ldt, 0, sizeof(ldt)); - ldt.sd.sd_lolimit = 0xffff; /* 4G limit */ - ldt.sd.sd_lobase = ((Elf_Addr)tls) & 0xffffff; - ldt.sd.sd_type = SDT_MEMRWA; - ldt.sd.sd_dpl = SEL_UPL; - ldt.sd.sd_p = 1; /* present */ - ldt.sd.sd_hilimit = 0xf; /* 4G limit */ - ldt.sd.sd_def32 = 1; /* 32 bit */ - ldt.sd.sd_gran = 1; /* limit in pages */ - ldt.sd.sd_hibase = (((Elf_Addr)tls) >> 24) & 0xff; - sel = i386_set_ldt(LDT_AUTO_ALLOC, &ldt, 1); - __asm __volatile("movl %0,%%gs" : : "rm" ((sel << 3) | 7)); + error = i386_set_gsbase(tls); + if (error) { + memset(&ldt, 0, sizeof(ldt)); + ldt.sd.sd_lolimit = 0xffff; /* 4G limit */ + ldt.sd.sd_lobase = ((Elf_Addr)tls) & 0xffffff; + ldt.sd.sd_type = SDT_MEMRWA; + ldt.sd.sd_dpl = SEL_UPL; + ldt.sd.sd_p = 1; /* present */ + ldt.sd.sd_hilimit = 0xf; /* 4G limit */ + ldt.sd.sd_def32 = 1; /* 32 bit */ + ldt.sd.sd_gran = 1; /* limit in pages */ + ldt.sd.sd_hibase = (((Elf_Addr)tls) >> 24) & 0xff; + sel = i386_set_ldt(LDT_AUTO_ALLOC, &ldt, 1); + __asm __volatile("movl %0,%%gs" : : "rm" ((sel << 3) | 7)); + } #else _amd64_set_gsbase(tls); #endif ==== //depot/projects/davidxu_thread/src/sbin/sysctl/sysctl.c#3 (text+ko) ==== @@ -38,7 +38,7 @@ static char sccsid[] = "@(#)from: sysctl.c 8.1 (Berkeley) 6/6/93"; #endif static const char rcsid[] = - "$FreeBSD: src/sbin/sysctl/sysctl.c,v 1.65 2005/02/10 09:19:34 ru Exp $"; + "$FreeBSD: src/sbin/sysctl/sysctl.c,v 1.67 2005/04/13 06:59:07 mdodd Exp $"; #endif /* not lint */ #ifdef __i386__ @@ -189,6 +189,11 @@ if (newval == NULL) { if ((kind & CTLTYPE) == CTLTYPE_NODE) { + if (dflag) { + i = show_var(mib, len); + if (!i && !bflag) + putchar('\n'); + } sysctl_all(mib, len); } else { i = show_var(mib, len); @@ -501,6 +506,8 @@ u_int kind; int (*func)(int, void *); + bzero(buf, BUFSIZ); + bzero(name, BUFSIZ); qoid[0] = 0; memcpy(qoid + 2, oid, nlen * sizeof(int)); ==== //depot/projects/davidxu_thread/src/share/Makefile#2 (text+ko) ==== @@ -1,10 +1,10 @@ # @(#)Makefile 8.1 (Berkeley) 6/5/93 -# $FreeBSD: src/share/Makefile,v 1.32 2004/04/24 19:54:54 phk Exp $ +# $FreeBSD: src/share/Makefile,v 1.33 2005/04/13 10:02:58 phk Exp $ # Do not include `info' in the SUBDIR list, it is handled separately. SUBDIR= colldef \ - dict \ + ${_dict} \ ${_doc} \ examples \ ${_isdn} \ @@ -29,6 +29,10 @@ _isdn= isdn .endif +.if !defined(NO_DICT) +_dict= dict +.endif + .if !defined(NO_SENDMAIL) _sendmail= sendmail .endif ==== //depot/projects/davidxu_thread/src/share/examples/etc/make.conf#8 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/examples/etc/make.conf,v 1.261 2005/03/21 22:22:13 le Exp $ +# $FreeBSD: src/share/examples/etc/make.conf,v 1.262 2005/04/13 10:02:58 phk Exp $ # # NOTE: Please would any committer updating this file also update the # make.conf(5) manual page, if necessary, which is located in @@ -113,6 +113,7 @@ #NO_CRYPT= # do not build any crypto code #NO_CVS= # do not build CVS #NO_CXX= # do not build C++ and friends +#NO_DICT= # do not build the Webster dictionary files #NO_DYNAMICROOT= # do not link /bin and /sbin dynamically #NO_FORTRAN= # do not build g77 and related libraries #NO_GAMES= # do not build games (games/ subdir) ==== //depot/projects/davidxu_thread/src/share/man/man5/make.conf.5#7 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man5/make.conf.5,v 1.118 2005/03/02 05:22:27 trhodes Exp $ +.\" $FreeBSD: src/share/man/man5/make.conf.5,v 1.119 2005/04/13 10:02:58 phk Exp $ .\" .Dd March 2, 2005 .Dt MAKE.CONF 5 @@ -437,6 +437,9 @@ Set to not build .Xr g++ 1 and related libraries. +.It Va NO_DICT +.Pq Vt bool +Set to not build the Webster dictionary files. .It Va NO_FORTRAN .Pq Vt bool Set to not build ==== //depot/projects/davidxu_thread/src/sys/amd64/conf/GENERIC#6 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.436 2005/03/31 20:55:10 obrien Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.437 2005/04/13 06:00:07 anholt Exp $ machine amd64 cpu HAMMER @@ -156,6 +156,8 @@ # syscons is the default console driver, resembling an SCO console device sc +device agp # support several AGP chipsets + # PCCARD (PCMCIA) support # PCMCIA and cardbus bridge support device cbb # cardbus (yenta) bridge ==== //depot/projects/davidxu_thread/src/sys/arm/sa11x0/sa11x0_io.c#3 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/sa11x0_io.c,v 1.5 2005/01/05 21:58:48 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/sa11x0_io.c,v 1.6 2005/04/13 16:02:03 cognet Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/queue.h> @@ -166,7 +166,6 @@ PTE_SYNC(pte); } } - pmap_update(pmap_kernel()); return(0); } ==== //depot/projects/davidxu_thread/src/sys/coda/coda_vnops.c#7 (text+ko) ==== @@ -42,7 +42,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/coda/coda_vnops.c,v 1.65 2005/03/28 13:39:16 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/coda/coda_vnops.c,v 1.66 2005/04/13 10:59:07 jeff Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1010,6 +1010,7 @@ return (error); } } + vn_lock(dvp, LK_RETRY|LK_EXCLUSIVE, td); } else { /* The parent is locked, and may be the same as the child */ if (*ap->a_vpp && (*ap->a_vpp != dvp)) { ==== //depot/projects/davidxu_thread/src/sys/compat/linux/linux_file.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_file.c,v 1.90 2005/01/14 04:44:56 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_file.c,v 1.91 2005/04/13 04:31:43 mdodd Exp $"); #include "opt_compat.h" #include "opt_mac.h" @@ -979,6 +979,14 @@ td->td_retval[0] |= LINUX_O_SYNC; if (result & O_ASYNC) td->td_retval[0] |= LINUX_FASYNC; +#ifdef LINUX_O_NOFOLLOW + if (result & O_NOFOLLOW) + td->td_retval[0] |= LINUX_O_NOFOLLOW; +#endif +#ifdef LINUX_O_DIRECT + if (result & O_DIRECT) + td->td_retval[0] |= LINUX_O_DIRECT; +#endif return (error); case LINUX_F_SETFL: @@ -991,6 +999,14 @@ arg |= O_FSYNC; if (args->arg & LINUX_FASYNC) arg |= O_ASYNC; +#ifdef LINUX_O_NOFOLLOW + if (args->arg & LINUX_O_NOFOLLOW) + arg |= O_NOFOLLOW; +#endif +#ifdef LINUX_O_DIRECT + if (args->arg & LINUX_O_DIRECT) + arg |= O_DIRECT; +#endif return (kern_fcntl(td, args->fd, F_SETFL, arg)); case LINUX_F_GETLK: ==== //depot/projects/davidxu_thread/src/sys/compat/linux/linux_getcwd.c#4 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_getcwd.c,v 1.17 2005/03/29 10:16:12 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_getcwd.c,v 1.18 2005/04/13 10:59:07 jeff Exp $"); #include "opt_compat.h" #include "opt_mac.h" @@ -185,7 +185,7 @@ /* If we don't care about the pathname, we're done */ if (bufp == NULL) { - vrele(lvp); + vput(lvp); *lvpp = NULL; return 0; } @@ -281,7 +281,7 @@ error = ENOENT; out: - vrele(lvp); + vput(lvp); *lvpp = NULL; free(dirbuf, M_TEMP); return error; ==== //depot/projects/davidxu_thread/src/sys/compat/linux/linux_ioctl.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.126 2005/03/24 19:26:50 brooks Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.127 2005/04/13 04:33:06 mdodd Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1628,6 +1628,18 @@ * Sound related ioctls */ +struct linux_mixer_info { + char id[16]; + char name[32]; + int modify_counter; + int fillers[10]; +}; + +struct linux_old_mixer_info { + char id[16]; + char name[32]; +}; + static u_int32_t dirbits[4] = { IOC_VOID, IOC_IN, IOC_OUT, IOC_INOUT }; #define SETDIR(c) (((c) & ~IOC_DIRMASK) | dirbits[args->cmd >> 30]) @@ -1706,9 +1718,30 @@ args->cmd = SETDIR(SOUND_MIXER_WRITE_LINE3); return (ioctl(td, (struct ioctl_args *)args)); - case LINUX_SOUND_MIXER_INFO: - args->cmd = SETDIR(SOUND_MIXER_INFO); - return (ioctl(td, (struct ioctl_args *)args)); + case LINUX_SOUND_MIXER_INFO: { + /* Key on encoded length */ + switch ((args->cmd >> 16) & 0x1fff) { + case 0x005c: { /* SOUND_MIXER_INFO */ + struct linux_mixer_info info; + bzero(&info, sizeof(info)); + strncpy(info.id, "OSS", sizeof(info.id) - 1); + strncpy(info.name, "FreeBSD OSS Mixer", sizeof(info.name) - 1); + copyout(&info, (void *)args->arg, sizeof(info)); + break; + } + case 0x0030: { /* SOUND_OLD_MIXER_INFO */ + struct linux_old_mixer_info info; + bzero(&info, sizeof(info)); + strncpy(info.id, "OSS", sizeof(info.id) - 1); + strncpy(info.name, "FreeBSD OSS Mixer", sizeof(info.name) - 1); + copyout(&info, (void *)args->arg, sizeof(info)); + break; + } + default: + return (ENOIOCTL); + } + break; + } case LINUX_OSS_GETVERSION: { int version = linux_get_oss_version(td); ==== //depot/projects/davidxu_thread/src/sys/conf/Makefile.alpha#5 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.alpha -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.alpha 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.alpha,v 1.134 2005/04/12 22:07:08 vkashyap Exp $ +# $FreeBSD: src/sys/conf/Makefile.alpha,v 1.135 2005/04/13 14:49:57 imp Exp $ # # Makefile for FreeBSD # @@ -87,6 +87,4 @@ %RULES -CFLAGS+=-I/sys/dev/twa - .include "$S/conf/kern.post.mk" ==== //depot/projects/davidxu_thread/src/sys/conf/Makefile.amd64#5 (text+ko) ==== @@ -2,7 +2,7 @@ # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 # from FreeBSD: src/sys/conf/Makefile.i386,v 1.255 2002/02/20 23:35:49 -# $FreeBSD: src/sys/conf/Makefile.amd64,v 1.15 2005/04/12 22:07:08 vkashyap Exp $ +# $FreeBSD: src/sys/conf/Makefile.amd64,v 1.16 2005/04/13 14:49:57 imp Exp $ # # Makefile for FreeBSD # @@ -52,6 +52,4 @@ %RULES -CFLAGS+=-I/sys/dev/twa - .include "$S/conf/kern.post.mk" ==== //depot/projects/davidxu_thread/src/sys/conf/Makefile.arm#5 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.arm -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.arm,v 1.8 2005/04/12 22:07:08 vkashyap Exp $ +# $FreeBSD: src/sys/conf/Makefile.arm,v 1.9 2005/04/13 14:49:57 imp Exp $ # # Makefile for FreeBSD # @@ -58,6 +58,4 @@ sed s/KERNVIRTADDR/${KERNVIRTADDR}/g > ldscript.$M %RULES -CFLAGS+=-I/sys/dev/twa - .include "$S/conf/kern.post.mk" ==== //depot/projects/davidxu_thread/src/sys/conf/Makefile.i386#5 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.i386 -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.i386,v 1.264 2005/04/12 22:07:08 vkashyap Exp $ +# $FreeBSD: src/sys/conf/Makefile.i386,v 1.265 2005/04/13 14:49:57 imp Exp $ # # Makefile for FreeBSD # @@ -46,6 +46,4 @@ %RULES -CFLAGS+=-I/sys/dev/twa - .include "$S/conf/kern.post.mk" ==== //depot/projects/davidxu_thread/src/sys/conf/Makefile.ia64#5 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.ia64 -- with config changes. # Copyright 1990 W. Jolitz # from: src/sys/conf/Makefile.alpha,v 1.76 -# $FreeBSD: src/sys/conf/Makefile.ia64,v 1.61 2005/04/12 22:07:08 vkashyap Exp $ +# $FreeBSD: src/sys/conf/Makefile.ia64,v 1.62 2005/04/13 14:49:57 imp Exp $ # # Makefile for FreeBSD # @@ -52,6 +52,4 @@ %RULES -CFLAGS+=-I/sys/dev/twa - .include "$S/conf/kern.post.mk" ==== //depot/projects/davidxu_thread/src/sys/conf/Makefile.pc98#6 (text+ko) ==== @@ -3,7 +3,7 @@ # Makefile.i386 -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.pc98,v 1.166 2005/04/12 22:07:08 vkashyap Exp $ +# $FreeBSD: src/sys/conf/Makefile.pc98,v 1.167 2005/04/13 14:49:57 imp Exp $ # # Makefile for FreeBSD # @@ -46,6 +46,4 @@ %RULES -CFLAGS+=-I/sys/dev/twa - .include "$S/conf/kern.post.mk" ==== //depot/projects/davidxu_thread/src/sys/conf/Makefile.powerpc#5 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.powerpc -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.powerpc,v 1.276 2005/04/12 22:07:08 vkashyap Exp $ +# $FreeBSD: src/sys/conf/Makefile.powerpc,v 1.277 2005/04/13 14:49:57 imp Exp $ # # Makefile for FreeBSD # @@ -51,6 +51,4 @@ %RULES -CFLAGS+=-I/sys/dev/twa - .include "$S/conf/kern.post.mk" ==== //depot/projects/davidxu_thread/src/sys/conf/Makefile.sparc64#5 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.sparc64 -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.sparc64,v 1.32 2005/04/12 22:07:08 vkashyap Exp $ +# $FreeBSD: src/sys/conf/Makefile.sparc64,v 1.33 2005/04/13 14:49:57 imp Exp $ # # Makefile for FreeBSD # @@ -46,6 +46,4 @@ %RULES -CFLAGS+=-I/sys/dev/twa - .include "$S/conf/kern.post.mk" >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200504140150.j3E1o4HQ008805>