diff options
author | jhb <jhb@FreeBSD.org> | 2001-10-25 00:53:43 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2001-10-25 00:53:43 +0000 |
commit | ba0a9ee2e6605c9d7c16f4f8ff1b8abd51656a52 (patch) | |
tree | 985767d54ab8587f13c4b10e2042c123e33ede0e /sys/amd64/include | |
parent | 5a9e0848db34a5ed03ef25c96a45f2759fd0e14c (diff) | |
download | FreeBSD-src-ba0a9ee2e6605c9d7c16f4f8ff1b8abd51656a52.zip FreeBSD-src-ba0a9ee2e6605c9d7c16f4f8ff1b8abd51656a52.tar.gz |
Split the per-process Local Descriptor Table out of the PCB and into
struct mdproc.
Submitted by: Andrew R. Reiter <arr@watson.org>
Silence on: -current
Diffstat (limited to 'sys/amd64/include')
-rw-r--r-- | sys/amd64/include/pcb.h | 1 | ||||
-rw-r--r-- | sys/amd64/include/pcb_ext.h | 11 | ||||
-rw-r--r-- | sys/amd64/include/proc.h | 18 |
3 files changed, 18 insertions, 12 deletions
diff --git a/sys/amd64/include/pcb.h b/sys/amd64/include/pcb.h index 21d95c5..9eb0f81 100644 --- a/sys/amd64/include/pcb.h +++ b/sys/amd64/include/pcb.h @@ -61,7 +61,6 @@ struct pcb { int pcb_dr6; int pcb_dr7; - struct pcb_ldt *pcb_ldt; /* per process (user) LDT */ union savefpu pcb_save; u_char pcb_flags; #define FP_SOFTFP 0x01 /* process using software fltng pnt emulator */ diff --git a/sys/amd64/include/pcb_ext.h b/sys/amd64/include/pcb_ext.h index c6f9fc0..3256f99 100644 --- a/sys/amd64/include/pcb_ext.h +++ b/sys/amd64/include/pcb_ext.h @@ -43,20 +43,9 @@ struct pcb_ext { struct vm86_kernel ext_vm86; /* vm86 area */ }; -struct pcb_ldt { - caddr_t ldt_base; - int ldt_len; - int ldt_refcnt; - u_long ldt_active; - struct segment_descriptor ldt_sd; -}; - #ifdef _KERNEL int i386_extend_pcb __P((struct thread *)); -void set_user_ldt __P((struct pcb *)); -struct pcb_ldt *user_ldt_alloc __P((struct pcb *, int)); -void user_ldt_free __P((struct pcb *)); #endif diff --git a/sys/amd64/include/proc.h b/sys/amd64/include/proc.h index 9e9e449..911f6b8 100644 --- a/sys/amd64/include/proc.h +++ b/sys/amd64/include/proc.h @@ -38,6 +38,15 @@ #define _MACHINE_PROC_H_ #include <machine/globals.h> +#include <machine/segments.h> + +struct proc_ldt { + caddr_t ldt_base; + int ldt_len; + int ldt_refcnt; + u_long ldt_active; + struct segment_descriptor ldt_sd; +}; /* * Machine-dependent part of the proc structure for i386. @@ -46,6 +55,15 @@ struct mdthread { }; struct mdproc { + struct proc_ldt *md_ldt; /* per-process ldt */ }; +#ifdef _KERNEL + +void set_user_ldt __P((struct mdproc *)); +struct proc_ldt *user_ldt_alloc __P((struct mdproc *, int)); +void user_ldt_free __P((struct thread *)); + +#endif /* _KERNEL */ + #endif /* !_MACHINE_PROC_H_ */ |