iopermのヘルプ・マニュアル
日本語 英語
ioperm --help
man ioperm
IOPERM(2) Linux Programmer’s Manual IOPERM(2)
名前
ioperm - ポートの入出力許可を設定する
書式
#include /* for libc5 */
#include /* for glibc */
int ioperm(unsigned long from, unsigned long num, int turn_on);
説明
ioperm() は、引き数 from の I/O ポートアドレスから num バイト分の領域に
対する、呼び出し元プロセスのアクセス許可ビットを、turn_on に設定する 。
turn_on が 0 以外の場合、呼び出し元プロセスは特権 (CAP_SYS_RAWIO) を持
っていなければならない。
この方法で設定できるのは 0x3ff 番地までの I/Oポートに限られる。これより
も大きなアドレスのポートに対しては iopl(2) 関数を使わなければならない。
アクセス権は fork(2) で作成された子プロセスには継承されない。 execve(2)
の 前後でアクセス権は保存される。この機能は非特権プログラムにポートへの
アクセス権を与えるのに使用できる。
このシステムコールはほとんど i386 アーキテクチャのためだけのものであ る
。その他の多くのアーキテクチャでは存在しないか、常にエラーを返す。
返り値
成 功した場合には 0 を返す。エラーの場合に -1 を返し、 errno に適切な値
を設定する。
エラー
EINVAL from または num の値が不正である。
EIO (PowerPC で) このシステムコールはサポートしていない。
ENOMEM メモリ不足。
EPERM 呼び出し元プロセスに十分な権限がなかった。
準拠
ioperm() は Linux 特有の関数であり、移植を意図したプログラムで使用し て
はならない。
注意
libc5 ではシステムコールとして扱い にプロトタイプが存在して
いる。 glibc1 にはプロトタイプは存在しない。 glibc2 は と
の両方にプロトタイプを持っている。後者は i386 のみで利用可
能なので、使用すべきではない。
関連項目
iopl(2), capabilities(7)
Linux 2007-06-15 IOPERM(2)
IOPERM(2) Linux Programmer’s Manual IOPERM(2)
NAME
ioperm - set port input/output permissions
SYNOPSIS
#include /* for libc5 */
#include /* for glibc */
int ioperm(unsigned long from, unsigned long num, int turn_on);
DESCRIPTION
ioperm() sets the port access permission bits for the calling process
for num bytes starting from port address from to the value turn_on. If
turn_on is non-zero, the calling process must be privileged
(CAP_SYS_RAWIO).
Only the first 0x3ff I/O ports can be specified in this manner. For
more ports, the iopl(2) system call must be used.
Permissions are not inherited by the child created by fork(2). Permis-
sions are preserved across execve(2); this is useful for giving port
access permissions to non-privileged programs.
This call is mostly for the i386 architecture. On many other architec-
tures it does not exist or will always return an error.
RETURN VALUE
On success, zero is returned. On error, -1 is returned, and errno is
set appropriately.
ERRORS
EINVAL Invalid values for from or num.
EIO (on PowerPC) This call is not supported.
ENOMEM Out of memory.
EPERM The calling process has insufficient privilege.
CONFORMING TO
ioperm() is Linux-specific and should not be used in programs intended
to be portable.
NOTES
Libc5 treats it as a system call and has a prototype in .
Glibc1 does not have a prototype. Glibc2 has a prototype both in
and in . Avoid the latter, it is available on
i386 only.
SEE ALSO
iopl(2), capabilities(7)
COLOPHON
This page is part of release 3.22 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
Linux 2007-06-15 IOPERM(2)