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){
相关文档:
手头有个ep9315的板,今天突然想起跑一下adsl上网。晚上回来就开始搞。
从10点到现在,终于能够跑起来。
给大家借鉴一下。
1.编译内核,把ppp的那些选项选上。 (我用2.6.8.1的kernel,cirrus 的patch)
2.libpcap-0.9.1 这个包是pppd需要的。
./configure CC=arm-linux-gcc CFLAGS=-msoft-float --target=arm-linu ......
当今,不考虑 Linux 和无线网络技术的话,就无法谈到计算机和网络。在这篇文章中,Sreekrishnan Venkateswaran 用
Linux 观点阐释了通过 WLAN、Bluetooth、GPRS、GSM 以及 IrDA
实现无线联网。他使用各种不同的无线设备和相应的内核层,以及用户空间工具来示范它们在 Linux 下如何工作。
无线技术,例如
WLAN (Wireles ......
·find path -option [ -print ] [ -exec -ok command ] {} \;
#-print 将查找到的文件输出到标准输出
#-exec command {} \; -----将查到的文件执行command操作,{} 和 \;之间有空格
#-ok 和-exec相同,只不过在操作前要询 ......
aishen944-163.com
转贴请注明出处,谢谢!!
其实透明贴图的原理就是进行xor运算,
基本公式:A xor A = 0 A xor 0 = A A xor A xor B = B
假如现在有两张图片,一张是我们要对其进行贴图的图片A, 另外一张是要被贴图的图片B
1, 复制图片B的一份拷贝为C
2, 将C中指定 ......
oracle RAC 9.2.0.4升级到9.2.0.8
操作系统平台:Red Hat Enterprise Linux AS release 3
准备工作:
1. Check Tablespace Sizes and Set Parameter Values
&nb ......