linux注册字符设备和卸载字符设备函数
来源:互联网 发布:趴在桌上睡觉知乎 编辑:程序博客网 时间:2024/06/06 00:33
注册一个字符设备的方法是使用:
int register_chrdev(unsigned int major, const char *name, struct file_operations *fops);
这里,
major 是感兴趣的主编号,
name 是驱动的名子(出现在 /proc/devices),
fops 是缺省的file_operations 结构.
一个对 register_chrdev 的调用为给定的主编号注册 0 - 255 的次编号, 并且为每
一个建立一个缺省的 cdev 结构. 使用这个接口的驱动必须准备好处理对所有 256 个次编号的 open
调用( 不管它们是否对应真实设备 ), 它们不能使用大于 255 的主或次编号.
若主设备号设为0 则内核自动分配主设备号
从系统中去除设备的正确的函数是:
int unregister_chrdev(unsigned int major, const char *name);
major 和 name 必须和传递给 register_chrdev 的相同, 否则调用会失败
例如
#define sddev_MAJOR 200
static const struct file_operations dev_fops={
.owner = THIS_MODULE,
.open = dev_open,
.write = dev_write,
.read = dev_read,
.release = dev_release,
};
register_chrdev(sddev_MAJOR,"sddev",&dev_fops);
unregister_chrdev(sddev_MAJOR,"sddev");
int register_chrdev(unsigned int major, const char *name, struct file_operations *fops);
这里,
major 是感兴趣的主编号,
name 是驱动的名子(出现在 /proc/devices),
fops 是缺省的file_operations 结构.
一个对 register_chrdev 的调用为给定的主编号注册 0 - 255 的次编号, 并且为每
一个建立一个缺省的 cdev 结构. 使用这个接口的驱动必须准备好处理对所有 256 个次编号的 open
调用( 不管它们是否对应真实设备 ), 它们不能使用大于 255 的主或次编号.
若主设备号设为0 则内核自动分配主设备号
从系统中去除设备的正确的函数是:
int unregister_chrdev(unsigned int major, const char *name);
major 和 name 必须和传递给 register_chrdev 的相同, 否则调用会失败
例如
#define sddev_MAJOR 200
static const struct file_operations dev_fops={
.owner = THIS_MODULE,
.open = dev_open,
.write = dev_write,
.read = dev_read,
.release = dev_release,
};
register_chrdev(sddev_MAJOR,"sddev",&dev_fops);
unregister_chrdev(sddev_MAJOR,"sddev");
0 0
- linux注册字符设备和卸载字符设备函数
- linux chrdev 字符设备 注册 和 卸载
- linux字符设备注册
- linux字符设备注册相关函数
- linux字符设备注册相关函数
- Linux字符设备注册函数 register_chrdev详解
- Linux驱动-注册和卸载设备函数
- 字符设备注册相关函数
- 浅谈linux字符设备注册
- 浅谈linux字符设备注册
- 浅谈linux字符设备注册
- Linux字符设备驱动--设备注册
- linux内核cdev_init系列函数(字符设备的注册)
- linux内核cdev_init系列函数(字符设备的注册)
- linux内核cdev_init系列函数(字符设备的注册)
- linux内核cdev_init系列函数(字符设备的注册)
- linux内核cdev_init系列函数(字符设备的注册)
- linux内核cdev_init系列函数(字符设备的注册)
- HTML5之HTML+CSS3技术介绍
- Unity Shader Example 26 (Texture2DArray)
- 4种数据源
- L1-007. 念数字
- C++知识文档六_对象常量_静态成员_友元_抽象类
- linux注册字符设备和卸载字符设备函数
- Hadoop 2.7.2 最小集群搭建
- django 模型 models详解
- python操作Excel读写--使用xlrd
- Java Socket 简单的Client/Server程序
- 内核 驱动 硬件直接的关系
- 给JSP页面添加验证码
- PE文件详解(八)
- Android中Volley的使用及部分源码分析