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

  • 相关阅读:
    js获取盒子scrollTop
    获取浏览器宽度,自适应屏幕
    js切割字符串
    有向图的欧拉路径POJ2337
    欧拉回路和欧拉路径
    HDU 4462(暴力枚举)
    HDU 4455(dp)
    鸽巢原理入门
    HDU 4819 Mosaic(二维线段树)
    POJ 1330 Nearest Common Ancestors(LCA模板)
  • 原文地址:https://www.cnblogs.com/zhangshuaifeng/p/10651818.html
Copyright © 2011-2022 走看看