NAME

     modify_ldt - get or set ldt


SYNOPSIS

     #include <linux/ldt.h>
     #include <linux/unistd.h>

     _syscall3( int, modify_ldt, int, func, void

     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  pro-
     grams intended to be portable.


SEE ALSO

     vm86(2)