ioperm - set port input/output permissions


SYNOPSIS

       #include <unistd.h> /* for libc5 */
       #include <sys/io.h> /* for glibc */

       int  ioperm(unsigned  long  from,  unsigned  long num, int
       turn_on);


DESCRIPTION

       Ioperm sets the port access permission bits for  the  pro­
       cess  for num bytes starting from port address from to the
       value turn_on.  The use of  ioperm  requires  root  privi­
       leges.

       Only  the  first  0x3ff I/O ports can be specified in this
       manner.  For more ports, the iopl function must  be  used.
       Permissions  are  not  inherited on fork, but on exec they
       are. This is useful for giving port access permissions  to
       non-privileged tasks.


RETURN VALUE

       On  success,  zero is returned.  On error, -1 is returned,
       and errno is set appropriately.


CONFORMING TO

       ioperm is Linux specific and should not be  used  in  pro­
       grams 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

       iopl(2)