zoukankan      html  css  js  c++  java
  • misc类设备

    何为misc

    (1)中文名:杂项设备杂散设备,它是一种典型的字符设,在一般情况下在内核中,所有的misc设备的主设备号是固定的,为10,它们的次设备号不一样;
    (2)可以在根文件系统中看到:/sys/class/misc。由于内核中的设备是归类的(/sys/class),而misc里的设备是由于不好归类才单独弄出来的。
    (3)有一套驱动框架,内核实现一部分(misc.c),驱动实现一部分。
    (4)misc是对原始的字符设备注册接口的一个类层次的封装,很多典型字符设备都可以归类到misc类中,使用misc驱动框架来管理。仅仅是利用其创建杂散类的设备节点而已(即目的就是借用它来创建设备文件节点)

    misc类设备驱动架构
    (1)内核开发者实现部分,关键点有2个:一个是类的创建,另一个是开放给驱动开发者的接口misc_register
    (2)具体设备需要驱动工程师调用misc_register来完成

    misc源码框架基础
    (1)misc源码框架本身也是一个模块,内核启动时自动加载
    (2)源码框架的主要工作:注册misc类,使用老接口register_chrdev注册字符设备驱动(主设备号10),开放device注册的接口misc_register给驱动工程师

    misc类设备的注册
    (1)驱动工程师需要借助misc来加载自己的驱动时,只需要调用misc_register接口注册自己的设备即可,其余均不用管。
    (2)misc_list链表的作用。内核定义了一个misc_list链表用来记录所有内核中注册了的杂散类设备。当我们向内核注册一个misc类设备时,内核就会向misc_list链表中insert一个节点。
    #define LIST_HEAD_INIT(name) { &(name), &(name) }
    #define LIST_HEAD(name)
    struct list_head name = LIST_HEAD_INIT(name)

    原式子:static LIST_HEAD(misc_list);
    展开后:static struct list_head misc_list = { &(misc_list), &(misc_list) }
    (3)主设备号和次设备号的作用和区分

    open函数分析


    misc在proc下的展现

  • 相关阅读:
    【Spring Framework】10、代理模式
    【Spring Framework】8、使用注解开发
    Codeforces 516E
    AtCoder Grand Contest 055 题解
    Codeforces 1606F
    贪心/构造/DP 杂题选做
    整数拆分最大乘积
    CSP-S2021 被碾压记
    洛谷 P2791
    LCT 小记
  • 原文地址:https://www.cnblogs.com/zhangshuaifeng/p/10651818.html
Copyright © 2011-2022 走看看