Penguin

Differences between current version and revision by previous author of iopl(2).

Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History

Newer page: version 2 Last edited on Thursday, February 20, 2003 11:39:40 pm by PerryLorier
Older page: version 1 Last edited on Tuesday, June 4, 2002 12:23:42 am by perry Revert
@@ -1,87 +1,36 @@
-IOPL  
-!!!IOPL  
-NAME  
-SYNOPSIS  
-DESCRIPTION  
-RETURN VALUE  
-ERRORS  
-NOTES FROM THE KERNEL SOURCE  
-CONFORMING TO  
-COMPATIBILITY  
-SEE ALSO  
-----  
 !!NAME 
+iopl - change I/O privilege level  
  
-  
-iopl - change I/O privilege level  
 !!SYNOPSIS 
+ __#include <sys/io.h>__  
  
-  
-__#include __  
-  
-  
- __int iopl(int__ ''level''__);__ 
+ __int iopl(int__ ''level''__);__ 
 !!DESCRIPTION 
+iopl(2) changes the I/O privilege level of the current process, as specified in ''level''.  
  
-  
-__iopl__ changes the I/O privilege level of the current  
-process, as specified in ''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 __ ioperm__ call is not 
+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 ioperm(2) 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.  
-  
+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.  
  
-The I/O privilege level for a normal process is  
-0.  
 !!RETURN VALUE 
-  
-  
- On success, zero is returned. On error, -1 is returned, and  
- ''errno'' is set appropriately. 
+On success, zero is returned. On error, -1 is returned, and ''errno'' is set appropriately. 
 !!ERRORS 
+;[EINVAL]: ''level'' is greater than 3.  
+;[EPERM]: The current user is not the super-user.  
  
-  
-__EINVAL__  
-  
-  
-''level'' is greater than 3.  
-  
-  
-__EPERM__  
-  
-  
-The current user is not the super-user.  
 !!NOTES FROM THE KERNEL SOURCE 
+iopl(2) has to be used when you want to access the I/O ports beyond the 0x3ff range: to get the full 65536 ports bitmapped you'd need 8kB of bitmaps/process, which is a bit excessive.  
  
-  
-__iopl__ has to be used when you want to access the I/O  
-ports beyond the 0x3ff range: to get the full 65536 ports  
-bitmapped you'd need 8kB of bitmaps/process, which is a bit  
-excessive.  
 !!CONFORMING TO 
+iopl(2) is Linux specific and should not be used in processes intended to be portable.  
  
-  
-__iopl__ is Linux specific and should not be used in  
-processes intended to be portable.  
 !!COMPATIBILITY 
+Under libc5, the prototype for __iopl__() was given in ''<unistd.h>''. Glibc1 does not have a prototype. Glibc2 has a prototype both in <sys/io.h> and in <sys/perm.h>. Avoid the latter, it is available on i386 only.  
  
-  
-Under libc5, the prototype for __iopl__() was given in  
-''''.  
 !!SEE ALSO 
-  
-  
 ioperm(2) 
-----  
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.