iopl

Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services

NAME

       iopl - change I/O privilege level


SYNOPSIS

       #include <unistd.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.

       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.


NOTES FROM THE KERNEL SOURCE

       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.


SEE ALSO

       ioperm(2)
Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services
Copyright (C) 1998 Hurricane Electric. All Rights Reserved.