modify_ldt (2)





NAME

       modify_ldt - 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 pro-
       cess.  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 invalid values.

       EFAULT ptr points outside the address space.


CONFORMING TO

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


SEE ALSO

       vm86(2)

Linux 1.3.6                       1995-07-22                     modify_ldt(2)