字符杂项设备 misc_register
来源:互联网 发布:linux调整jvm内存大小 编辑:程序博客网 时间:2024/05/19 12:17
#include <linux/miscdevice.h>
#include <linux/fs.h>
#include <linux/module.h>
#include <linux/init.h>
/* misedevice 结构:
struct miscdevice {
int minor; //次设备号,若为 MISC_DYNAMIC_MINOR 自动分配
const char *name; //设备名
struct file_operations *fops; //设备操作
struct list_head list;
struct device *dev;
struct class_device *class;
char devfs_name[64];
};
*/
/*
使用misc_register,在加载模块时会自动创建设备文件,为主设备号为10的字符设备。
使用misc_deregister,在卸载模块时会自动删除设备文件
*/
#define MISC_NAME "miscdriver"
static int misc_open(struct inode *inode, struct file *file)
{
printk("misc open\n");
return 0;
}
static const struct file_operations misc_fops =
{
.owner = THIS_MODULE,
.open = misc_open,
};
static struct miscdevice misc_dev =
{
.minor = MISC_DYNAMIC_MINOR,
.name = MISC_NAME,
.fops = &misc_fops,
};
static int __init misc_init(void)
{
int ret;
ret = misc_register(&misc_dev);
if (ret)
{
printk("misc_register error\n");
return ret;
}
return 0;
}
static void __exit misc_exit(void)
{
misc_deregister(&misc_dev);
}
module_init(misc_init);
module_exit(misc_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Decly");
注册杂项字符设备,该类设备使用同一个主设备号10
杂项字符设备使用的数据结构
struct miscdevice {
int minor;
const char *name;
struct file_operations *fops;
struct list_head list;
struct device *dev;
struct class_device *class;
char devfs_name[64];
};
杂项设备(misc device)
在 Linux 内核的include\linux\miscdevice.h文件,要把自己定义的misc device从设备定义在这里。其实是因为这些字符设备不符合预先确定的字符设备范畴,所有这些设备采用主设备号10 ,一起归于misc device,其实misc_register就是用主设备号10调用register_chrdev()的。也就是说,misc设备其实也就是特殊的字符设备。
misc_device是特殊的字符设备。注册驱动程序时采用misc_register函数注册,此函数中会自动创建设备节点,即设备文件。无需mknod指令创建设备文件。因为misc_register()会调用class_device_create()或者device_create()。
自动创建设备节点依赖/proc/sys/kernel/hotplug内容中包含/sbin/mdev
一般在/etc/init.d/rcS中添加echo "/sbin/mdev" > /proc/sys/kernel/hotplug这样渣设备节点管理器就会自动创建设备节点
- 字符杂项设备 misc_register
- 字符杂项设备 misc_register
- 字符杂项设备 misc_register
- 字符杂项设备 misc_register
- 杂项设备注册 misc_register
- misc_register杂项设备
- 自动创建节点的字符杂项设备 misc_register
- 自动创建节点的字符杂项设备 misc_register
- 自动创建节点的字符杂项设备 misc_register
- 字符杂项设备(miscdevice)
- 字符杂项设备(miscdevice)
- linux中的杂项设备所使用的misc_register()和 misc_deregister() 原理分析
- 杂项设备和字符设备的区别
- 创建一个杂项字符设备模版
- 混杂设备与字符设备的区别----misc_register、 register_chrdev 的区别总结
- 以杂项设备驱动的方法注册字符设备驱动
- Linux字符设备驱动和杂项设备驱动对比
- 杂项设备
- Oracle的任务调度
- Android学习笔记——Activity之间的数据传递
- Ubuntu安装nginx php5-fpm mysql (lnmp环境搭建)
- 《Lua程序设计[第二版]》第7,8章笔记
- c语言中各种数据类型的长度
- 字符杂项设备 misc_register
- C语言实现封装、继承和多态
- VisualStudio使用正则表达式查找
- 2012ACM ICPC长春现场赛H Math Magic
- 人生
- tinycore 中文支持
- Http response code
- 递归调用例子
- NAT