在Linux系统中,存在一类字符设备,它们共享一个主设备号(一定要是10),但次设备号不同,我们称这类设备为混杂设备。所有的混杂设备形成一个链表,对设备访问时内核根据次设备号查找到相应的混杂设备。
Linux内核使用struct miscdevice来描述一个混杂设备struct miscdevice
{
int minor;//次设备号
const char *name;//设备名
const struct file_operation *fops;//文件操作
struct list_head list;
struct device *parent;
struct device *this_device;
}
Linux内核使用struct miscdevice 函数来注册一个混杂设备驱动int misc_register(struct miscdevice *misc)
注销一个混杂设备驱动misc_deregister(&misc);
混杂设备LED驱动程序: