misc_register


Linux內核使用misc_register函數注冊一個混雜設備,使用misc_deregister移除一個混雜設備。注冊成功后,linux內核為自動為該設備創建設備節點,在/dev/下會產生相應的節點。

 HAL層

fd = open("/devshf",READONY); //這樣open的路徑跟kernel中路徑一樣,就會走到kernel對應的系統調用中了

 

kernel端code:

struct file_operations shf_fops = {

  .owner = THIS_MODULE,

  .open= shf_open,

  .release = shf_release,

  .unlocked_ioctl = shf_unlocked_ioctrl,

}

struct miscdevice shf_device = {

    .minor = MISC_DYNAMIC_MINOR,

    .name = "shf",

    .fops = &shf_fops,

};

misc_regiseter(&shf_device);  //會在/dev下創建shf節點,即/dev/shf

 順序misc_register(miscdevice)->聲明一個misc device,且其中包含fops->聲明一個fops,且里面包含open,read,write,unlocked_ioctl的實現


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM