????:Linux混雜設(shè)備是字符設(shè)備的一類,主要是混雜設(shè)備擁有相同的主設(shè)備號(10),但是次設(shè)備號是不同的。所有的混雜設(shè)備行程一個鏈表,對設(shè)備訪問時內(nèi)核更據(jù)次設(shè)備號查找到相應(yīng)的混雜設(shè)備。混雜設(shè)備用struct miscdevice來描述一個混雜設(shè)備。struct miscdevice { int minor; /*
Linux混雜設(shè)備是字符設(shè)備的一類,主要是混雜設(shè)備擁有相同的主設(shè)備號(10),但是次設(shè)備號是不同的。所有的混雜設(shè)備行程一個鏈表,對設(shè)備訪問時內(nèi)核更據(jù)次設(shè)備號查找到相應(yīng)的混雜設(shè)備。
混雜設(shè)備用struct miscdevice來描述一個混雜設(shè)備。
struct miscdevice { int minor; /*次設(shè)備號*/ const char *name; /*設(shè)備名*/ const struct file_operations *fops; /*文件操作 其他由內(nèi)核來完成*/ struct list_head list; struct device *parent; struct device *this_device; const char *nodename; mode_t mode; };
首先初始化結(jié)構(gòu)體struct miscdevice
初始化struct file_operations *
完成 struct file_operations * 對應(yīng)的函數(shù)
在模塊初始化函數(shù)中,注冊設(shè)備驅(qū)動mis_register()即可
注銷mis_deregister()
#include <linux/miscdevice.h>