加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux 内核class_simple 接口

发布时间:2020-12-13 22:44:41 所属栏目:Linux 来源:网络整理
导读:class_simple 接口意图是易于使用,以至于没人会抱怨没有暴露至少一个包含设备的被 分配的号的属性. 使用这个接口只不过是一对函数调用,没有通常的和 Linux 设备模型 关联的样板. ? 第一步是创建类自身. 使用一个对 class_simple_create 的调用来完成: ? stru

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 结构这里不需要; 设备号(它 当然应当是唯一的)足够了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读