摘要: Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。 Container_of的定义如下: [cpp] view plain copy #define container 阅读全文
posted @ 2016-04-11 16:33 OracleLoyal 阅读(313) 评论(0) 推荐(0)
摘要: class_create(),device_create自动创建设备文件结点 从linux 内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一 点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对ud 阅读全文
posted @ 2016-04-11 15:09 OracleLoyal 阅读(379) 评论(0) 推荐(0)
摘要: C语言标记化结构初始化语法 (designated initializer),而且还是一个ISO标准。 [cpp] view plain copy #include <stdio.h> #include <stdlib.h> struct operators { void (*read1)(char 阅读全文
posted @ 2016-04-11 15:08 OracleLoyal 阅读(252) 评论(0) 推荐(0)
摘要: 工作队列一般用来做滞后的工作,比如在中断里面要做很多事,但是比较耗时,这时就可以把耗时的工作放到工作队列。说白了就是系统延时调度的一个自定义函数。 工作队列是实现延迟的新机制,从 2.5 版本 Linux 内核开始提供该功能。不同于微线程一步到位的延迟方法,工作队列采用通用的延迟机制,工作队列的处理 阅读全文
posted @ 2016-04-11 10:11 OracleLoyal 阅读(465) 评论(0) 推荐(0)
摘要: DEVICE_ATTR的使用 使用DEVICE_ATTR,可以在sys fs中添加“文件”,通过修改该文件内容,可以实现在运行过程中动态控制device的目的。 类似的还有DRIVER_ATTR,BUS_ATTR,CLASS_ATTR。 这几个东东的区别就是,DEVICE_ATTR对应的文件在/sy 阅读全文
posted @ 2016-04-11 09:41 OracleLoyal 阅读(2924) 评论(0) 推荐(0)