1、readb:从指定的IO端口内存中读取的数据,数据以u8类型返回
readw(addr):从指定的IO端口内存中读取的数据,数据以u16类型返回,并转化成该cpu的存储格式
readl(addr) :从指定的IO端口内存中读取的数据,数据以u32类型返回,并转化成该cpu的存储格式
readq(addr):从指定的IO端口内存中读取的数据,数据以u64类型返回,并转化成该cpu的存储格式
(注意:读的对象为IO端口内存)
实现如下:
1)
static inline u8 __raw_readb(const volatile void __iomem *addr)
{
return
*(const volatile u8 __force *) addr;
}
关键字:
_iomem:):表示指针是指向一个I/O的内存空间,主要是为了驱动程序的通用性考虑
void:void指针,表示一个任意类型的指针,也就是说addr可以是任意类型指针
volatile:一般IO内存中都用此关键字
const:常量关键字,这里表示addr指向的值不能被修改
inline:内联函数
_ force:表示所定义的变量类型是可以做强制类型转换的,在进行Sparse分析的时候,是不用报告警信息的
实现:
将addr指针强制转换为指向8位的整数的指针,返回该指针指向的值
2)