zoukankan      html  css  js  c++  java
  • 【linux驱动分析】misc设备驱动

        misc设备驱动。又称混杂设备驱动。

    misc设备驱动共享一个设备驱动号MISC_MAJOR。它在includelinuxmajor.h中定义:

            #define MISC_MAJOR 10
    miscdevice的结构体例如以下,它在includelinuxmiscdevice.h中定义:
    struct  miscdevice {
     int  minor;
     const  char  *name;
     const  struct file_operations  *fops;
     struct  list_head  list;
     struct  device  *parent;
     struct  device  *this_device;
     const  char  *nodename;
     mode_t  mode;
    };
    misc设备驱动的注冊和注销时用这两个函数,他们也定义在includelinuxmiscdevice.h中:
    extern int misc_register(struct miscdevice * misc);
    extern int misc_deregister(struct miscdevice *misc);

    样例:
    再分配此设备号时,能够设为MISC_DYNAMIC_MINOR。这样会自己主动分配此设备号,如:
    static struct miscdevice misc = {
     .minor = MISC_DYNAMIC_MINOR,
     .name = DEVICE_NAME,
     .fops = &dev_fops,
    };
    以下的是file_operations结构体:
    static struct file_operations dev_fops = {
     .owner = THIS_MODULE,
     .unlocked_ioctl = sbc2440_leds_ioctl,
    };
    注冊和注销函数:
    static int __init dev_init(void)
    {
     int ret;
     …………

     ret = misc_register(&misc);
     printk (DEVICE_NAME" initialized ");
     return ret;
    }

    static void __exit dev_exit(void)
    {
     misc_deregister(&misc);
    }
  • 相关阅读:
    BZOJ5212 ZJOI2018历史(LCT)
    BZOJ5127 数据校验
    253. Meeting Rooms II
    311. Sparse Matrix Multiplication
    254. Factor Combinations
    250. Count Univalue Subtrees
    259. 3Sum Smaller
    156. Binary Tree Upside Down
    360. Sort Transformed Array
    348. Design Tic-Tac-Toe
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6925769.html
Copyright © 2011-2022 走看看