学习时间:2014/5/21
外设IO寄存器地址独立编址的CPU,这时外设IO寄存器应该称为IO端口,访问IO寄存器可以ioport_map()将其映射到虚拟地址空间,但是实际上这只是给开发人员造成一个“假象”,并没有映射到内核虚拟地址,仅仅是为了使用和IO内存一样的接口访问IO寄存器;当然,也可以直接使用in/out指令访问IO寄存器。如:X86架构处理器。这一类的访问有两种方式;
(1)针对没有使用ioport_map()处理的IO端口的访问:
直接使用汇编指令in、out、ins、outs 访问或者内核封装的辅助函数inb、inw、inl、outb、outw、outl(以及它们对应的变种函数指令inb_p、insb等)(b、w、l分别代表一个字节(8位),一个字(16位),一个长整型(32位))来访问。
(2)针对使用ioport_map()处理的IO端口的访问: