| I386_GET_LDT(2) | System Calls Manual (i386) | I386_GET_LDT(2) |
i386_get_ldt,
i386_set_ldt — manage i386
per-process Local Descriptor Table entries
i386 Architecture Library (libi386, -li386)
#include
<sys/types.h>
#include <machine/segments.h>
#include
<machine/sysarch.h>
int
i386_get_ldt(int
start_sel, union
descriptor *descs, int
num_sels);
int
i386_set_ldt(int
start_sel, union
descriptor *descs, int
num_sels);
i386_get_ldt()
will return the list of i386 descriptors that the process has in its LDT.
i386_set_ldt()
will set a list of i386 descriptors for the current process in its LDT. Both
routines accept a starting selector number start_sel ,
an array of memory that will contain the descriptors to be set or returned
descs , and the number of entries to set or return
num_sels.
The argument descs can be either
segment_descriptor or gate_descriptor and are defined in
<i386/segments.h> . These structures are
defined by the architecture as disjoint bit-fields, so care must be taken in
constructing them.
Upon successful completion, i386_get_ldt()
returns the number of descriptors currently in the LDT.
i386_set_ldt() returns the first selector set.
Otherwise, a value of -1 is returned and the global variable
errno is set to indicate the error.
i386_get_ldt() and
i386_set_ldt() will fail if:
i386 Microprocessor Programmer's Reference Manual, Intel
You can really hose your process using this.
| September 20, 1993 | NetBSD 11.0 |