MODIFY_LDT

Section: Linux Programmer's Manual (2)
Updated: 2012-07-13
Index JM Home Page
 

名前

modify_ldt - ldt を設定または取得する  

書式

#include <sys/types.h>

int modify_ldt(int func, void *ptr, unsigned long bytecount);

注: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。  

説明

modify_ldt() はプロセスのローカルディスクリプターテーブル (local descriptor table; ldt) を読み書きする。 ldt は i386 プロセッサで使用されるプロセスごとのメモリー管理テーブルである。 このテーブルに関してのより詳しい情報は Intel 386 processor handbook を 参照すること。

func が 0 ならば、 modify_ldt() は ldt を ptr が指しているメモリーに読み込む。 読み込むバイト数は実際の ldt のサイズか bytecount より小さい方である。

func が 1 ならば、 modify_ldt() は ldt エントリーの一つを変更する。 ptr は user_desc 構造体を指し、 bytecount はこの構造体の大きさに等しくなければならない。

user_desc 構造体は <asm/ldt.h> で以下のように定義されている:


struct user_desc {
    unsigned int  entry_number;
    unsigned long base_addr;
    unsigned int  limit;
    unsigned int  seg_32bit:1;
    unsigned int  contents:2;
    unsigned int  read_exec_only:1;
    unsigned int  limit_in_pages:1;
    unsigned int  seg_not_present:1;
    unsigned int  useable:1;
};

Linux 2.4 以前では、この構造体は modify_ldt_ldt_s という名前であった。  

返り値

成功した場合は、 modify_ldt() は (読み込みの場合は) 実際に読み込んだバイト数、 または (書き込みの場合は) 0 を返す。 失敗した場合は modify_ldt() は -1 を返し、 errno をエラーを示す値に設定する。  

エラー

EFAULT
ptr がアドレス空間の外を指している。
EINVAL
ptr が 0 である、 または func が 1 で bytecount が modify_ldt_ldt_s 構造体のサイズと等しくないか、 func が 1 で新しい ldt エントリーが無効な値である。
ENOSYS
func が 0 でも 1 でもない。
 

準拠

このコールは Linux 特有であり、移植を意図したプログラムでは 使用してはいけない。  

注意

glibc はこのシステムコールに対するラッパー関数を提供していない。 syscall(2) を使って呼び出すこと。  

関連項目

vm86(2)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

構造体   テーブル   desc   modify   long   ラッパー   メモリー   バイト   実際   エントリー   limit   types   ローカル   local   descriptor   table   読み書き   プロセッサ   管理   Intel   processor   handbook   struct   user   entry

Linux マニュアル 一覧

関連するコマンド・関数

hcreate.3   hcreate_r.3   hdestroy.3   hdestroy_r.3   hsearch.3   hsearch_r.3
 

Index

名前
書式
説明
返り値
エラー
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:38:56 GMT, October 11, 2026