亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Linux混雜設(shè)備驅(qū)動(dòng)學(xué)習(xí)

原創(chuàng) 2016-11-09 13:31:31 442
摘要: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>


發(fā)佈手記

熱門(mén)詞條