Provided by: manpages-ja-dev_0.5.0.0.20210215+dfsg-1_all 
      
    
名前
       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 ポートを指定できる。
       アクセス権は fork(2)  で作成された子プロセスには継承されない。子プロセスでは、fork(2)  の後で必要なアクセ
       ス権を有効にしなければならない。 execve(2)  の前後でアクセス権は保存される。この機能は 非特権プログラムに
       ポートへのアクセス権を 与えるのに使用できる。
       このシステムコールはほとんど i386 アーキテクチャーのためだけのものである。 その他の多くのアーキテクチャー
       では存在しないか、常にエラーを返す。
返り値
       成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。
エラー
       EINVAL from または num の値が不正である。
       EIO    (PowerPC で) このシステムコールはサポートしていない。
       ENOMEM メモリー不足。
       EPERM  呼び出し元スレッドに十分な権限がなかった。
準拠
       ioperm()  は Linux 特有の関数であり、移植を意図したプログラムで 使用してはならない。
注意
       /proc/ioports ファイルには、現在このシステムに割り当てられている I/O ポートが表示される。
       glibc2  には <sys/io.h> と <sys/perm.h> の両方に ioperm() のプロトタイプがある。 後者は i386 のみで利用可
       能なので、使用すべきではない。
関連項目
       iopl(2), outb(2), capabilities(7)
この文書について
       この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告
       に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
Linux                                              2014-08-19                                          IOPERM(2)