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下的展现

  • 相关阅读:
    设计模式-行为型模式,python备忘录模式
    设计模式-行为型模式,python 中介者模式
    python 迭代器模式
    python对象池模式
    设计模式-结构型模式,python组合模式
    设计模式-结构型模式,python桥接模式
    python concurrent.futures.Threadpoolexcutor的有界队列和无界队列
    python加快数据处理的方法
    面向切面编程AOP,一些通用装饰器
    supervisor的command执行两条命令
  • 原文地址:https://www.cnblogs.com/zhangshuaifeng/p/10651818.html
Copyright © 2011-2022 走看看