Linux驱动开发
文章平均质量分 51
沧海中一粟
硬件为载体,软件是灵魂,沧海中一粟,探索未知的宇宙。
展开
-
offset_of 与 container_of 用法举例
先看宏container_of,作用为计算出mem在结构体type中的偏移量 #define offset_of(type, mem) ({ \ (size_t)(&(((type*)0)->mem)); \ }) 再看container_of,一个结构体类型为type的变量,其成员包含mem,ptr为该变量mem成员的指针,作用为通过ptr指针,得到该变量的指针 #define container_of(ptr, type, mem) ({ \ const typeof(((t原创 2021-09-22 16:06:48 · 212 阅读 · 0 评论 -
linux字符设备驱动开发总结
1、主设备号和次设备号(二者一起为设备号) 一个字符设备或块设备都有一个主设备号和一个次设备号。主设备号用来标识与设备文件相连的驱动程序,用来反映设备类型。次设备号被驱动程序用来辨别操作的是哪个设备,用来区分同类型的设备。 linux内核中,设备号用dev_t来描述,2.6.28中定义如下: typedef u_long dev_t; 在32位机中是4个字节,高12位表示主设备号,低12位表示次设备号。 可以使用下列宏从dev_t中获得主次设备号: MAJOR(原创 2021-08-25 20:50:40 · 359 阅读 · 0 评论