OSDN Git Service

(split) LDP: Update releases based on LDP 3.52 release
[linuxjm/LDP_man-pages.git] / release / man2 / modify_ldt.2
index b2a081c..77ad8ef 100644 (file)
@@ -1,7 +1,6 @@
-.\" Hey Emacs! This file is -*- nroff -*- source.
-.\"
 .\" Copyright (c) 1995 Michael Chastain (mec@duracef.shout.net), 22 July 1995.
 .\"
+.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
 .\" This is free documentation; you can redistribute it and/or
 .\" modify it under the terms of the GNU General Public License as
 .\" published by the Free Software Foundation; either version 2 of
 .\" GNU General Public License for more details.
 .\"
 .\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, write to the Free
-.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
-.\" USA.
+.\" License along with this manual; if not, see
+.\" <http://www.gnu.org/licenses/>.
+.\" %%%LICENSE_END
 .\"
-.\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
-.\"         all rights reserved.
-.\" Translated 1997-02-23, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
-.\" Updated & Modified 2005-02-24, Yuichi SATO <ysato444@yahoo.co.jp>
-.\" Updated 2007-06-18, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.57
+.\"*******************************************************************
 .\"
-.\"WORD:       ldt                     ldt
-.\"WORD:       local descriptor table  ¥í¡¼¥«¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Æ¡¼¥Ö¥ë
-.\"WORD:       processer               ¥×¥í¥»¥Ã¥µ
-.\"WORD:       entry                   ¥¨¥ó¥È¥ê
+.\" This file was generated with po4a. Translate the source file.
 .\"
-.TH MODIFY_LDT 2 2007-06-01 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-modify_ldt \- ldt ¤òÀßÄê¤Þ¤¿¤Ï¼èÆÀ¤¹¤ë
-.SH ½ñ¼°
+.\"*******************************************************************
+.TH MODIFY_LDT 2 2012\-07\-13 Linux "Linux Programmer's Manual"
+.SH 名前
+modify_ldt \- ldt を設定または取得する
+.SH 書式
 .nf
-.B #include <sys/types.h>
+\fB#include <sys/types.h>\fP
 .sp
-.BI "int modify_ldt(int " "func" ", void *" "ptr" ", unsigned long " "bytecount" );
+\fBint modify_ldt(int \fP\fIfunc\fP\fB, void *\fP\fIptr\fP\fB, unsigned long \fP\fIbytecount\fP\fB);\fP
 .fi
-.SH ÀâÌÀ
-.BR modify_ldt ()
-¤Ï¥×¥í¥»¥¹¤Î¥í¡¼¥«¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Æ¡¼¥Ö¥ë (local descriptor table; ldt)
-¤òÆɤ߽ñ¤­¤¹¤ë¡£
-ldt ¤Ï i386 ¥×¥í¥»¥Ã¥µ¤Ç»ÈÍѤµ¤ì¤ë¥×¥í¥»¥¹¤´¤È¤Î¥á¥â¥ê´ÉÍý¥Æ¡¼¥Ö¥ë¤Ç¤¢¤ë¡£
-¤³¤Î¥Æ¡¼¥Ö¥ë¤Ë´Ø¤·¤Æ¤Î¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï Intel 386 processor handbook ¤ò
-»²¾È¤¹¤ë¤³¤È¡£
+
+\fI注\fP: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。
+.SH 説明
+\fBmodify_ldt\fP()  はプロセスのローカル・ディスクリプタ・テーブル (local descriptor table; ldt)
+を読み書きする。 ldt は i386 プロセッサで使用されるプロセスごとのメモリ管理テーブルである。 このテーブルに関してのより詳しい情報は
+Intel 386 processor handbook を 参照すること。
 .PP
-.I func
-¤¬ 0 ¤Ê¤é¤Ð¡¢
-.BR modify_ldt ()
-¤Ï ldt ¤ò
-.I ptr
-¤¬»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤ËÆɤ߹þ¤à¡£
-Æɤ߹þ¤à¥Ð¥¤¥È¿ô¤Ï¼ÂºÝ¤Î ldt ¤Î¥µ¥¤¥º¤«
-.I bytecount
-¤è¤ê¾®¤µ¤¤Êý¤Ç¤¢¤ë¡£
+\fIfunc\fP が 0 ならば、 \fBmodify_ldt\fP()  は ldt を \fIptr\fP が指しているメモリに読み込む。
+読み込むバイト数は実際の ldt のサイズか \fIbytecount\fP より小さい方である。
 .PP
-.I func
-¤¬ 1 ¤Ê¤é¤Ð¡¢
-.BR modify_ldt ()
-¤Ï ldt ¥¨¥ó¥È¥ê¤Î°ì¤Ä¤òÊѹ¹¤¹¤ë¡£
-.I ptr
-¤Ï
-.I user_desc
-¹½Â¤ÂΤò»Ø¤·¡¢
-.I bytecount
-¤Ï¤³¤Î¹½Â¤ÂΤÎÂ礭¤µ¤ËÅù¤·¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
 .\"
-.\" FIXME ? say something about func == 2 ans func == 0x11?
+.\" FIXME ? say something about func == 2 and func == 0x11?
 .\" In Linux 2.4, func == 2 returned "the default ldt"
 .\" In Linux 2.6, func == 2 is a nop, returning a zeroed out structure.
 .\" Linux 2.4 and 2.6 implement an operation for func == 0x11
