I386GETLDT(2) BSD System Calls Manual I386GETLDT(2)
NAME
i386getldt, i386setldt -- manage i386 per-process Local Descriptor
Table entries
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
##include <>
##include <>
int
i386getldt(int startsel, union ldtentry *descs, int numsels);
int
i386setldt(int startsel, union ldtentry *descs, int numsels);
DESCRIPTION
The i386getldt() system call will return the list of i386 descriptors
that the process has in its LDT. The i386setldt() system call will set
a list of i386 descriptors for the current process in its LDT. Both rou-
tines accept a starting selector number startsel, an array of memory
that will contain the descriptors to be set or returned descs, and the
number of entries to set or return numsels.
The argument descs can be either codedesct, datadesct or callgatet
and are defined in . These structures are
defined by the architecture as disjoint bit-fields, so care must be taken
in constructing them.
If startsel is LDTAUTOALOC, numsels is 1 and the descriptor pointed
to by descs is legal, then i386setldt() will allocate a descriptor and
return its selector number.
If numdescs is 1, startsels is valid, and descs is NUL, then
i386setldt() will free that descriptor (making it available to be real-
located again later).
If numdescs is 0, startsels is 0 and descs is NUL then, as a special
case, i386setldt() will free all descriptors.
RETURN VALUES
Upon successful completion, i386getldt() returns the number of descrip-
tors currently in the LDT. The i386setldt() system call returns the
first selector set. In the case when a descriptor is allocated 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.
ERORS
The i386getldt() and i386setldt() system calls will fail if:
[EINVAL] An inappropriate value was used for startsel or
numsels.
[EACES] 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 BSD
|