Pegasus InfoCorp: Web site design and web software development company

MODIFY_LDT (2)

get or set ldt

SYNOPSIS

    #include <linux/ldt.h>
    #include <linux/unistd.h>
    _syscall3( int, modify_ldt, int, func, void *, ptr, unsigned long, bytecount )
      int modify_ldt(int  func , void * ptr , unsigned long  bytecount );  
    

DESCRIPTION

    modify_ldt reads or writes the local descriptor table (ldt) for a process. The ldt is a per-process memory management table used by the i386 processor. For more information on this table, see an Intel 386 processor handbook.

    When func is 0, modify_ldt reads the ldt into the memory pointed to by ptr . The number of bytes read is the smaller of bytecount and the actual size of the ldt.

    When func is 1, modify_ldt modifies one ldt entry. ptr points to a modify_ldt_ldt_s structure and bytecount must equal the size of this structure.

RETURN VALUE

    On success, modify_ldt returns either the actual number of bytes read (for reading) or 0 (for writing). On failure, modify_ldt returns -1 and sets errno .

ERRORS

    ENOSYS

      func is neither 0 nor 1.

    EINVAL

      ptr is 0, or func is 1 and bytecount is not equal to the size of the structure modify_ldt_ldt_s , or func is 1 and the new ldt entry has illegal values.

    EFAULT

      ptr points outside the address space.

CONFORMING TO

    This call in Linux-specfic and should not be used in programs intended to be portable.

SEE ALSO