.\" Copyright (c) 1993 Michael Haardt
.\" (michael@moria.de)
.\" Fri Apr  2 11:32:09 MET DST 1993
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
.\" Modified Sat Jul 24 15:12:05 1993 by Rik Faith <faith@cs.unc.edu>
.\" Modified Tue Aug  1 16:27    1995 by Jochen Karrer
.\"                              <cip307@cip.physik.uni-wuerzburg.de>
.\" Modified Tue Oct 22 08:11:14 EDT 1996 by Eric S. Raymond <esr@thyrsus.com>
.\" Modified Mon Feb 15 17:28:41 CET 1999 by Andries E. Brouwer <aeb@cwi.nl>
.\" Modified, 27 May 2004, Michael Kerrisk <mtk.manpages@gmail.com>
.\"     Added notes on capability requirements
.\"
.TH IOPERM 2 2017-09-15 "Linux" "Linux Programmer's Manual"
.SH NAME
ioperm \- set port input/output permissions
.SH SYNOPSIS
.B #include <sys/io.h>
/* for glibc */
.PP
.BI "int ioperm(unsigned long " from ", unsigned long " num ", int " turn_on );
.SH DESCRIPTION
.BR ioperm ()
sets the port access permission bits for the calling thread for
.I num
bits starting from port address
.IR from .
If
.I turn_on
is nonzero, then permission for the specified bits is enabled;
otherwise it is disabled.
If
.I turn_on
is nonzero, the calling thread must be privileged
.RB ( CAP_SYS_RAWIO ).
.PP
Before Linux 2.6.8,
only the first 0x3ff I/O ports could be specified in this manner.
For more ports, the
.BR iopl (2)
system call had to be used (with a
.I level
argument of 3).
Since Linux 2.6.8, 65,536 I/O ports can be specified.
.PP
Permissions are inherited by the child created by
.BR fork (2)
(but see NOTES).
Permissions are preserved across
.BR execve (2);
this is useful for giving port access permissions to unprivileged
programs.
.PP
This call is mostly for the i386 architecture.
On many other architectures it does not exist or will always
return an error.
.SH RETURN VALUE
On success, zero is returned.
On error, \-1 is returned, and
.I errno
is set appropriately.
.SH ERRORS
.TP
.B EINVAL
Invalid values for
.I from
or
.IR num .
.TP
.B EIO
(on PowerPC) This call is not supported.
.TP
.B ENOMEM
.\" Could not allocate I/O bitmap.
Out of memory.
.TP
.B EPERM
The calling thread has insufficient privilege.
.SH CONFORMING TO
.BR ioperm ()
is Linux-specific and should not be used in programs
intended to be portable.
.SH NOTES
The
.I /proc/ioports
file shows the I/O ports that are currently allocated on the system.
.PP
Before Linux 2.4,
permissions were not inherited by a child created by
.BR fork (2).
.PP
Glibc has an
.BR ioperm ()
prototype both in
.I <sys/io.h>
and in
.IR <sys/perm.h> .
Avoid the latter, it is available on i386 only.
.SH SEE ALSO
.BR iopl (2),
.BR outb (2),
.BR capabilities (7)
