Linux对I/O端口资源的管理(5)
5 访问I/O端口空间在驱动程序请求了I/O端口空间中的端口资源后,它就可以通过CPU的IO指定来读写这些I/O端口了。在读写I/O端口时要注意的一点就是,大多数平台都区分8位、16位和32位的端口,也即要注意I/O端口的宽度。
在include/asm/io.h头文件(对于i386平台就是include/asm-i386/io.h)中定义了一系列读写不同宽度I/O端口的宏函数。如下所示:
⑴读写8位宽的I/O端口
unsigned char inb(unsigned port);
void outb(unsigned char value,unsigned port);
其中,port参数指定I/O端口空间中的端口地址。在大多数平台上(如x86)它都是unsigned short类型的,其它的一些平台上则是unsigned int类型的。显然,端口地址的类型是由I/O端口空间的大小来决定的。
⑵读写16位宽的I/O端口
unsigned short inw(unsigned port);
void outw(unsigned short value,unsigned port);
⑶读写32位宽的I/O端口
unsigned int inl(unsigned port);
void outl(unsigned int value,unsigned port);
5.1 对I/O端口的字符串操作
除了上述这些“单发”(single-shot)的I/O操作外,某些CPU也支持对某个I/O端口进行连续的读写操作,也即对单个I/O端口读或写一系列字节、字或32位整数,这就是所谓的“字符串I/O指令”(String Instruction)。这种指令在速度上显然要比用循环来实现同样的功能要快得多。
Linux同样在io.h文件中定义了字符串I/O读写函数:
⑴8位宽的字符串I/O操作
void insb(unsigned port,void * addr,unsigned long count);
void outsb(unsigned port ,void * addr,unsigned long count);
⑵16位宽的字符串I/O操作
void insw(unsigned port,void * addr,unsigned long count);
void outsw(unsigned port ,void * addr,unsigned long count);
⑶32位宽的字符串I/O操作
void insl(unsigned port,void * addr,unsigned long count);
void outsl(unsigned port ,void * addr,unsigned long count);
下一篇:RouterOS断流解决办法探讨
↓相关文章:
- · RouterOS断流解决办法探讨
- · 系统管理:Cron服务配置详解
- · apache中禁止mp3试听
- · 基于linux操作系统架构openvpn总结
- · Linux集群认证介绍
- · Linux集群应用的新挑战
- · Linux指导第7部分 网络
- · Linux指导第6部分 使用分区和文件系统
- · Linux指导第5部分 Linux日志
- · Linux指导第4部分 用户管理
- · Linux指导第3部分 Webmin简介
- · Linux指导第2部分 控制台速成班
- · Linux指导第1部分 Linux思想
- · Linux环境下邮件服务器的分析比较
- · FedoraCore5安装后的快速配置
- · Apache服务器实现用户验证
- · Telnet到Scounix执行并取得结果
- · 全面解决ROUTEROSIP限速问题
- · 如何用ROUTEROS封闭P2P类软件
- · routeros端口映射方法
- · 介绍Linux内核文件Cache管理机制(下)
- · 介绍Linux内核文件Cache管理机制(中)
- · 介绍Linux内核文件Cache管理机制(上)
- · 网络编程之-原始套接字
- · linux编程之——C 内存管理详解
- · Novell开放工作组套件
- · Linux将可以跟Googletalk语音通话了
- · Linux再遇能否使用专有代码老问题
- · 如何解决AIX的文件系统故障
- · 系统操作:RedHatlinuxinittab
- · 银行选择Linux无法回避高成本
- · 学习Linux的好工具:LiveCD
- · Linux个人防火墙的设计与实现
- · Thinkpad上安装Ubuntu笔记(下)
- · Linux命令:改变文件或目录的访问权限(上)
- · Thinkpad上安装Ubuntu笔记(上)
- · Thinkpad上安装Ubuntu笔记(中)
- · 应用:postfix邮件服务器安全策略4(完)
- · 应用:postfix邮件服务器安全策略3
- · 应用:postfix邮件服务器安全策略2
- · Linux套件宝座上的SUSELinux
- · 应用:postfix邮件服务器安全策略1
- · 用流量监控控制限速的开关
- · ROS专业企业软件路由防火墙功能介绍
- · 让Linux象Windows一样安装卸载

