PERFORCE change 75114 for review
David Xu
davidxu at FreeBSD.org
Wed Apr 13 18:50:07 PDT 2005
http://perforce.freebsd.org/chv.cgi?CH=75114
Change 75114 by davidxu at 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) <<<
More information about the p4-projects
mailing list