summaryrefslogtreecommitdiffstats
path: root/man2/iopl.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/iopl.2')
-rw-r--r--man2/iopl.293
1 files changed, 93 insertions, 0 deletions
diff --git a/man2/iopl.2 b/man2/iopl.2
new file mode 100644
index 000000000..3f07dbeac
--- /dev/null
+++ b/man2/iopl.2
@@ -0,0 +1,93 @@
+.\" Hey Emacs! This file is -*- nroff -*- source.
+.\"
+.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu)
+.\" Portions extracted from linux/kernel/ioport.c (no copyright notice).
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" Modified Tue Aug 1 16:47 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 Fri Nov 27 14:50:36 CET 1998 by Andries Brouwer <aeb@cwi.nl>
+.\" Modified, 27 May 2004, Michael Kerrisk <mtk16@ext.canterbury.ac.nz>
+.\" Added notes on capability requirements
+.\"
+.TH IOPL 2 2004-05-27 "Linux 2.6.6" "Linux Programmer's Manual"
+.SH NAME
+iopl \- change I/O privilege level
+.SH SYNOPSIS
+.B #include <sys/io.h>
+.sp
+.BI "int iopl(int " level );
+.SH DESCRIPTION
+.B iopl
+changes the I/O privilege level of the current process, as specified in
+.IR level .
+
+This call is necessary to allow 8514-compatible X servers to run under
+Linux. Since these X servers require access to all 65536 I/O ports, the
+.B ioperm
+call is not sufficient.
+
+In addition to granting unrestricted I/O port access, running at a higher
+I/O privilege level also allows the process to disable interrupts. This
+will probably crash the system, and is not recommended.
+
+Permissions are inherited by fork and exec.
+
+The I/O privilege level for a normal process is 0.
+
+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
+.I level
+is greater than 3.
+.TP
+.B ENOSYS
+This call is unimplemented.
+.TP
+.B EPERM
+The calling process has insufficient privilege to call
+.BR iopl ;
+the
+.B CAP_SYS_RAWIO
+capability is required.
+.SH "CONFORMING TO"
+\fBiopl\fP is Linux specific and should not be used in processes
+intended to be portable.
+.SH NOTES
+Libc5 treats it as a system call and has a prototype in
+.IR <unistd.h> .
+Glibc1 does not have a prototype. Glibc2 has a 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 ioperm (2),
+.BR capabilities (7)