MyWebUniversity.com Home Page
 



Darwin Mac OS X man pages main menu
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
Darwin Mac OS X man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™