
linux-内核驱动
psvoldemort
这个作者很懒,什么都没留下…
展开
-
linux驱动的异步通知(kill_fasync,fasync)---- 驱动程序向应用程序发送信号
应用程序#include #include #include #include #include #include #include #include #include /* fifthdrvtest */int fd;//信号处理函数void my_signal_fun(int signum){ unsigned char key_val; read原创 2014-03-13 19:32:40 · 23586 阅读 · 0 评论 -
Linux设备驱动之semaphore机制
Linux设备驱动之semaphore机制在Linux系统中,信号号是一种重要的加锁机制,特别在互斥型资源中,semaphore更能很好的工作。1: semaphore结构体定义在Linux2.6.35内核中,semaphore的实现机制与以前的版本一点不同,在其中去除了DECLARE_MUTEX_LOCKED这个初始化互斥宏定义,但是,又添加了一个特别重要的函数,down_killa转载 2014-03-14 12:01:23 · 814 阅读 · 0 评论 -
Linux 原子操作
所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用了物理学里的物质微粒的概念。 原子操作需要硬件的支持,因此是架构相关的,其API和原子类型的定义都定义在内核源码树的include/asm/atomic.h文件中,它们都使用汇编语言实现,因为C语言并不能实现这样的操作。转载 2014-03-14 10:36:35 · 609 阅读 · 0 评论 -
总线设备驱动模型:bus->match,driver->probe
注:支持bus device driver模型 都遵循这套流程platform_driver 注册时,如何遍历platform_bus_type总线上platform_device链表,并且调用platform_bus_type的match函数进行匹配,匹配成功后如何调用platform_driver 的probe函数-----------------dev原创 2014-04-19 18:35:26 · 1622 阅读 · 0 评论 -
list_entry的实现
linux/list.h#define list_entry(ptr, type, member) \container_of(ptr, type, member)#define container_of(ptr, type, member) ({\const typeof( ((type *)0)->member ) *__mptr = (ptr);\(type原创 2012-09-08 11:04:33 · 792 阅读 · 0 评论