12.混杂设备驱动模型

          混杂设备驱动模型

  在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函数注册一个混杂设备。

 三、混杂设备驱动总结

   

原文地址:https://www.cnblogs.com/wmx-learn/p/5359838.html