]>
Commit | Line | Data |
---|---|---|
fea681da MK |
1 | .\" Hey Emacs! This file is -*- nroff -*- source. |
2 | .\" | |
3 | .\" Copyright (c) 1993 Michael Haardt | |
4 | .\" (michael@moria.de) | |
5 | .\" Fri Apr 2 11:32:09 MET DST 1993 | |
6 | .\" | |
7 | .\" This is free documentation; you can redistribute it and/or | |
8 | .\" modify it under the terms of the GNU General Public License as | |
9 | .\" published by the Free Software Foundation; either version 2 of | |
10 | .\" the License, or (at your option) any later version. | |
11 | .\" | |
12 | .\" The GNU General Public License's references to "object code" | |
13 | .\" and "executables" are to be interpreted as the output of any | |
14 | .\" document formatting or typesetting system, including | |
15 | .\" intermediate and printed output. | |
16 | .\" | |
17 | .\" This manual is distributed in the hope that it will be useful, | |
18 | .\" but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 | .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 | .\" GNU General Public License for more details. | |
21 | .\" | |
22 | .\" You should have received a copy of the GNU General Public | |
23 | .\" License along with this manual; if not, write to the Free | |
24 | .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, | |
25 | .\" USA. | |
26 | .\" | |
27 | .\" Modified Sat Jul 24 15:12:05 1993 by Rik Faith <faith@cs.unc.edu> | |
28 | .\" Modified Tue Aug 1 16:27 1995 by Jochen Karrer | |
29 | .\" <cip307@cip.physik.uni-wuerzburg.de> | |
30 | .\" Modified Tue Oct 22 08:11:14 EDT 1996 by Eric S. Raymond <esr@thyrsus.com> | |
31 | .\" Modified Mon Feb 15 17:28:41 CET 1999 by Andries E. Brouwer <aeb@cwi.nl> | |
305a0578 | 32 | .\" Modified, 27 May 2004, Michael Kerrisk <mtk-manpages@gmx.net> |
fea681da MK |
33 | .\" Added notes on capability requirements |
34 | .\" | |
c72dada1 | 35 | .TH IOPERM 2 2004-05-27 "Linux 2.6.6" "Linux Programmer's Manual" |
fea681da MK |
36 | .SH NAME |
37 | ioperm \- set port input/output permissions | |
38 | .SH SYNOPSIS | |
39 | .B #include <unistd.h> | |
40 | /* for libc5 */ | |
41 | .br | |
42 | .B #include <sys/io.h> | |
43 | /* for glibc */ | |
44 | .sp | |
45 | .BI "int ioperm(unsigned long " from ", unsigned long " num ", int " turn_on ); | |
46 | .SH DESCRIPTION | |
47 | \fBIoperm\fP sets the port access permission bits for the process for | |
48 | \fInum\fP bytes starting from port address \fBfrom\fP to the value | |
e511ffb6 | 49 | \fBturn_on\fP. The use of \fBioperm\fP() requires root privileges. |
fea681da MK |
50 | |
51 | Only the first 0x3ff I/O ports can be specified in this manner. For more | |
52 | ports, the | |
e1d6264d | 53 | .BR iopl () |
fea681da | 54 | function must be used. |
4a225b7a MK |
55 | Permissions are not inherited on |
56 | .BR fork (), | |
57 | but on | |
58 | .BR exec () | |
59 | they are. This is | |
fea681da MK |
60 | useful for giving port access permissions to non-privileged tasks. |
61 | ||
62 | This call is mostly for the i386 architecture. | |
63 | On many other architectures it does not exist or will always | |
64 | return an error. | |
65 | .SH "RETURN VALUE" | |
66 | On success, zero is returned. On error, \-1 is returned, and | |
67 | .I errno | |
68 | is set appropriately. | |
69 | .SH ERRORS | |
70 | .TP | |
71 | .B EINVAL | |
72 | Invalid values for | |
73 | .I from | |
74 | or | |
75 | .IR num . | |
76 | .TP | |
77 | .B EIO | |
78 | (on ppc) This call is not supported. | |
79 | .TP | |
80 | .B EPERM | |
81 | The calling process has insufficient privilege to call | |
e511ffb6 | 82 | .BR ioperm (); |
fea681da MK |
83 | the |
84 | .B CAP_SYS_RAWIO | |
85 | capability is required. | |
86 | .SH "CONFORMING TO" | |
e511ffb6 | 87 | \fBioperm\fP() is Linux specific and should not be used in programs |
fea681da MK |
88 | intended to be portable. |
89 | .SH NOTES | |
90 | Libc5 treats it as a system call and has a prototype in | |
91 | .IR <unistd.h> . | |
92 | Glibc1 does not have a prototype. Glibc2 has a prototype both in | |
93 | .I <sys/io.h> | |
94 | and in | |
95 | .IR <sys/perm.h> . | |
96 | Avoid the latter, it is available on i386 only. | |
97 | .SH "SEE ALSO" | |
98 | .BR iopl (2), | |
99 | .BR capabilities (7) |