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)
)
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.
)
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.
)
and
i386_set_ldt()
will fail if:
EINVAL]start_sel
or
num_sels.
EACCES]