易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux下设置端口权限的系统调用有两个:ioperm和iopl

Linux
下设置端口权限的系统调用有两个:
ioperm

iopl

 
一、
ioperm

iopl
介绍。
1.ioperm
功能描述:
为调用进程设置
I/O
端口访问权能。
ioperm
的使用需要具有超级用户的权限,只有低端的
[0-0x3ff] I/O
端口可被设置,要想指定更多端口的权能,可使用
iopl
函数。这一调用只可用于
i386
平台。

用法:
#include <unistd.h> /* for libc5 */
#include <sys/io.h> /* for glibc */
int ioperm(unsigned long from, unsigned long num, int turn_on);
      
参数:
from
:起始端口地址。
num
:需要修改权能的端口数。
turn_on
:端口的新权能位。
1
为开启,
0
为关闭。
返回说明:

成功执行时,返回
0
。失败返回
-1

errno
被设为以下的某个值

EINVAL
:参数无效
EIO
:这一调用不被支持
EPERM
:调用进程权能不足。

2. iopl
功能描述:该调用用于修改当前进程的操作端口的权限。可以用于所有
65536
个端口的权限。因此,
ioperm
相当于该调用的子集。和
ioperm
一样,这一调用仅适用于
i386
平台。

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


端口的权限级别
。为
3
时可以读写端口。默认权能级别为
0
,用户空间不可读写。
返回说明:成功执行时,返回
0
。失败返回
-1

errno
被设为以下的某个值
EINVAL

level
值大于
3
ENOSYS
:未实现该调用
EPERM
:调用进程权能不足。

二、程序示例
1. ioperm.c
操作低于
0x3FF
的端口
该程序首先设置
0x3FF
端口的读写权限,然后读出原先的值,然后将原值的
LSB
翻转并写回端口,并在此读取端口值。
/*Godbach. Dec 18, 2008
Description:This function is used to test ioperm()*/
#include <stdio.h>
#include <unistd.h>
#include <sys/io.h>

#define PORT_ADDR 0x3FF

int main(void)
{
     
int ret;
     
char port_val;

     
/*set r/w permission of port_addr on, only one port*/
     
ret = ioperm(PORT_ADDR, 1, 1);
     
if(ret < 0){


相关文档:

linux 硬链接 软链接

linux中关于链接类型分为硬链接和软链接
  硬链接指令 ln  文件  链接名称
  软链接指令 ln -s 文件  链接名称
共同点:
  都可以通过链接名称去访问被链接的文件
不同点:
  硬链接会产生一个和源文件相同的文件 不论大小和属性
  删除源文件不会对链接文件产生影响
&nbs ......

Linux中断处理之一(共享中断处理初探)

      在看LKD(第二版)第六章(中断和中断处理程序)的时候,刚开始接触到中断线号和共享中断线的时候半天愣是没有想明白,原来理解的中断和中断和中断处理程序就是通过中断线号来进行关联,硬件发生中断,然后通过中断线号查找对应的中断处理程序,最后中断处理程序返回,此次中断则处理完毕,没想 ......

Linux: S3C2410的RTC驱动

----------------------------------------------------------------------------------------------------------------------------------------
/**/
/*
********************************************************************************************************
*  @Description:s3c2410的rtc驱动的实 ......

Linux @ VMWare 下修改MAC地址的方法(亲自实践)

今天拷贝了虚拟机在另外一台电脑上使用,发现MAC地址冲突,于是去网上找修改方法。可按照所说的,我并没有很顺利修改成功。
下面我将过程写出来,里面有些地方需要注意一下。
下面是我从网上搜索到大部分的做法如下,红色部分是我注释的,需要注意的地方:
VMware虚拟机中修改Linux MAC地址的方法:
1、修改虚拟机的*.v ......

Linux设备驱动之I2C架构分析

一:前言
I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员
的布线.另外,I2C是一种多主机控制总线.它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以.而
I2C 是基于multi master机制.一同总线上可允许多个master.关于I2C协议的知 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号