Kernel Hal 魔数宏使用

【总结】
1. IT方面的资料,国内的,还是把问题讲明白的太少,想搞懂问题,还是得去找英文的。
2.有问题, 指望别人,还是不行的,凡事还是得指望自己,才有用。

_IO (魔数, 基数);
_IOR (魔数, 基数, 变量型)
_IOW  (魔数, 基数, 变量型)
_IOWR (魔数, 基数,变量型 )
魔数 (magic number)

魔数范围为 0~255 。通常,用英文字符 "A" ~ "Z" 或者 "a" ~ "z" 来表示。设备驱动程序从传递进来的命令获取魔数,

然后与自身处理的魔数想比较,如果相同则处理,不同则不处理。魔数是拒绝误使用的初步辅助状态。设备驱动

程序可以通过 _IOC_TYPE (cmd) 来获取魔数。不同的设备驱动程序最好设置不同的魔数,但并不是要求绝对,

也是可以使用其他设备驱动程序已用过的魔数。

基(序列号)数

基数用于区别各种命令。通常,从 0开始递增,相同设备驱动程序上可以重复使用该值。例如,读取和写入命令中

使用了相同的基数,设备驱动程序也能分辨出来,原因在于设备驱动程序区分命令时使用 switch ,且直接使用

命令变量 cmd值。

变量型

变量型使用 arg 变量指定传送的数据大小,但是不直接代入输入,而是代入变量或者是变量的类型,原因是在

使用宏创建命令,已经包含了 sizeof() 编译命令

_IO 宏
该宏函数没有可传送的变量,只是用于传送命令。

猜你喜欢

转载自blog.csdn.net/junwua/article/details/80969483
HAL