USER_LDT is now required by a number of packages as well as our upcoming
authorMatthew Dillon <dillon@dragonflybsd.org>
Sat, 20 Dec 2003 05:52:27 +0000 (05:52 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sat, 20 Dec 2003 05:52:27 +0000 (05:52 +0000)
user threads support.  Make it non-optional.

USER_LDT breaks SysV emulated sysarch(... SVR4_SYSARCH_DSCR) support.
For now just #if 0 out the support (which is what FreeBSD-5.x does).

Submitted-by: Craig Dooley <craig@xlnx-x.net>
29 files changed:
sys/conf/options.i386
sys/conf/options.pc98
sys/config/LINT
sys/emulation/linux/i386/linux_machdep.c
sys/emulation/svr4/i386/svr4_machdep.c
sys/i386/conf/LINT
sys/i386/i386/genassym.c
sys/i386/i386/globals.s
sys/i386/i386/machdep.c
sys/i386/i386/mp_machdep.c
sys/i386/i386/pmap.c
sys/i386/i386/swtch.s
sys/i386/i386/sys_machdep.c
sys/i386/i386/vm_machdep.c
sys/i386/include/globaldata.h
sys/i386/include/pcb.h
sys/i386/include/pcb_ext.h
sys/platform/pc32/i386/genassym.c
sys/platform/pc32/i386/globals.s
sys/platform/pc32/i386/machdep.c
sys/platform/pc32/i386/mp_machdep.c
sys/platform/pc32/i386/pmap.c
sys/platform/pc32/i386/swtch.s
sys/platform/pc32/i386/sys_machdep.c
sys/platform/pc32/i386/vm_machdep.c
sys/platform/pc32/include/globaldata.h
sys/platform/pc32/include/pcb.h
sys/platform/pc32/include/pcb_ext.h
sys/platform/vkernel/i386/genassym.c

index 6538674..6971f40 100644 (file)
@@ -1,9 +1,8 @@
 # $FreeBSD: src/sys/conf/options.i386,v 1.132.2.18 2003/03/14 21:22:35 jhb Exp $
-# $DragonFly: src/sys/conf/Attic/options.i386,v 1.3 2003/08/01 10:58:59 rob Exp $
+# $DragonFly: src/sys/conf/Attic/options.i386,v 1.4 2003/12/20 05:52:19 dillon Exp $
 
 DISABLE_PSE
 IDE_DELAY
-USER_LDT
 MATH_EMULATE           opt_math_emulate.h
 GPL_MATH_EMULATE       opt_math_emulate.h
 PMAP_SHPGPERPROC       opt_pmap.h
index eaa3e67..780f787 100644 (file)
@@ -1,9 +1,8 @@
 # $FreeBSD: src/sys/conf/options.pc98,v 1.103.2.17 2003/03/14 21:22:35 jhb Exp $
-# $DragonFly: src/sys/conf/Attic/options.pc98,v 1.3 2003/08/01 10:58:59 rob Exp $
+# $DragonFly: src/sys/conf/Attic/options.pc98,v 1.4 2003/12/20 05:52:19 dillon Exp $
 
 DISABLE_PSE
 IDE_DELAY
-USER_LDT
 MATH_EMULATE           opt_math_emulate.h
 GPL_MATH_EMULATE       opt_math_emulate.h
 PMAP_SHPGPERPROC       opt_pmap.h
index da846b9..29305b9 100644 (file)
@@ -3,7 +3,7 @@
 #      as much of the source tree as it can.
 #
 # $FreeBSD: src/sys/i386/conf/LINT,v 1.749.2.144 2003/06/04 17:56:59 sam Exp $
-# $DragonFly: src/sys/config/LINT,v 1.13 2003/12/02 08:00:22 asmodai Exp $
+# $DragonFly: src/sys/config/LINT,v 1.14 2003/12/20 05:52:23 dillon Exp $
 #
 # NB: You probably don't want to try running a kernel built from this
 # file.  Instead, you should start from GENERIC, and add options from
@@ -280,13 +280,6 @@ options    GPL_MATH_EMULATE        #Support for x87 emulation via
 #
 options        COMPAT_43
 
-#
-# Allow applications running in user space to control the Local Descriptor
-# Table (LDT).  This is required by some ports.  Future versions of FreeBSD
-# may require this option for some programs in the base system.
-#
-options        USER_LDT                #allow user-level control of i386 ldt
-
 #
 # These three options provide support for System V Interface
 # Definition-style interprocess communication, in the form of shared
index fcfde9e..87e1e20 100644 (file)
@@ -26,7 +26,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/linux/linux_machdep.c,v 1.6.2.4 2001/11/05 19:08:23 marcel Exp $
- * $DragonFly: src/sys/emulation/linux/i386/linux_machdep.c,v 1.13 2003/11/16 19:08:27 dillon Exp $
+ * $DragonFly: src/sys/emulation/linux/i386/linux_machdep.c,v 1.14 2003/12/20 05:52:21 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -726,11 +726,6 @@ linux_modify_ldt(struct linux_modify_ldt_args *uap)
                break;
        }
 
