Linux 字符设备驱动中的数据结构
2010-11-24 22:40
337 查看
struct cdev: 定义于 linux/include/linux/cdev.h 中,原型如下
kobject 的数据结构定义于linux/kobject.h
struct cdev { struct kobject kobj; struct module *owner; //所属模块 const struct file_operations *ops; //针对该设备的操作函数集,编写驱动的主要类容就是完成这些函数 struct list_head list; dev_t dev; //设备号,一个32位的无符号整数,分为主设备号和从设备号 unsigned int count; }; linux-2.6.22/include/linux/types.h typedef __u32 __kernel_dev_t; typedef __kernel_dev_t dev_t;
kobject 的数据结构定义于linux/kobject.h
struct kobject { const char * k_name;//指向kobject名称的起始位置 //如果名称长度小于KOBJ_NAME_LEN(20)字节,则kobject的名称便存放到name数组中,k_name指向数组头,如果大于,则动态分配一个足够大的缓冲区来存放kobject的名称,这是k_name指向缓冲区。 char name[KOBJ_NAME_LEN]; struct kref kref;/*引用计数*/ struct list_head entry;/*在所挂到链表的连接体*/ struct kobject * parent; //指向kobject的父对象,以此来在内核中构造一个对象层次结构,并且可以将多个对象之间的关系表现初来,这就是sysfs的真相:一个用户空间的文件系统,用来表示内核中kobject对象的层次结构。 struct kset * kset; /*指向所属的kset*/ struct kobj_type * ktype; struct dentry * dentry;/*目录项*/ //指向dentry结构体,在sysfs中该结构体就表示这个kobject。 };
相关文章推荐
- 国嵌--linux字符设备驱动学习之memdev设备
- linux驱动开发之字符设备--自动创建设备节点
- linux字符设备驱动开发基础知识
- Linux字符设备驱动结构(一)--cdev结构体、设备号相关知识机械【转】
- LINUX--字符设备驱动
- s3c2440基于linux的button和led字符设备驱动
- Linux驱动程序开发之字符设备驱动——基础篇(二)
- linux驱动开发--字符设备:静态分配设备号
- Linux字符设备驱动
- Linux字符设备驱动之中断按键
- Linux字符设备驱动之cdev_init()【十全十美】
- Linux驱动学习----字符设备驱动(二)
- [Linux驱动]字符设备驱动学习笔记(二)———实例
- Linux 字符设备驱动结构(二)—— 自动创建设备节点
- 国嵌--linux字符设备驱动学习之memdev设备
- Linux设备驱动之字符设备\interrupt\wait_queue实现
- Linux设备驱动之字符设备驱动
- Linux 字符设备驱动开发基础(三)—— read()、write() 相关函数解析
- 字符设备驱动相关函数及数据结构简介 (ldd3)
- Linux 字符设备驱动开发基础(四)—— ioctl() 函数解析