modify_ldt - получает или устанавливает ldt
НАЗВАНИЕmodify_ldt - получает или устанавливает ldt
СИНТАКСИС
#include
#include
_syscall3( int, modify_ldt, int, func, void *, ptr, unsigned long, bytecount );
int modify_ldt(int func, void *ptr, unsigned long bytecount);
ОПИСАНИЕ
modify_ldt читает или записывает локальную таблицу
описателей (ldt) процесса. Ldt - это таблица управления
памятью процесса, используемая в процессорах серии i386.
Подробнее о содержимом этой таблицы читайте в руководствах
по процессору Intel 386.
Если значение func равно 0, то modify_ldt записывает ldt в
память (адрес указан ptr). После этого количество
прочитанных байтов меньше или равно bytecount и равно
реальному размеру ldt.
Если значение func равно 1, то modify_ldt изменяет одну
запись ldt. ptr должен указывать на структуру mod-
ify_ldt_ldt_s , а bytecount должен быть равен размеру этой
структуры.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При удачном завершении работы modify_ldt возвращает или
количество прочитанных байтов (при чтении), или 0 (при
записи). В случае ошибки modify_ldt возвращает -1, а
переменной errno присваивается номер ошибки.
КОДЫ ОШИБОК
ENOSYS Аргумент func не равен 0 или 1.
EINVAL В этом случае ptr равен 0 или func равен 1 и byte-
count не равен размеру структуры modify_ldt_ldt_s,
или func равен 1, а в новой записи ldt есть
неправильные значения.
EFAULT ptr указывает на каталоги за пределами доступного
адресного пространства.
СООТВЕТСТВИЕ СТАНДАРТАМ
modify_ldt - это функция, специфичная для Linux. Не
рекомендуется использовать ее в программах, переносимых в
другие системы.