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);
    }
  • 相关阅读:
    MyBatis的入门案例
    MySQL数据库解决乱码 latin1 转 gbk
    13.MD5对用户密码进行加密
    Windows下永久解决数据库乱码 utf8 转 gbk
    SpringMVC 异常处理
    SpringMVC 实现返回一段数据 & 实现自动发送json格式数据
    SpringMVC中session的使用
    SpringMVC中的重定向和转发的实现
    SpringMVC 获取请求参数
    vue-router介绍
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6925769.html
Copyright © 2011-2022 走看看