.\" Updated 2005-02-24, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
.\"
.TH IOPL 2 2004-05-27 "Linux" "Linux Programmer's Manual"
-.SH ̾Á°
-iopl \- I/O Æø¢¥ì¥Ù¥ë¤òÊѹ¹¤¹¤ë
-.SH ½ñ¼°
+.SH 名前
+iopl \- I/O 特権レベルを変更する
+.SH 書式
.B #include <sys/io.h>
.sp
.BI "int iopl(int " level );
-.SH ÀâÌÀ
+.SH 説明
.BR iopl ()
-¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î I/O Æø¢¥ì¥Ù¥ë¤ò
+は呼び出し元のプロセスの I/O 特権レベルを
.I level
-¤Ç»ØÄꤷ¤¿ÃͤËÊѹ¹¤¹¤ë¡£
+で指定した値に変更する。
-¤³¤Î´Ø¿ô¤Ï 8514 ¸ß´¹¤Î X ¥µ¡¼¥Ð¤ò Linux ¤ÇÆ°ºî¤µ¤»¤ë¤¿¤á¤ËɬÍפǤ¢¤ë¡£
-¤Ê¤¼¤Ê¤é¤³¤Î X ¥µ¡¼¥Ð¤Ï 65536 ¸Ä¤Î I/O ¥Ý¡¼¥ÈÁ´¤Æ¤Ø¤Î¥¢¥¯¥»¥¹¤òÍ׵᤹¤ë¤Î¤Ç
+この関数は 8514 互換の X サーバを Linux で動作させるために必要である。
+なぜならこの X サーバは 65536 個の I/O ポート全てへのアクセスを要求するので
.BR ioperm (2)
-´Ø¿ô¤Ç¤ÏÉÔ½½Ê¬¤À¤«¤é¤Ç¤¢¤ë¡£
+関数では不十分だからである。
-¤è¤ê¹â¤¤ I/O Æø¢¥ì¥Ù¥ë¤Ç¤ÎÆ°ºî¤ò¤µ¤»¤ë¤³¤È¤Ë¤è¤Ã¤Æ
-I/O ¥Ý¡¼¥È¥¢¥¯¥»¥¹¤ÎÀ©¸Â¤ò²ò½ü¤¹¤ë¤³¤È¤Ë²Ã¤¨¤Æ¡¢¥×¥í¥»¥¹¤¬³ä¤ê¹þ¤ß¤ò
-̵¸ú¤Ë¤¹¤ë¤³¤È¤â¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤³¤Îµ¡Ç½¤Ï»þ¤È¤·¤Æ¥·¥¹¥Æ¥à¤ÎÇ˲õ¤ò
-¤â¤¿¤é¤¹¤Î¤Ç´«¤á¤é¤ì¤Ê¤¤¡£
+より高い I/O 特権レベルでの動作をさせることによって
+I/O ポートアクセスの制限を解除することに加えて、プロセスが割り込みを
+無効にすることもできるようになる。この機能は時としてシステムの破壊を
+もたらすので勧められない。
.BR fork (2)
-¤ä
+や
.BR exec (2)
-¤ò¹Ô¤Ã¤¿¾ì¹ç¡¢Æø¢¤Ï·Ñ¾µ¤µ¤ì¤ë¡£
+を行った場合、特権は継承される。
-Ä̾ï¤Î¥×¥í¥»¥¹¤Î I/O Æø¢¥ì¥Ù¥ë¤Ï 0 ¤Ç¤¢¤ë¡£
+通常のプロセスの I/O 特権レベルは 0 である。
-¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤Û¤È¤ó¤É i386 ¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Î¤¿¤á¤À¤±¤Î¤â¤Î¤Ç¤¢¤ë¡£
-¤½¤Î¾¤Î¿¤¯¤Î¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Ç¤Ï¸ºß¤·¤Ê¤¤¤«¡¢¾ï¤Ë¥¨¥é¡¼¤òÊÖ¤¹¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï \-1 ¤òÊÖ¤·¡¢
+このシステムコールはほとんど i386 アーキテクチャのためだけのものである。
+その他の多くのアーキテクチャでは存在しないか、常にエラーを返す。
+.SH 返り値
+成功した場合には 0 を返す。エラーの場合には \-1 を返し、
.I errno
-¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£
-.SH ¥¨¥é¡¼
+に適切な値が設定される。
+.SH ã\82¨ã\83©ã\83¼
.TP
.B EINVAL
-°ú¤¿ô
+引き数
.I level
-¤¬ 3 ¤è¤êÂ礤¤¡£
+が 3 より大きい。
.TP
.B ENOSYS
-¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
-¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë
+このシステムコールは実装されていない。
+呼び出し元プロセスに
.BR iopl ()
-¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ë½½Ê¬¤Ê¸¢¸Â¤¬¤Ê¤«¤Ã¤¿¡£
+を呼び出すのに十分な権限がなかった。
.BR iopl ()
-¤ò¸Æ¤Ó½Ð¤¹¤Ë¤Ï
+を呼び出すには
.B CAP_SYS_RAWIO
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤¬É¬ÍפǤ¢¤ë¡£
-.SH ½àµò
+ケーパビリティが必要である。
+.SH 準拠
.BR iopl ()
-¤Ï Linux ÆÃͤδؿô¤Ç¤¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç
-»ÈÍѤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
-.SH Ãí°Õ
-libc5 ¤Ç¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤·¤Æ°·¤¤
+は Linux 特有の関数であり、移植を意図したプログラムで
+使用してはならない。
+.SH 注意
+libc5 ではシステムコールとして扱い
.I <unistd.h>
-¤Ë¥×¥í¥È¥¿¥¤¥×¤¬Â¸ºß¤·¤Æ¤¤¤ë¡£
-glibc1 ¤Ë¤Ï¥×¥í¥È¥¿¥¤¥×¤Ï¸ºß¤·¤Æ¤¤¤Ê¤¤¡£
-glibc2 ¤Ï
+にプロトタイプが存在している。
+glibc1 にはプロトタイプは存在していない。
+glibc2 は
.I <sys/io.h>
-¤È
+と
.I <sys/perm.h>
-¤ÎξÊý¤Ë¥×¥í¥È¥¿¥¤¥×¤ò»ý¤Ã¤Æ¤¤¤ë¡£
-¸å¼Ô¤Ï i386 ¤Î¤ß¤ÇÍøÍѲÄǽ¤Ê¤Î¤Ç¡¢»ÈÍѤ¹¤Ù¤¤Ç¤Ï¤Ê¤¤¡£
-.SH ´ØÏ¢¹àÌÜ
+の両方にプロトタイプを持っている。
+後者は i386 のみで利用可能なので、使用すべきではない。
+.SH 関連項目
.BR ioperm (2),
.BR capabilities (7)