diff options
author | Roland McGrath <roland@gnu.org> | 2002-10-04 02:44:47 +0000 |
---|---|---|
committer | Thomas Schwinge <tschwinge@gnu.org> | 2009-06-17 23:50:18 +0200 |
commit | 3b39a75826362826518c252c2a9a9c8c862e9336 (patch) | |
tree | d8722deb0bcf9a19a92949a8ced5d9455b5dcbe1 | |
parent | 163bb85c18e8f9e30e2f14d27f091639fcf71d57 (diff) |
2002-10-03 Roland McGrath <roland@frob.com>
* i386/include/mach/i386/mach_i386.defs (i386_set_gdt, i386_get_gdt):
New routines.
* i386/i386/user_ldt.c (i386_set_gdt, i386_get_gdt): New functions.
* i386/i386/gdt.h (USER_GDT, USER_GDT_SLOTS): New macros.
* i386/i386/thread.h (struct i386_machine_state): New member user_gdt.
* i386/i386/pcb.c (switch_ktss): Copy those slots into the GDT.
-rw-r--r-- | i386/include/mach/i386/mach_i386.defs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/i386/include/mach/i386/mach_i386.defs b/i386/include/mach/i386/mach_i386.defs index 57f43188..b8357ccc 100644 --- a/i386/include/mach/i386/mach_i386.defs +++ b/i386/include/mach/i386/mach_i386.defs @@ -94,3 +94,19 @@ routine i386_io_perm_modify( target_task : task_t; io_perm : io_perm_t; enable : boolean_t); + +/* Modify one of a few available thread-specific segment descriptor slots. + The SELECTOR must be a value from a previous call (on any thread), + or -1 to allocate an available slot and return the segment selector for it. + These slots are copied into the CPU on each thread switch. + Returns KERN_NO_SPACE when there are no more slots available. */ +routine i386_set_gdt( + target_thread : thread_t; + inout selector : int; + desc : descriptor_t); + +/* Fetch a segment descriptor set with a prior i386_set_gdt call. */ +routine i386_get_gdt( + target_thread : thread_t; + selector : int; + out desc : descriptor_t); |