Reads or writes the Local Descriptor Table (LDT) for a process.
*this information wasn't verified and may be incorrect*
Arguments
eax |
123 |
ebx |
Specifies whether a read (0), write (0x11), read_default (2), or write_oldmode (1) operation is required. |
ecx |
In case of read operation this argument is a pointer to a buffer which will receive the LDT data.
In case of write_oldmode operation this argument is a pointer to um_dup_user_desc structure which will be used to modify a LDT entry.
um_dup_user_desc structure defined as follows:
struc um_dup_user_desc
{
.entry_number rd 1
.base_addr rd 1
.limit rd 1
.bitfield rd 1
; seg_32bit :1
; contents :2
; read_exec_only :1
; limit_in_pages :1
; seg_not_present :1
; useable :1
}
|
|
edx |
In case of read operation this argument specifies the size of the buffer pointed by ecx.
In case of write_oldmode operation this argument should specify the size of um_dup_user_desc structure. |
Return values
If the system call succeeds the return value is either the actual number of bytes read (for reading) or 0 (for writing).
If the system call fails the return value is one of the following errno values:
-EFAULT |
ecx points outside the address space. |
-EINVAL |
ecx is 0, or ebx is 1 and edx is not equal to the size of the structure um_dup_user_desc, or ebx is 1 and the new ldt entry has invalid values. |
-ENOSYS |
ebx is neither 0 nor 1. |
|
Remarks
n/a
Compatibility
n/a |