IOPL - Linux手册页
时间:2019-08-20 17:58:54 来源:igfitidea点击:
Linux程序员手册 第2部分
更新日期: 2020-08-13
名称
iopl-更改I / O特权级别
语法
#包括
int iopl(int level);
说明
iopl()更改调用线程的I / O特权级别,该级别由级别中的两个最低有效位指定。
普通线程的I / O特权级别为0。权限从父级继承到子级。
不建议使用此调用,该调用比ioperm(2)慢得多,并且仅提供给需要访问所有65536 I / O端口的较旧X服务器。它主要用于i386体系结构。在许多其他体系结构上,它不存在或将始终返回错误。
返回值
成功时,返回零。如果出错,则返回-1,并正确设置errno。
错误说明
- EINVAL
- 级别大于3。
- ENOSYS
- 此调用未实现。
- EPERM
- 调用线程没有足够的特权来调用iopl();需要CAP_SYS_RAWIO功能才能将I / O特权级别提高到其当前值之上。
遵循规范
iopl()是特定于Linux的,不应在旨在可移植的程序中使用。
备注
Glibc2在和中都有一个原型。避免使用后者,它仅在i386上可用。
在Linux 5.5之前,iopl()允许线程以更高的I / O特权级别运行时禁用中断。这可能会使系统崩溃,因此不建议这样做。
在Linux 3.7之前,在某些体系结构(例如i386)上,权限由fork(2)产生的子代继承,并在execve(2)之间保留。此行为在Linux 3.7中被无意中更改,并且不会恢复。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。