【iopl系统调用】

功能描述:
改变当前进程I/O端口的权能级别。对于允许8514兼容的X服务器在Linux上运行,这一系统调用必不可少。X服务器要求访问所有 65536个I/O端口,ioperm调用不能满足这种需求。另外,为了获取不受限制的I/O端口访问权,以较高级别的I/O权能级运行将允许进程禁止中断。这可能导致系统的崩毁,不推荐那样做。一般用户的I/O访问级是0。本系统调用只应用于i386平台。

用法:
#include <sys/io.h>
int iopl(int level);

参数:
level:新的I/O访问级,范围是[0~3]。
返回说明:
成功执行时,返回0。失败返回-1,errno被设为以下的某个值
EINVAL:参数无效,level大于3
ENOSYS:平台不支持这个系统调用
EPERM:调用进程没有权限使用iopl,要求CAP_SYS_RAWIO权能