IOPERMSection: Linux Programmer's Manual (2)
Index | Return to Main Contents
NAMEioperm - set port input/output permissions
SYNOPSIS#include <sys/io.h> /* for glibc */
DESCRIPTIONioperm() sets the port access permission bits for the calling thread for num bits starting from port address from. If turn_on is nonzero, then permission for the specified bits is enabled; otherwise it is disabled. If turn_on is nonzero, the calling thread must be privileged (CAP_SYS_RAWIO).
Before Linux 2.6.8, only the first 0x3ff I/O ports could be specified in this manner. For more ports, the iopl(2) system call had to be used (with a level argument of 3). Since Linux 2.6.8, 65,536 I/O ports can be specified.
Permissions are not inherited by the child created by fork(2); following a fork(2) the child must turn on those permissions that it needs. Permissions are preserved across execve(2); this is useful for giving port access permissions to unprivileged programs.
RETURN VALUEOn success, zero is returned. On error, -1 is returned, and errno is set appropriately.
- Invalid values for from or num.
- (on PowerPC) This call is not supported.
- Out of memory.
- The calling thread has insufficient privilege.
CONFORMING TOioperm() is Linux-specific and should not be used in programs intended to be portable.
NOTESThe /proc/ioports file shows the I/O ports that are currently allocated on the system.
SEE ALSOiopl(2), outb(2), capabilities(7)
COLOPHONThis page is part of release 4.04 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.
Return to Main Contents