如 i386 ,在区别 I/O 空间和内存空间的进程的 I/O 空间写入数据。
outb() I/O 上写入 8 位数据 ( 1 字节 );
outw() I/O 上写入 16 位数据 ( 2 字节 );
outl () I/O 上写入 32 位数据 ( 4 字节)。
inb() I/O 上读取 8 位数据 ( 1 字节 );
inw() I/O 上读取 16 位数据 ( 2 字节 );
intl () I/O 上读取 32 位数据 ( 4 字节)。
redhat 5.0 linux 2.6.18 kelnel 原型:
#include <sys/io.h>
变量:
port :I/O 地址
data :数据
void outb (unsigned char data, unsigned short int port);
void outw (unsigned short data, unsigned short int port);
void outl (unsigned int data, unsigned short int port);
static __iniine unsigned char inb(unsigned short int port);
static __iniine unsigned short inw(unsigned short int port);
static __iniine unsigned int inl(unsigned short int port);
注:
inl(),outl(),是读写端口。
readl(),writel(),是读写内存。