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
]