+\fIfunc\fP が 1 ならば、 \fBmodify_ldt\fP()  は ldt エントリの一つを変更する。 \fIptr\fP は \fIuser_desc\fP
+構造体を指し、 \fIbytecount\fP はこの構造体の大きさに等しくなければならない。
 
-.I user_desc
-¹½Â¤ÂΤϠ\fI<asm/ldt.h>\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
+\fIuser_desc\fP 構造体は \fI<asm/ldt.h>\fP で以下のように定義されている:
 .in +4n
 .nf
 
@@ -95,53 +71,34 @@ struct user_desc {
 .fi
 .in
 .PP
-Linux 2.4 °ÊÁ°¤Ç¤Ï¡¢¤³¤Î¹½Â¤ÂΤÏ
-.I modify_ldt_ldt_s
-¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤Ã¤¿¡£
 .\" .PP
-.\" ldt ¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¸ÇÍ­¤Î¤â¤Î¤Ç¤¢¤ë¡£
-.\" Â¾¤Î¥×¥í¥»¥¹¤ä¥«¡¼¥Í¥ë¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ò´Þ¤à¤è¤¦¤Ë ldt ¤òÊѹ¹¤·¤è¤¦¤¹¤ë¤È¡¢
-.\" ¥×¥í¥»¥¹¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Î¥á¥â¥ê¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤¿¤È¤­¤Ë¡¢
-.\" ¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿ (segmentation violation) ¤Ë¤Ê¤ë¡£
-.\" ¥á¥â¥êÊݸî¤Ï¥Ú¡¼¥¸¥ó¥°¥ì¥¤¥ä¤Ç¼Â»Ü¤µ¤ì¤ë¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç¤Ï¡¢
-.BR modify_ldt ()
-¤Ï (Æɤ߹þ¤ß¤Î¾ì¹ç¤Ï) ¼ÂºÝ¤ËÆɤ߹þ¤ó¤À¥Ð¥¤¥È¿ô¡¢
-¤Þ¤¿¤Ï (½ñ¤­¹þ¤ß¤Î¾ì¹ç¤Ï) 0 ¤òÊÖ¤¹¡£
-¼ºÇÔ¤·¤¿¾ì¹ç¤Ï
-.BR modify_ldt ()
-¤Ï \-1 ¤òÊÖ¤·¡¢
-.I errno
-¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£
-.SH ¥¨¥é¡¼
-.TP
-.B EFAULT
-.I ptr
-¤¬¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£
-.TP
-.B EINVAL
-.I ptr
-¤¬ 0 ¤Ç¤¢¤ë¡¢
-¤Þ¤¿¤Ï
-.I func
-¤¬ 1 ¤Ç
-.I bytecount
-¤¬
-.I modify_ldt_ldt_s
-¹½Â¤ÂΤΥµ¥¤¥º¤ÈÅù¤·¤¯¤Ê¤¤¤«¡¢
-.I func
-¤¬ 1 ¤Ç¿·¤·¤¤ ldt ¥¨¥ó¥È¥ê¤¬Ìµ¸ú¤ÊÃͤǤ¢¤ë¡£
-.TP
-.B ENOSYS
-.I func
-¤¬ 0 ¤Ç¤â 1 ¤Ç¤â¤Ê¤¤¡£
-.SH ½àµò
-¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï
-»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£
-.SH Ãí°Õ
-glibc ¤Ï¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ËÂФ¹¤ë¥é¥Ã¥Ñ¡¼´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤Ê¤¤¡£
-.BR syscall (2)
-¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR vm86 (2)
+.\" The ldt is specific for the calling process. Any attempts to change
+.\" the ldt to include the address space of another process or the kernel
+.\" will result in a segmentation violation when trying to access the memory
+.\" outside of the process address space. The memory protection is enforced
+.\" at the paging layer.
+Linux 2.4 以前では、この構造体は \fImodify_ldt_ldt_s\fP という名前であった。
+.SH 返り値
+成功した場合は、 \fBmodify_ldt\fP()  は (読み込みの場合は) 実際に読み込んだバイト数、 または (書き込みの場合は) 0 を返す。
+失敗した場合は \fBmodify_ldt\fP()  は \-1 を返し、 \fIerrno\fP をエラーを示す値に設定する。
+.SH エラー
+.TP 
+\fBEFAULT\fP
+\fIptr\fP がアドレス空間の外を指している。
+.TP 
+\fBEINVAL\fP
+\fIptr\fP が 0 である、 または \fIfunc\fP が 1 で \fIbytecount\fP が \fImodify_ldt_ldt_s\fP
+構造体のサイズと等しくないか、 \fIfunc\fP が 1 で新しい ldt エントリが無効な値である。
+.TP 
+\fBENOSYS\fP
+\fIfunc\fP が 0 でも 1 でもない。
+.SH 準拠
+このコールは Linux 特有であり、移植を意図したプログラムでは 使用してはいけない。
+.SH 注意
+glibc はこのシステムコールに対するラッパー関数を提供していない。 \fBsyscall\fP(2)  を使って呼び出すこと。
+.SH 関連項目
+\fBvm86\fP(2)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.52 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。