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
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
|