asm/io.h linux,asm/io.h

本文详细介绍了Linux系统中asm/io.h头文件提供的IO操作函数,包括readb/writew等用于读写IO端口内存的函数,以及insb/outsb等用于批量数据传输的函数。此外,还讲解了与之相关的内存映射和转换函数,如ioremap/iounmap等。
摘要由CSDN通过智能技术生成

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值