-       if (error == EOPNOTSUPP) {
-               printf("linux: modify_ldt needs kernel option USER_LDT\n");
-               error = ENOSYS;
-       }
-
        return (error);
 }
 
index e818cac..ec9de53 100644 (file)
@@ -26,7 +26,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/svr4/svr4_machdep.c,v 1.13.2.1 2002/01/12 11:03:30 bde Exp $
- * $DragonFly: src/sys/emulation/svr4/i386/Attic/svr4_machdep.c,v 1.7 2003/08/27 06:07:11 rob Exp $
+ * $DragonFly: src/sys/emulation/svr4/i386/Attic/svr4_machdep.c,v 1.8 2003/12/20 05:52:22 dillon Exp $
  */
 
 #include <sys/types.h>
@@ -486,16 +486,17 @@ int
 svr4_sys_sysarch(struct svr4_sys_sysarch_args *v)
 {
        struct svr4_sys_sysarch_args *uap = v;
-#ifdef USER_LDT
+#if 0
        caddr_t sg = stackgap_init(p->p_emul);
        int error;
 #endif
+       
        switch (uap->op) {
        case SVR4_SYSARCH_FPHW:
                return 0;
 
        case SVR4_SYSARCH_DSCR:
-#ifdef USER_LDT
+#if 0
 #warning "USER_LDT doesn't work - are you sure you want this?"
                {
                        struct i386_set_ldt_args sa, *sap;
index 9911720..beb1464 100644 (file)
@@ -3,7 +3,7 @@
 #      as much of the source tree as it can.
 #
 # $FreeBSD: src/sys/i386/conf/LINT,v 1.749.2.144 2003/06/04 17:56:59 sam Exp $
-# $DragonFly: src/sys/i386/conf/Attic/LINT,v 1.13 2003/12/02 08:00:22 asmodai Exp $
+# $DragonFly: src/sys/i386/conf/Attic/LINT,v 1.14 2003/12/20 05:52:23 dillon Exp $
 #
 # NB: You probably don't want to try running a kernel built from this
 # file.  Instead, you should start from GENERIC, and add options from
@@ -280,13 +280,6 @@ options    GPL_MATH_EMULATE        #Support for x87 emulation via
 #
 options        COMPAT_43
 
-#
-# Allow applications running in user space to control the Local Descriptor
-# Table (LDT).  This is required by some ports.  Future versions of FreeBSD
-# may require this option for some programs in the base system.
-#
-options        USER_LDT                #allow user-level control of i386 ldt
-
 #
 # These three options provide support for System V Interface
 # Definition-style interprocess communication, in the form of shared
index fb51fe9..942c5be 100644 (file)
  *
  *     from: @(#)genassym.c    5.11 (Berkeley) 5/10/91
  * $FreeBSD: src/sys/i386/i386/genassym.c,v 1.86.2.3 2002/03/03 05:42:49 nyan Exp $
- * $DragonFly: src/sys/i386/i386/Attic/genassym.c,v 1.32 2003/11/21 05:29:07 dillon Exp $
+ * $DragonFly: src/sys/i386/i386/Attic/genassym.c,v 1.33 2003/12/20 05:52:25 dillon Exp $
  */
 
-#include "opt_user_ldt.h"
-
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/assym.h>
@@ -135,9 +133,7 @@ ASSYM(PCB_EBX, offsetof(struct pcb, pcb_ebx));
 ASSYM(PCB_EIP, offsetof(struct pcb, pcb_eip));
 ASSYM(TSS_ESP0, offsetof(struct i386tss, tss_esp0));
 
-#ifdef USER_LDT
 ASSYM(PCB_USERLDT, offsetof(struct pcb, pcb_ldt));
-#endif
 
 ASSYM(PCB_GS, offsetof(struct pcb, pcb_gs));
 ASSYM(PCB_DR0, offsetof(struct pcb, pcb_dr0));
@@ -189,9 +185,7 @@ ASSYM(GD_PRIVATE_TSS, offsetof(struct mdglobaldata, gd_private_tss));
 ASSYM(GD_INTR_NESTING_LEVEL, offsetof(struct mdglobaldata, mi.gd_intr_nesting_level));
 ASSYM(GD_REQFLAGS, offsetof(struct mdglobaldata, mi.gd_reqflags));
 
-#ifdef USER_LDT
 ASSYM(GD_CURRENTLDT, offsetof(struct mdglobaldata, gd_currentldt));
-#endif
 
 ASSYM(RQF_IPIQ, RQF_IPIQ);
 ASSYM(RQF_INTPEND, RQF_INTPEND);
index e29a668..9871179 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/i386/globals.s,v 1.13.2.1 2000/05/16 06:58:06 dillon Exp $
- * $DragonFly: src/sys/i386/i386/Attic/globals.s,v 1.18 2003/08/24 22:36:43 hsu Exp $
+ * $DragonFly: src/sys/i386/i386/Attic/globals.s,v 1.19 2003/12/20 05:52:25 dillon Exp $
  */
 
-#include "opt_user_ldt.h"
-
 #include <machine/asmacros.h>
 #include <machine/pmap.h>
 
        .set    gd_common_tssd,globaldata + GD_COMMON_TSSD
        .set    gd_tss_gdt,globaldata + GD_TSS_GDT
 
-#ifdef USER_LDT
        .globl  gd_currentldt
        .set    gd_currentldt,globaldata + GD_CURRENTLDT
-#endif
 
        /*
         * The BSP version of these get setup in locore.s and pmap.c, while
index 941d805..5554858 100644 (file)
@@ -36,7 +36,7 @@
  *
  *     from: @(#)machdep.c     7.4 (Berkeley) 6/3/91
  * $FreeBSD: src/sys/i386/i386/machdep.c,v 1.385.2.30 2003/05/31 08:48:05 alc Exp $
- * $DragonFly: src/sys/i386/i386/Attic/machdep.c,v 1.48 2003/12/07 01:17:53 dillon Exp $
+ * $DragonFly: src/sys/i386/i386/Attic/machdep.c,v 1.49 2003/12/20 05:52:25 dillon Exp $
  */
 
 #include "use_apm.h"
@@ -54,7 +54,6 @@
 #include "opt_msgbuf.h"
 #include "opt_perfmon.h"
 #include "opt_swap.h"
-#include "opt_user_ldt.h"
 #include "opt_userconfig.h"
 
 #include <sys/param.h>
@@ -920,10 +919,8 @@ setregs(p, entry, stack, ps_strings)
        pcb->pcb_gs = _udatasel;
        load_gs(_udatasel);
 
-#ifdef USER_LDT
        /* was i386_user_cleanup() in NetBSD */
        user_ldt_free(pcb);
-#endif
   
        bzero((char *)regs, sizeof(struct trapframe));
        regs->tf_eip = entry;
@@ -1870,9 +1867,7 @@ init386(int first)
 
        _default_ldt = GSEL(GLDT_SEL, SEL_KPL);
        lldt(_default_ldt);
-#ifdef USER_LDT
        gd->gd_currentldt = _default_ldt;
-#endif
        /* spinlocks and the BGL */
        init_locks();
 
@@ -2597,7 +2592,6 @@ outb(u_int port, u_char data)
 
 #include "opt_cpu.h"
 #include "opt_htt.h"
-#include "opt_user_ldt.h"
 
 
 /*
index 12063b4..9a5dbbb 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/i386/mp_machdep.c,v 1.115.2.15 2003/03/14 21:22:35 jhb Exp $
- * $DragonFly: src/sys/i386/i386/Attic/mp_machdep.c,v 1.18 2003/11/03 22:50:11 dillon Exp $
+ * $DragonFly: src/sys/i386/i386/Attic/mp_machdep.c,v 1.19 2003/12/20 05:52:26 dillon Exp $
  */
 
 #include "opt_cpu.h"
 #include "opt_htt.h"
-#include "opt_user_ldt.h"
 
 #ifdef SMP
 #include <machine/smptests.h>
@@ -455,9 +454,7 @@ init_secondary(void)
        lidt(&r_idt);
 
        lldt(_default_ldt);
-#ifdef USER_LDT
        mdcpu->gd_currentldt = _default_ldt;
-#endif
 
        gsel_tss = GSEL(GPROC0_SEL, SEL_KPL);
        gdt[myid * NGDT + GPROC0_SEL].sd.sd_type = SDT_SYS386TSS;
index 2be7163..e5736c1 100644 (file)
@@ -40,7 +40,7 @@
  *
  *     from:   @(#)pmap.c      7.7 (Berkeley)  5/12/91
  * $FreeBSD: src/sys/i386/i386/pmap.c,v 1.250.2.18 2002/03/06 22:48:53 silby Exp $
- * $DragonFly: src/sys/i386/i386/Attic/pmap.c,v 1.25 2003/11/04 01:05:28 dillon Exp $
+ * $DragonFly: src/sys/i386/i386/Attic/pmap.c,v 1.26 2003/12/20 05:52:26 dillon Exp $
  */
 
 /*
@@ -72,7 +72,6 @@
 #include "opt_disable_pse.h"
 #include "opt_pmap.h"
 #include "opt_msgbuf.h"
-#include "opt_user_ldt.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
index d38c8d0..1ad5f23 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/i386/swtch.s,v 1.89.2.10 2003/01/23 03:36:24 ps Exp $
- * $DragonFly: src/sys/i386/i386/Attic/swtch.s,v 1.28 2003/09/25 23:49:03 dillon Exp $
+ * $DragonFly: src/sys/i386/i386/Attic/swtch.s,v 1.29 2003/12/20 05:52:26 dillon Exp $
  */
 
 #include "use_npx.h"
-#include "opt_user_ldt.h"
 
 #include <sys/rtprio.h>
 
@@ -343,7 +342,6 @@ ENTRY(cpu_heavy_restore)
        /*
         * Restore the user LDT if we have one
         */
-#ifdef USER_LDT
        cmpl    $0, PCB_USERLDT(%edx)
        jnz     1f
        movl    _default_ldt,%eax
@@ -356,7 +354,6 @@ ENTRY(cpu_heavy_restore)
        call    set_user_ldt
        popl    %edx
 2:
-#endif
        /*
         * Restore the %gs segment register, which must be done after
         * loading the user LDT.  Since user processes can modify the
index b9d707f..cecbe7f 100644 (file)
  *
  *     from: @(#)sys_machdep.c 5.5 (Berkeley) 1/19/91
  * $FreeBSD: src/sys/i386/i386/sys_machdep.c,v 1.47.2.3 2002/10/07 17:20:00 jhb Exp $
- * $DragonFly: src/sys/i386/i386/Attic/sys_machdep.c,v 1.11 2003/08/26 21:42:18 rob Exp $
+ * $DragonFly: src/sys/i386/i386/Attic/sys_machdep.c,v 1.12 2003/12/20 05:52:26 dillon Exp $
  *
  */
 
-#include "opt_user_ldt.h"
-
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/sysproto.h>
 
 
 
-#ifdef USER_LDT
 static int i386_get_ldt        (struct proc *, char *, int *);
 static int i386_set_ldt        (struct proc *, char *, int *);
-#endif
 static int i386_get_ioperm     (struct proc *, char *);
 static int i386_set_ioperm     (struct proc *, char *);
 int i386_extend_pcb    (struct proc *);
@@ -90,7 +86,6 @@ sysarch(struct sysarch_args *uap)
        int error = 0;
 
        switch(uap->op) {
-#ifdef USER_LDT
        case I386_GET_LDT:
                error = i386_get_ldt(p, uap->parms, &uap->sysmsg_result);
                break;
@@ -98,7 +93,6 @@ sysarch(struct sysarch_args *uap)
        case I386_SET_LDT:
                error = i386_set_ldt(p, uap->parms, &uap->sysmsg_result);
                break;
-#endif
        case I386_GET_IOPERM:
                error = i386_get_ioperm(p, uap->parms);
                break;
@@ -237,7 +231,6 @@ done:
        return (error);
 }
 
-#ifdef USER_LDT
 /*
  * Update the GDT entry pointing to the LDT to point to the LDT of the
  * current process.  Do not staticize.
@@ -503,4 +496,3 @@ i386_set_ldt(struct proc *p, char *args, int *res)
        kmem_free(kernel_map, (vm_offset_t)descs, descs_size);
        return (0);
 }
-#endif /* USER_LDT */
index 191c5f3..58480a7 100644 (file)
  *     from: @(#)vm_machdep.c  7.3 (Berkeley) 5/13/91
  *     Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$
  * $FreeBSD: src/sys/i386/i386/vm_machdep.c,v 1.132.2.9 2003/01/25 19:02:23 dillon Exp $
- * $DragonFly: src/sys/i386/i386/Attic/vm_machdep.c,v 1.25 2003/11/03 17:11:18 dillon Exp $
+ * $DragonFly: src/sys/i386/i386/Attic/vm_machdep.c,v 1.26 2003/12/20 05:52:26 dillon Exp $
  */
 
 #include "use_npx.h"
 #include "use_isa.h"
-#include "opt_user_ldt.h"
 #ifdef PC98
 #include "opt_pc98.h"
 #endif
@@ -129,7 +128,6 @@ cpu_fork(p1, p2, flags)
        struct pcb *pcb2;
 
        if ((flags & RFPROC) == 0) {
-#ifdef USER_LDT
                if ((flags & RFMEM) == 0) {
                        /* unshare user LDT */
                        struct pcb *pcb1 = p1->p_thread->td_pcb;
@@ -141,7 +139,6 @@ cpu_fork(p1, p2, flags)
                                set_user_ldt(pcb1);
                        }
                }
-#endif
                return;
        }
 
@@ -204,7 +201,6 @@ cpu_fork(p1, p2, flags)
         */
        pcb2->pcb_ext = 0;
 
-#ifdef USER_LDT
         /* Copy the LDT, if necessary. */
         if (pcb2->pcb_ldt != 0) {
                if (flags & RFMEM) {
@@ -214,7 +210,6 @@ cpu_fork(p1, p2, flags)
                                pcb2->pcb_ldt->ldt_len);
                }
         }
-#endif
 
        /*
         * Now, cpu_switch() can schedule the new process.
@@ -284,9 +279,7 @@ cpu_proc_exit(void)
                    ctob(IOPAGES + 1));
                pcb->pcb_ext = 0;
        }
-#ifdef USER_LDT
        user_ldt_free(pcb);
-#endif
         if (pcb->pcb_flags & PCB_DBREGS) {
                 /*
                  * disable all hardware breakpoints
index 422c0ed..cf499cf 100644 (file)
@@ -28,7 +28,7 @@
  *     should not include this file.
  *
  * $FreeBSD: src/sys/i386/include/globaldata.h,v 1.11.2.1 2000/05/16 06:58:10 dillon Exp $
- * $DragonFly: src/sys/i386/include/Attic/globaldata.h,v 1.20 2003/08/27 02:03:17 dillon Exp $
+ * $DragonFly: src/sys/i386/include/Attic/globaldata.h,v 1.21 2003/12/20 05:52:27 dillon Exp $
  */
 
 #ifndef _MACHINE_GLOBALDATA_H_
@@ -70,7 +70,7 @@ struct mdglobaldata {
        int             gd_fpending;    /* fast interrupt pending */
        int             gd_ipending;    /* normal interrupt pending */
        int             gd_idelayed;    /* delayed software ints */
-       int             gd_currentldt;  /* USER_LDT */
+       int             gd_currentldt;
        int             gd_private_tss;
        u_int           gd_cpu_lockid;
        u_int           gd_other_cpus;
index 1504e71..a51f4f8 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     from: @(#)pcb.h 5.10 (Berkeley) 5/12/91
  * $FreeBSD: src/sys/i386/include/pcb.h,v 1.32.2.1 2001/08/15 01:23:52 peter Exp $
- * $DragonFly: src/sys/i386/include/Attic/pcb.h,v 1.7 2003/08/26 21:42:18 rob Exp $
+ * $DragonFly: src/sys/i386/include/Attic/pcb.h,v 1.8 2003/12/20 05:52:27 dillon Exp $
  */
 
 #ifndef _I386_PCB_H_
@@ -62,11 +62,7 @@ struct pcb {
        int     pcb_dr6;
        int     pcb_dr7;
 
-#ifdef USER_LDT
        struct  pcb_ldt *pcb_ldt;       /* per process (user) LDT */
-#else
-       struct  pcb_ldt *pcb_ldt_dontuse;
-#endif
        union   savefpu pcb_save;
        u_char  pcb_flags;
 #define        FP_SOFTFP       0x01    /* process using software fltng pnt emulator */
index 5e33c2e..7a241bc 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/include/pcb_ext.h,v 1.4 1999/12/29 04:33:04 peter Exp $
- * $DragonFly: src/sys/i386/include/Attic/pcb_ext.h,v 1.4 2003/08/26 21:42:18 rob Exp $
+ * $DragonFly: src/sys/i386/include/Attic/pcb_ext.h,v 1.5 2003/12/20 05:52:27 dillon Exp $
  */
 
 #ifndef _I386_PCB_EXT_H_
@@ -54,11 +54,9 @@ struct pcb_ldt {
 
 #ifdef _KERNEL
 
-#ifdef USER_LDT
 void set_user_ldt (struct pcb *);
 struct pcb_ldt *user_ldt_alloc (struct pcb *, int);
 void user_ldt_free (struct pcb *);
-#endif
 
 #endif
 
index 660b689..89db328 100644 (file)
  *
  *     from: @(#)genassym.c    5.11 (Berkeley) 5/10/91
  * $FreeBSD: src/sys/i386/i386/genassym.c,v 1.86.2.3 2002/03/03 05:42:49 nyan Exp $
- * $DragonFly: src/sys/platform/pc32/i386/genassym.c,v 1.32 2003/11/21 05:29:07 dillon Exp $
+ * $DragonFly: src/sys/platform/pc32/i386/genassym.c,v 1.33 2003/12/20 05:52:25 dillon Exp $
  */
 
-#include "opt_user_ldt.h"
-
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/assym.h>
@@ -135,9 +133,7 @@ ASSYM(PCB_EBX, offsetof(struct pcb, pcb_ebx));
 ASSYM(PCB_EIP, offsetof(struct pcb, pcb_eip));
 ASSYM(TSS_ESP0, offsetof(struct i386tss, tss_esp0));
 
-#ifdef USER_LDT
 ASSYM(PCB_USERLDT, offsetof(struct pcb, pcb_ldt));
-#endif
 
 ASSYM(PCB_GS, offsetof(struct pcb, pcb_gs));
 ASSYM(PCB_DR0, offsetof(struct pcb, pcb_dr0));
@@ -189,9 +185,7 @@ ASSYM(GD_PRIVATE_TSS, offsetof(struct mdglobaldata, gd_private_tss));
 ASSYM(GD_INTR_NESTING_LEVEL, offsetof(struct mdglobaldata, mi.gd_intr_nesting_level));
 ASSYM(GD_REQFLAGS, offsetof(struct mdglobaldata, mi.gd_reqflags));
 
-#ifdef USER_LDT
 ASSYM(GD_CURRENTLDT, offsetof(struct mdglobaldata, gd_currentldt));
-#endif
 
 ASSYM(RQF_IPIQ, RQF_IPIQ);
 ASSYM(RQF_INTPEND, RQF_INTPEND);
index e16b1dc..d10512b 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/i386/globals.s,v 1.13.2.1 2000/05/16 06:58:06 dillon Exp $
- * $DragonFly: src/sys/platform/pc32/i386/globals.s,v 1.18 2003/08/24 22:36:43 hsu Exp $
+ * $DragonFly: src/sys/platform/pc32/i386/globals.s,v 1.19 2003/12/20 05:52:25 dillon Exp $
  */
 
-#include "opt_user_ldt.h"
-
 #include <machine/asmacros.h>
 #include <machine/pmap.h>
 
        .set    gd_common_tssd,globaldata + GD_COMMON_TSSD
        .set    gd_tss_gdt,globaldata + GD_TSS_GDT
 
-#ifdef USER_LDT
        .globl  gd_currentldt
        .set    gd_currentldt,globaldata + GD_CURRENTLDT
-#endif
 
        /*
         * The BSP version of these get setup in locore.s and pmap.c, while
index 3f957b1..f4446c1 100644 (file)
@@ -36,7 +36,7 @@
  *
  *     from: @(#)machdep.c     7.4 (Berkeley) 6/3/91
  * $FreeBSD: src/sys/i386/i386/machdep.c,v 1.385.2.30 2003/05/31 08:48:05 alc Exp $
- * $DragonFly: src/sys/platform/pc32/i386/machdep.c,v 1.48 2003/12/07 01:17:53 dillon Exp $
+ * $DragonFly: src/sys/platform/pc32/i386/machdep.c,v 1.49 2003/12/20 05:52:25 dillon Exp $
  */
 
 #include "use_apm.h"
@@ -54,7 +54,6 @@
 #include "opt_msgbuf.h"
 #include "opt_perfmon.h"
 #include "opt_swap.h"
-#include "opt_user_ldt.h"
 #include "opt_userconfig.h"
 
 #include <sys/param.h>
@@ -920,10 +919,8 @@ setregs(p, entry, stack, ps_strings)
        pcb->pcb_gs = _udatasel;
        load_gs(_udatasel);
 
-#ifdef USER_LDT
        /* was i386_user_cleanup() in NetBSD */
        user_ldt_free(pcb);
-#endif
   
        bzero((char *)regs, sizeof(struct trapframe));
        regs->tf_eip = entry;
@@ -1870,9 +1867,7 @@ init386(int first)
 
        _default_ldt = GSEL(GLDT_SEL, SEL_KPL);
        lldt(_default_ldt);
-#ifdef USER_LDT
        gd->gd_currentldt = _default_ldt;
-#endif
        /* spinlocks and the BGL */
        init_locks();
 
@@ -2597,7 +2592,6 @@ outb(u_int port, u_char data)
 
 #include "opt_cpu.h"
 #include "opt_htt.h"
-#include "opt_user_ldt.h"
 
 
 /*
index c4ed776..1cae333 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/i386/mp_machdep.c,v 1.115.2.15 2003/03/14 21:22:35 jhb Exp $
- * $DragonFly: src/sys/platform/pc32/i386/mp_machdep.c,v 1.18 2003/11/03 22:50:11 dillon Exp $
+ * $DragonFly: src/sys/platform/pc32/i386/mp_machdep.c,v 1.19 2003/12/20 05:52:26 dillon Exp $
  */
 
 #include "opt_cpu.h"
 #include "opt_htt.h"
-#include "opt_user_ldt.h"
 
 #ifdef SMP
 #include <machine/smptests.h>
@@ -455,9 +454,7 @@ init_secondary(void)
        lidt(&r_idt);
 
        lldt(_default_ldt);
-#ifdef USER_LDT
        mdcpu->gd_currentldt = _default_ldt;
-#endif
 
        gsel_tss = GSEL(GPROC0_SEL, SEL_KPL);
        gdt[myid * NGDT + GPROC0_SEL].sd.sd_type = SDT_SYS386TSS;
index d04e403..5a9b3c3 100644 (file)
@@ -40,7 +40,7 @@
  *
  *     from:   @(#)pmap.c      7.7 (Berkeley)  5/12/91
  * $FreeBSD: src/sys/i386/i386/pmap.c,v 1.250.2.18 2002/03/06 22:48:53 silby Exp $
- * $DragonFly: src/sys/platform/pc32/i386/pmap.c,v 1.25 2003/11/04 01:05:28 dillon Exp $
+ * $DragonFly: src/sys/platform/pc32/i386/pmap.c,v 1.26 2003/12/20 05:52:26 dillon Exp $
  */
 
 /*
@@ -72,7 +72,6 @@
 #include "opt_disable_pse.h"
 #include "opt_pmap.h"
 #include "opt_msgbuf.h"
-#include "opt_user_ldt.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
index 49167b4..c3bfe32 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/i386/swtch.s,v 1.89.2.10 2003/01/23 03:36:24 ps Exp $
- * $DragonFly: src/sys/platform/pc32/i386/swtch.s,v 1.28 2003/09/25 23:49:03 dillon Exp $
+ * $DragonFly: src/sys/platform/pc32/i386/swtch.s,v 1.29 2003/12/20 05:52:26 dillon Exp $
  */
 
 #include "use_npx.h"
-#include "opt_user_ldt.h"
 
 #include <sys/rtprio.h>
 
@@ -343,7 +342,6 @@ ENTRY(cpu_heavy_restore)
        /*
         * Restore the user LDT if we have one
         */
-#ifdef USER_LDT
        cmpl    $0, PCB_USERLDT(%edx)
        jnz     1f
        movl    _default_ldt,%eax
@@ -356,7 +354,6 @@ ENTRY(cpu_heavy_restore)
        call    set_user_ldt
        popl    %edx
 2:
-#endif
        /*
         * Restore the %gs segment register, which must be done after
         * loading the user LDT.  Since user processes can modify the
index f6aeaca..b920ea5 100644 (file)
  *
  *     from: @(#)sys_machdep.c 5.5 (Berkeley) 1/19/91
  * $FreeBSD: src/sys/i386/i386/sys_machdep.c,v 1.47.2.3 2002/10/07 17:20:00 jhb Exp $
- * $DragonFly: src/sys/platform/pc32/i386/sys_machdep.c,v 1.11 2003/08/26 21:42:18 rob Exp $
+ * $DragonFly: src/sys/platform/pc32/i386/sys_machdep.c,v 1.12 2003/12/20 05:52:26 dillon Exp $
  *
  */
 
-#include "opt_user_ldt.h"
-
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/sysproto.h>
 
 
 
-#ifdef USER_LDT
 static int i386_get_ldt        (struct proc *, char *, int *);
 static int i386_set_ldt        (struct proc *, char *, int *);
-#endif
 static int i386_get_ioperm     (struct proc *, char *);
 static int i386_set_ioperm     (struct proc *, char *);
 int i386_extend_pcb    (struct proc *);
@@ -90,7 +86,6 @@ sysarch(struct sysarch_args *uap)
        int error = 0;
 
        switch(uap->op) {
-#ifdef USER_LDT
        case I386_GET_LDT:
                error = i386_get_ldt(p, uap->parms, &uap->sysmsg_result);
                break;
@@ -98,7 +93,6 @@ sysarch(struct sysarch_args *uap)
        case I386_SET_LDT:
                error = i386_set_ldt(p, uap->parms, &uap->sysmsg_result);
                break;
-#endif
        case I386_GET_IOPERM:
                error = i386_get_ioperm(p, uap->parms);
                break;
@@ -237,7 +231,6 @@ done:
        return (error);
 }
 
-#ifdef USER_LDT
 /*
  * Update the GDT entry pointing to the LDT to point to the LDT of the
  * current process.  Do not staticize.
@@ -503,4 +496,3 @@ i386_set_ldt(struct proc *p, char *args, int *res)
        kmem_free(kernel_map, (vm_offset_t)descs, descs_size);
        return (0);
 }
-#endif /* USER_LDT */
index ec212f0..37dfaf3 100644 (file)
  *     from: @(#)vm_machdep.c  7.3 (Berkeley) 5/13/91
  *     Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$
  * $FreeBSD: src/sys/i386/i386/vm_machdep.c,v 1.132.2.9 2003/01/25 19:02:23 dillon Exp $
- * $DragonFly: src/sys/platform/pc32/i386/vm_machdep.c,v 1.25 2003/11/03 17:11:18 dillon Exp $
+ * $DragonFly: src/sys/platform/pc32/i386/vm_machdep.c,v 1.26 2003/12/20 05:52:26 dillon Exp $
  */
 
 #include "use_npx.h"
 #include "use_isa.h"
-#include "opt_user_ldt.h"
 #ifdef PC98
 #include "opt_pc98.h"
 #endif
@@ -129,7 +128,6 @@ cpu_fork(p1, p2, flags)
        struct pcb *pcb2;
 
        if ((flags & RFPROC) == 0) {
-#ifdef USER_LDT
                if ((flags & RFMEM) == 0) {
                        /* unshare user LDT */
                        struct pcb *pcb1 = p1->p_thread->td_pcb;
@@ -141,7 +139,6 @@ cpu_fork(p1, p2, flags)
                                set_user_ldt(pcb1);
                        }
                }
-#endif
                return;
        }
 
@@ -204,7 +201,6 @@ cpu_fork(p1, p2, flags)
         */
        pcb2->pcb_ext = 0;
 
-#ifdef USER_LDT
         /* Copy the LDT, if necessary. */
         if (pcb2->pcb_ldt != 0) {
                if (flags & RFMEM) {
@@ -214,7 +210,6 @@ cpu_fork(p1, p2, flags)
                                pcb2->pcb_ldt->ldt_len);
                }
         }
-#endif
 
        /*
         * Now, cpu_switch() can schedule the new process.
@@ -284,9 +279,7 @@ cpu_proc_exit(void)
                    ctob(IOPAGES + 1));
                pcb->pcb_ext = 0;
        }
-#ifdef USER_LDT
        user_ldt_free(pcb);
-#endif
         if (pcb->pcb_flags & PCB_DBREGS) {
                 /*
                  * disable all hardware breakpoints
index 033ab14..e2826d0 100644 (file)
@@ -28,7 +28,7 @@
  *     should not include this file.
  *
  * $FreeBSD: src/sys/i386/include/globaldata.h,v 1.11.2.1 2000/05/16 06:58:10 dillon Exp $
- * $DragonFly: src/sys/platform/pc32/include/globaldata.h,v 1.20 2003/08/27 02:03:17 dillon Exp $
+ * $DragonFly: src/sys/platform/pc32/include/globaldata.h,v 1.21 2003/12/20 05:52:27 dillon Exp $
  */
 
 #ifndef _MACHINE_GLOBALDATA_H_
@@ -70,7 +70,7 @@ struct mdglobaldata {
        int             gd_fpending;    /* fast interrupt pending */
        int             gd_ipending;    /* normal interrupt pending */
        int             gd_idelayed;    /* delayed software ints */
-       int             gd_currentldt;  /* USER_LDT */
+       int             gd_currentldt;
        int             gd_private_tss;
        u_int           gd_cpu_lockid;
        u_int           gd_other_cpus;
index fbb3f32..7942a6d 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     from: @(#)pcb.h 5.10 (Berkeley) 5/12/91
  * $FreeBSD: src/sys/i386/include/pcb.h,v 1.32.2.1 2001/08/15 01:23:52 peter Exp $
- * $DragonFly: src/sys/platform/pc32/include/pcb.h,v 1.7 2003/08/26 21:42:18 rob Exp $
+ * $DragonFly: src/sys/platform/pc32/include/pcb.h,v 1.8 2003/12/20 05:52:27 dillon Exp $
  */
 
 #ifndef _I386_PCB_H_
@@ -62,11 +62,7 @@ struct pcb {
        int     pcb_dr6;
        int     pcb_dr7;
 
-#ifdef USER_LDT
        struct  pcb_ldt *pcb_ldt;       /* per process (user) LDT */
-#else
-       struct  pcb_ldt *pcb_ldt_dontuse;
-#endif
        union   savefpu pcb_save;
        u_char  pcb_flags;
 #define        FP_SOFTFP       0x01    /* process using software fltng pnt emulator */
index 215ea53..38e3486 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/include/pcb_ext.h,v 1.4 1999/12/29 04:33:04 peter Exp $
- * $DragonFly: src/sys/platform/pc32/include/pcb_ext.h,v 1.4 2003/08/26 21:42:18 rob Exp $
+ * $DragonFly: src/sys/platform/pc32/include/pcb_ext.h,v 1.5 2003/12/20 05:52:27 dillon Exp $
  */
 
 #ifndef _I386_PCB_EXT_H_
@@ -54,11 +54,9 @@ struct pcb_ldt {
 
 #ifdef _KERNEL
 
-#ifdef USER_LDT
 void set_user_ldt (struct pcb *);
 struct pcb_ldt *user_ldt_alloc (struct pcb *, int);
 void user_ldt_free (struct pcb *);
-#endif
 
 #endif
 
index fc8d961..e7e3190 100644 (file)
  *
  *     from: @(#)genassym.c    5.11 (Berkeley) 5/10/91
  * $FreeBSD: src/sys/i386/i386/genassym.c,v 1.86.2.3 2002/03/03 05:42:49 nyan Exp $
- * $DragonFly: src/sys/platform/vkernel/i386/genassym.c,v 1.32 2003/11/21 05:29:07 dillon Exp $
+ * $DragonFly: src/sys/platform/vkernel/i386/genassym.c,v 1.33 2003/12/20 05:52:25 dillon Exp $
  */
 
-#include "opt_user_ldt.h"
-
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/assym.h>
@@ -135,9 +133,7 @@ ASSYM(PCB_EBX, offsetof(struct pcb, pcb_ebx));
 ASSYM(PCB_EIP, offsetof(struct pcb, pcb_eip));
 ASSYM(TSS_ESP0, offsetof(struct i386tss, tss_esp0));
 
-#ifdef USER_LDT
 ASSYM(PCB_USERLDT, offsetof(struct pcb, pcb_ldt));
-#endif
 
 ASSYM(PCB_GS, offsetof(struct pcb, pcb_gs));
 ASSYM(PCB_DR0, offsetof(struct pcb, pcb_dr0));
@@ -189,9 +185,7 @@ ASSYM(GD_PRIVATE_TSS, offsetof(struct mdglobaldata, gd_private_tss));
 ASSYM(GD_INTR_NESTING_LEVEL, offsetof(struct mdglobaldata, mi.gd_intr_nesting_level));
 ASSYM(GD_REQFLAGS, offsetof(struct mdglobaldata, mi.gd_reqflags));
 
-#ifdef USER_LDT
 ASSYM(GD_CURRENTLDT, offsetof(struct mdglobaldata, gd_currentldt));
-#endif
 
 ASSYM(RQF_IPIQ, RQF_IPIQ);
 ASSYM(RQF_INTPEND, RQF_INTPEND);