在Linux设备驱动中,宜使用Linux内核提供的函数来访问定位于I/O空间的端口,这些函数包括:·读写字节端口(8位宽)unsigned inb(unsigned port);
void outb(unsigned char byte, unsigned port);
·读写字端口(16位宽)unsigned inw(unsigned port);
void outw(unsigned short word, unsigned port);
·读写长字端口(32位宽)unsigned inl(unsigned port);
void outl(unsigned longword, unsigned port);
·读写一串字节void insb(unsigned port, void *addr, unsigned long count);
void outsb(unsigned port, void *addr, unsigned long count);
· insb()从端口port开始读count个字节端口,并将读取结果写入addr指向的内存;outsb()将addr指向的内存的count个字节连续地写入port开始的端口。·读写一串字void insw(unsigned port, void *addr, unsigned long count);
void outsw(unsigned port, void *addr, unsigned long count);
·读写一串长字void insl(unsigned port, void *addr, unsigned long count);
void outsl(unsigned port, void *addr, unsigned long count);上述各函数中I/O端口号port的类型高度依赖于具体的硬件平台,因此,只是写出了unsigned。