i386_get_ldt(2) FreeBSD 一般コマンドマニュアル

i386_get_ldt

前のページ 上に戻る 次のページ

i386_get_ldt


     Standard C Library (libc, -lc)


書式

     #include <machine/segments.h>
     #include <machine/sysarch.h>

     int
     i386_get_ldt(int start_sel, union descriptor *descs, int num_sels);

     int
     i386_set_ldt(int start_sel, union descriptor *descs, int num_sels);


解説

     i386_get_ldt() はプロセスの LDT の中にある i386 記述子のリストを返しま
     す。 i386_set_ldt() は現在のプロセスのための i386 記述子のリストを、その
     プロセスの LDT に設定します。両方のルーチンは、開始するセレクタ番号の
     start_sel と、設定する記述子の入った、または記述子が返されるメモリの配列
     の descs および設定または返されるエントリ数の num_sels を受け取ります。

     引数 descs としては segment_descriptor または gate_descriptor のどちらか
     を指定でき、これらは <i386/segments.h> 内に定義されています。これらの構成
     要素は、アーキテクチャに対応してばらばらになったビットフィールドとして定
     義されているので、それらを組み立てる際には注意を払う必要があります。

     これらの関数を使用するには、カーネルの設定ファイル中で ``options
     USER_LDT'' を指定していなければならないことに注意してください。


戻り値

     正常に完了した場合、 i386_get_ldt() は現在 LDT 内にある記述子の数を返しま
     す。 i386_set_ldt() は最初のセレクタセットを返します。そうでない場合は -1
     が返され、エラーを示すためにグローバル変数 errno が設定されます。


エラー

     i386_get_ldt() と i386_set_ldt() は次の場合に失敗します。

     [EINVAL]           start_sel または num_sels について不適切なパラメータが
                        使用されました。

     [EACCES]           呼び出し側が保護機構を欺くかまたは障害を起こす記述子を
                        使おうとしました。


関連項目

     i386 Microprocessor Programmer's Reference Manual, Intel


警告

     これを使用してプロセスをまったくダメにすることができます。

FreeBSD 4.4                   September 20, 1993                   FreeBSD 4.4

ABELNET VPSサービス