diff options
Diffstat (limited to 'man2/ioperm.2')
-rw-r--r-- | man2/ioperm.2 | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/man2/ioperm.2 b/man2/ioperm.2 new file mode 100644 index 0000000..dcbad6c --- /dev/null +++ b/man2/ioperm.2 @@ -0,0 +1,105 @@ +.\" Copyright (c) 1993 Michael Haardt +.\" (michael@moria.de) +.\" Fri Apr 2 11:32:09 MET DST 1993 +.\" +.\" SPDX-License-Identifier: GPL-2.0-or-later +.\" +.\" 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 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +ioperm \- set port input/output permissions +.SH LIBRARY +Standard C library +.RI ( libc ", " \-lc ) +.SH SYNOPSIS +.nf +.B #include <sys/io.h> +.PP +.BI "int ioperm(unsigned long " from ", unsigned long " num ", int " turn_on ); +.fi +.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 to indicate the error. +.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 VERSIONS +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 STANDARDS +Linux. +.SH HISTORY +Before Linux 2.4, +permissions were not inherited by a child created by +.BR fork (2). +.SH NOTES +The +.I /proc/ioports +file shows the I/O ports that are currently allocated on the system. +.SH SEE ALSO +.BR iopl (2), +.BR outb (2), +.BR capabilities (7) |