iopl
IOPL(L)             Linux Programmer's Manual             IOPL(L)



NAME
       iopl - change I/O privilege level

SYNOPSIS
       #include <sys/io.h>

       int iopl(int level);

DESCRIPTION
       iopl  changes  the I/O privilege level of the current pro-
       cess, 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 sufficient.

       In addition to granting unrestricted I/O port access, run-
       ning at a higher I/O privilege level also allows the  pro-
       cess  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.

RETURN VALUE
       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.

CONFORMING TO
       iopl is Linux specific and should not be used in processes
       intended to be portable.

NOTES
       Libc5 treats it as a system call and has  a  prototype  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.

SEE ALSO
       ioperm(m)



Linux 0.99.11               1993-07-24                    IOPL(L)