Linux 内核class_simple 接口
class_simple 接口意图是易于使用, 以至于没人会抱怨没有暴露至少一个包含设备的被 分配的号的属性. 使用这个接口只不过是一对函数调用, 没有通常的和 Linux 设备模型 关联的样板.
第一步是创建类自身. 使用一个对 class_simple_create 的调用来完成:
struct class_simple *class_simple_create(struct module *owner, char *name);
这个函数使用给定的名子创建一个类. 这个操作可能失败, 当然, 因此在继续之前返回值 应当一直被检查( 使用 IS_ERR, 在第 1 章的"指针和错误值"一节中描述过).
一个简单的类可被销毁, 使用:
void class_simple_destroy(struct class_simple *cs); 创建一个简单类的真实目的是添加设备给它; 这个任务使用:
struct class_device *class_simple_device_add(struct class_simple *cs, dev_t devnum, struct device *device, const char *fmt, ...);
这里, cs 是之前创建的简单类, devnum 是分配的设备号, device 是代表这个设备的 struct device, 其他的参数是一个 printk-风格 的格式串和参数来创建设备名子. 这个 调用添加一项到类, 包含一个属性, dev, 含有设备号. 如果设备参数是非 NULL, 一个符 号连接( 称为 device )指向在 /sys/devices 下的设备的入口.
可能添加其他的属性到设备入口. 它只是使用 class_device_create_file, 我们在下一 节和完整类子系统所剩下的内容讨论.
当设备进出时类产生热插拔事件. 如果你的驱动需要添加变量到环境中给用户空间事件处 理者, 可以建立一个热插拔回调, 使用:
int class_simple_set_hotplug(struct class_simple *cs, int (*hotplug)(struct class_device *dev,
char **envp, int num_envp,
char *buffer, int buffer_size)); 当你的设备离开时, 类入口应当被去除, 使用: void class_simple_device_remove(dev_t dev);
注意, 由 class_simple_device_add 返回的 class_device 结构这里不需要; 设备号(它 当然应当是唯一的)足够了.
相关文章
- linux 切换root账号_LINUX 创建用户及切换用户
- Linux 2.6内核中新的锁机制--RCU
- Linux内核及发行版
- 戴文的Linux内核专题:19 配置内核 (15)
- Linux 内核的测试和调试(6)
- linux内核在解析设备树时哪个接口可以用来替代旧接口of_device_is_compatible()?
- 在linux内核中为什么解析设备树时会使用be32_to_cpup()接口?
- 如何单独编译Linux内核的某个模块?
- linux内核中有哪些子系统(框架)呢?
- linux内核启动时报错ubi0 error: validate_ec_hdr: bad data offset 256, expected 128
- Linux中不常见的有用命令(一)
- 【Linux】linux中自动定时备份mysql数据
- 《嵌入式Linux与物联网软件开发——C语言内核深度解析》一2.2 常用位操作符
- Linux进行yum 程序安装时遇到的公钥没有安装的问题解决方法
- Linux 内核USB 接口配置
- Linux 内核硬件抽象
- Linux 内核存取配置空间
- Linux 内核 标准 PCI 配置寄存器
- Linux EXPORT_SYMBOL宏详解
- 深入理解Linux网络技术内幕(三)——用户空间与内核的接口
- Linux常用基本命令(cat)
- linux 内核同步机制
- Linux进程管理 - ps,top,pstree,signal,kill,killall举例演示
- IMX6ULL驱动开发前奏二:Linux内核移植步骤明细
- 潜伏7年的Linux内核漏洞CVE-2017-2636曝光,可本地提权
- Linux内核--网络栈实现分析(一)--网络栈初始化--转
- linux diff(differential) 命令
- 【Linux】linux下用python获取底层硬件信息接口
- linux内核数据结构之链表-实现