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

  • 相关阅读:
    动软代码生成器 修改配置
    显示转换explicit和隐式转换implicit
    Memcache学习整理
    SQL2008-分页显示3种方法
    SQL2008-表对表直接复制数据
    SQL2008-删除时间字段重复的方法
    SQL2008-中不想插入从复记录
    SQL2008-c:PROGRA~1COMMON~1SystemOLEDB~1oledb32.dll出错找不到指定的模块
    ACCESS-如何多数据库查询(跨库查询)
    ACCESS-字符函数
  • 原文地址:https://www.cnblogs.com/zhangshuaifeng/p/10651818.html
Copyright © 2011-2022 走看看