Linux设备驱动程序学习笔记05:字符设备驱动程序III

本文将简要分析cdev结构剩下的几个成员:

struct kobject kobj; //内嵌的kobject
struct module *owner; //指向实现驱动程序的模块(如果有的话)
struct list_head list; //与字符设备对应的设备文件的链表头
unsigned int count;  //设备对应的设备号的范围

struct kobject kobj----kobject是linux设备模型的基本结构。我们可以把它想象成Java中的Object类。cdev结构中包含kobject可以理解为cdev是kobject的一个子类。在使用kobject的时候有两点需要注意:1、在调用kobject_init初始化kobject对象之前应先将整个kobject清零,通常使用memset。2、kobject的使用者至少要为其设置名字,使用kobject_set_name。

struct module *owner----指向实现驱动程序的模块,我们通常设置为THIS_MODULE。

struct list_head list----与字符设备对应的设备文件的链表头。该链表是一个双向链表,用于收集相同字符设备驱动程序所对应的字符设备文件的索引节点。

unsigned int count----设备对应的设备号的范围,count通常取1,但是在某些情况下,会有多个设备号对应于一个特定的设备。例如,可以通过一个设备的多个设备号老允许用户选择对设备不同的操作模式。

 

到目前为止,已经介绍完了在驱动程序中如何申请设备号以及所涉及到的数据结构,下一篇文章将想大家介绍如何把这些内容联系起来组成一个字符设备驱动程序。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值