《Linux驱动》动态申请字符设备号
来源:互联网 发布:南方大数据100指数评论 编辑:程序博客网 时间:2024/06/05 14:28
#include <linux/init.h>/*包含初始化宏定义的头文件,代码中的module_init和module_exit在此文件中*/#include <linux/module.h>/*包含初始化加载模块的头文件,代码中的MODULE_LICENSE在此头文件中*//*定义module_param module_param_array的头文件*/#include <linux/moduleparam.h>/*定义module_param module_param_array中perm的头文件*/#include <linux/stat.h>/*包含注册设备的函数*/#include <linux/fs.h>/*MKDEV转换设备号数据类型的宏定义*/#include <linux/kdev_t.h>/*定义字符设备的结构体*/#include <linux/cdev.h>#define DEVICE_NAME "ascdev"MODULE_LICENSE("Dual BSD/GPL");/*声明是开源的,没有内核版本限制*/MODULE_AUTHOR("HerGhost");/*声明作者*/int numdev_major;static int scdev_init(void){ int ret = 0; dev_t num_dev; /*动态注册设备号*/ /* 申请设备号: register_chrdev_region(dev_t first,unsigned int count,char *name) First :要分配的设备编号范围的初始值(次设备号常设为0); Count:连续编号范围. Name:编号相关联的设备名称. (/proc/devices); 动态分配: Int alloc_chrdev_region(dev_t *dev,unsigned int firstminor,unsigned int count,char *name); Firstminor : 通常为0; *dev:存放返回的设备号; count:连续编号范围. 这个意思说假如major是248,count是2的话,249也就是相当于被使用的了. 成功返回0,失败返回-1;*/ ret = alloc_chrdev_region(&num_dev,0,2,DEVICE_NAME); /*获得主设备号*/ numdev_major = MAJOR(num_dev); printk(KERN_EMERG "adev_region req %d !\n",numdev_major); if(ret<0){ printk(KERN_EMERG "register_chrdev_region req %d is failed!\n",numdev_major); } printk(KERN_EMERG "scdev_init!\n"); /*打印信息,KERN_EMERG表示紧急信息*/ return 0;}static void scdev_exit(void){ printk(KERN_EMERG "scdev_exit!\n"); unregister_chrdev_region(MKDEV(numdev_major,0),2);}module_init(scdev_init);/*初始化函数*/module_exit(scdev_exit);/*卸载函数*/
1 0
- 《Linux驱动》动态申请字符设备号
- 【linux】设备驱动动态中断申请
- 【Linux开发】linux设备驱动归纳总结(三):1.字符型设备之设备申请
- linux设备驱动归纳总结(三):1字符型设备之设备申请
- linux设备驱动归纳总结:字符型设备之设备申请
- linux设备驱动归纳总结(三):1字符型设备之设备申请
- linux设备驱动归纳总结(三):1.字符型设备之设备申请
- linux设备驱动归纳总结(三):1字符型设备之设备申请
- linux设备驱动归纳总结(三):1.字符型设备之设备申请
- linux设备驱动归纳总结(三):1字符型设备之设备申请
- linux设备驱动归纳总结(三):1字符型设备之设备申请
- linux设备驱动归纳总结(三):1字符型设备之设备申请
- linux设备驱动归纳总结(三):1字符型设备之设备申请
- linux设备驱动归纳总结(三):1字符型设备之设备申请
- 字符设备驱动——申请设备号、注册字符设备
- Linux字符驱动中动态分配设备号与动态生成设备节点
- Linux字符驱动中动态分配设备号与动态生成设备节点
- Linux字符驱动中动态分配设备号与动态生成设备节点
- 单例模式(Singleton)
- 单链表的操作
- 关于png、jpg、gif切图时的使用感悟
- 手机安全卫士第九天
- ecshop 首页显示每个分类的产品列表
- 《Linux驱动》动态申请字符设备号
- Android应用程序权限清单
- 《Python核心编程》第7章 习题
- Camera Perspective/orthographic
- web前端小知识
- GCD
- [EverString收录]机器学习中分类评估方法简介 - 1
- 怎样在Ubuntu 14.04中安装Java
- 水题