混杂设备驱动模型
在Linux系统中,存在一类字符设备,它们拥有相同的主设备号(数字10),但次设备号不同,我们称这类设备为混杂设备(miscdevice)。所有的混杂设备形成一个链表,对设备访问时内核根据次设备号查找到相应的混杂设备。
一、设备描述
Linux中使用struct miscdevice来描述一个混杂设备。
1 struct miscdevice { 2 int minor; /* 次设备号*/ 3 const char *name; /* 设备名*/ 4 const struct file_operations *fops; /*文件操作*/ 5 struct list_head list; 6 struct device *parent; 7 struct device *this_device; 8 };
Minor是次设备号,name是设备名。还有一个struct file_operations的结构是需要我们去初始化的。
二、设备注册
Linux中使用misc_register函数来注册一个混杂设备驱动。
int misc_register(struct miscdevice * misc)
所以要实现一个混杂设备驱动。首先是初始化我们的miscdevice结构,接着就是使用misc_register函数注册一个混杂设备。
三、混杂设备驱动总结