IOPERM
Section: Linux Programmer's Manual (2)
Updated: 2017-09-15
Index
JM Home Page
roff page
 
名前
ioperm - ポートの入出力許可を設定する
 
書式
#include <sys/io.h> /* for glibc */
int ioperm(unsigned long from, unsigned long num, int
turn_on);
 
説明
ioperm()  は、引数 from の I/O ポートアドレスから num
ビット分の領域に対する、呼び出し元スレッドのアクセス許可ビットを設定する。 turn_on が 0
以外の場合、指定されたビットに対応する許可が有効になる。 turn_on が 0 以外の場合、呼び出し元プロセスは特権
(CAP_SYS_RAWIO)  を持っていなければならない。
Linux 2.6.8 より前のバージョンでは、この方法で設定できるのは 0x3ff 番地までの
I/Oポートに限られていた。これよりも大きなアドレスのポートに対しては iopl(2) 関数を使わなければならなかった。Linux 2.6.8
以降では、65,536 個の I/O ポートを指定できる。
Permissions are inherited by the child created by fork(2)  (but see
NOTES).  Permissions are preserved across execve(2); this is useful for
giving port access permissions to unprivileged programs.
このシステムコールはほとんど i386 アーキテクチャーのためだけのものである。 その他の多くのアーキテクチャーでは存在しないか、常にエラーを返す。
 
返り値
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。
 
エラー
- EINVAL
 - 
from または num の値が不正である。
 - EIO
 - 
(PowerPC で) このシステムコールはサポートしていない。
 - ENOMEM
 - 
メモリー不足。
 - EPERM
 - 
呼び出し元スレッドに十分な権限がなかった。
 
 
準拠
ioperm()  は Linux 特有の関数であり、移植を意図したプログラムで 使用してはならない。
 
注意
/proc/ioports ファイルには、現在このシステムに割り当てられている I/O ポートが表示される。
Before Linux 2.4, permissions were not inherited by a child created by
fork(2).
glibc2 には <sys/io.h> と <sys/perm.h> の両方に ioperm()
のプロトタイプがある。 後者は i386 のみで利用可能なので、使用すべきではない。
 
関連項目
iopl(2), outb(2), capabilities(7)
 
この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/ に書かれている。
 Index
- 名前
 - 
 - 書式
 - 
 - 説明
 - 
 - 返り値
 - 
 - エラー
 - 
 - 準拠
 - 
 - 注意
 - 
 - 関連項目
 - 
 - この文書について
 - 
 
This document was created by
man2html,
using the manual pages.
Time: 16:46:41 GMT, November 24, 2023