sys_modify_ltd [arch/i386/kernel/ldt.c]
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