摘要:Linux混雜設(shè)備是字符設(shè)備的一類(lèi),主要是混雜設(shè)備擁有相同的主設(shè)備號(hào)(10),但是次設(shè)備號(hào)是不同的。所有的混雜設(shè)備行程一個(gè)鏈表,對(duì)設(shè)備訪問(wèn)時(shí)內(nèi)核更據(jù)次設(shè)備號(hào)查找到相應(yīng)的混雜設(shè)備。混雜設(shè)備用struct miscdevice來(lái)描述一個(gè)混雜設(shè)備。struct miscdevice { int minor; /*
Linux混雜設(shè)備是字符設(shè)備的一類(lèi),主要是混雜設(shè)備擁有相同的主設(shè)備號(hào)(10),但是次設(shè)備號(hào)是不同的。所有的混雜設(shè)備行程一個(gè)鏈表,對(duì)設(shè)備訪問(wèn)時(shí)內(nèi)核更據(jù)次設(shè)備號(hào)查找到相應(yīng)的混雜設(shè)備。
混雜設(shè)備用struct miscdevice來(lái)描述一個(gè)混雜設(shè)備。
struct miscdevice { int minor; /*次設(shè)備號(hào)*/ const char *name; /*設(shè)備名*/ const struct file_operations *fops; /*文件操作 其他由內(nèi)核來(lá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 * 對(duì)應(yīng)的函數(shù)
在模塊初始化函數(shù)中,注冊(cè)設(shè)備驅(qū)動(dòng)mis_register()即可
注銷(xiāo)mis_deregister()
#include <linux/miscdevice.h>