Linux 内核class_simple 接口

Linux 内核class_simple 接口,第1张

概述class_simple 接口意图是易于使用, 以至于没人会抱怨没有暴露至少一个包含设备的被 分配的号的属性. 使用这个接口只不过是一对函数调用, 没有通常的和 Linux 设备模型 关联的样板.   第一步是创建类自身. 使用一个对 class_simple_create 的调用来完成:   struct class_simple *class_simple_create(struct modu

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 内核class_simple 接口全部内容,希望文章能够帮你解决Linux 内核class_simple 接口所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1017312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存