This manual page is part of Xcode Tools version 3.2

To obtain these tools:

If you are running a version of Xcode Tools other than 3.2, view the documentation locally:

  • In Xcode

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • For more information about the manual page format, see the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Reference Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.



I386_GET_LDT(2)                            BSD System Calls Manual                           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 <architecture/i386/table.h>
     #include <i386/user_ldt.h>

     int
     i386_get_ldt(int start_sel, union ldt_entry *descs, int num_sels);

     int
     i386_set_ldt(int start_sel, union ldt_entry *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 code_desc_t, data_desc_t or call_gate_t and are defined in
     <architecture/i386/desc.h>.  These structures are defined by the architecture 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 descriptor 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 descrip-tor descriptor
     tor (making it available 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 number of descriptors currently in the LDT.  The
     i386_set_ldt() 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 vari-able variable
     able 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                                          BSD

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.