ioperm

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
IOPERM(2)		  Linux Programmer’s Manual		    IOPERM(2)



NAME
       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 process for num
       bytes starting from port address from to the value turn_on.   The  use
       of ioperm requires root privileges.

       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.

       This call is mostly for the i386 architecture.  On many	other  archi-
       tectures it does not exist or will always return an error.

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

ERRORS
       EINVAL Invalid values for from or num.

       EPERM  Caller does not have the CAP_SYS_RAWIO privileges.

       EIO    (on ppc) This call is not supported.

CONFORMING TO
       ioperm is Linux specific and should not be used in  programs  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)



Linux				  1993-01-21			    IOPERM(2)