i386_get_ldt(2)

NAME

i386_get_ldt, i386_set_ldt - manage i386 per-process Local
Descriptor
Table entries

LIBRARY

Standard C Library (libc, -lc)

SYNOPSIS

#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);

DESCRIPTION

The i386_get_ldt() system call will return the list of i386
descriptors
that the process has in its LDT. The i386_set_ldt() system
call 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 These structures are defined by the ar
chitecture as
disjoint bit-fields, so care must be taken in constructing
them.
If start_sel is LDT_AUTO_ALLOC, num_sels is 1 and the de
scriptor pointed
to by descs is legal, then i386_set_ldt() will allocate a
descriptor and
return its selector number.
If num_descs is 1, start_sels is valid, and descs is NULL,
then
i386_set_ldt() will free that descriptor (making it avail
able to be reallocated again later).
If num_descs is 0, start_sels is 0 and descs is NULL then,
as a special
case, i386_set_ldt() will free all descriptors.

RETURN VALUES

Upon successful completion, i386_get_ldt() returns the num
ber of descriptors currently in the LDT. The i386_set_ldt() system call
returns the
first selector set. In the case when a descriptor is allo
cated by the
kernel, its number will be returned. Otherwise, a value of
-1 is
returned and the global variable errno is set to indicate
the error.

ERRORS

The i386_get_ldt() and i386_set_ldt() system calls will fail
if:
[EINVAL] An inappropriate value was used for
start_sel or
num_sels.
[EACCES] The caller attempted to use a descriptor
that would
circumvent protection or cause a failure.

SEE ALSO

i386 Microprocessor Programmer's Reference Manual, Intel

WARNING

You can really hose your process using this.
BSD September 20, 1993
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout