/sysfs探索_store和show的接口
来源:互联网 发布:广东网络电视营业厅 编辑:程序博客网 时间:2024/06/08 19:51
http://blog.sina.com.cn/s/blog_78d30f6b0102uy3t.html
简单分析:
1 本样例主要测试kobject结构,kobject对应sysfs文件系统中的一个目录,该目录对应一个具体的事物。
2 首先通过example_kobj = kobject_create_and_add("kobject_example", kernel_kobj);将该结构加入
3 通过retval = sysfs_create_group(example_kobj, &attr_group)将事物的3个特色属性与其对应的kobject绑定起来,将该文件操作接口和sysfs系统结合起来。使得可以通过 kobj_attribute中的show何store进行实际的内核读写操作,该函数实际上在父目录下新建3个文件,结构用sysfs_dirent表 示。且sysfs_dirent->s_attr.attr=相应属性结构,据此可获得读写该文件的方法。
4 每个struct attribute结构对应kobject目录下一个文件,文件的读写方法由kobj_attribute中的show和store指定,kobj_attribute是kobject属性导出的接口
}
}
5当使用结束时,调用kobject_put(example_kobj)删除该kobject结构,及其对应的目录和文件。
扩展:实际上对于不同子系统有不同的属性和属性操作函数
比如:在genhd.h文件中,磁盘属性操作结构为,disk_attribute是磁盘属性导出的接口:
struct disk_attribute{
}
在device.h文件中,外设属性操作结构为,device_attribute是外设属性导出的接口:
struct device_attribute{
}
源代码如下:
#include
#include
#include
#include
#include
static int foo;
static int baz;
static int bar;
static ssize_t foo_show(struct kobject *kobj, struct kobj_attribute *attr,
{
}
static ssize_t foo_store(struct kobject *kobj, struct kobj_attribute *attr,
{
}
static struct kobj_attribute foo_attribute =
static ssize_t b_show(struct kobject *kobj, struct kobj_attribute *attr,
{
}
static ssize_t b_store(struct kobject *kobj, struct kobj_attribute *attr,
{
}
static struct kobj_attribute baz_attribute =
static struct kobj_attribute bar_attribute =
static struct attribute *attrs[] = {
};
static struct attribute_group attr_group = {
};
static struct kobject *example_kobj;
static int __init example_init(void)
{
}
static void __exit example_exit(void)
{
}
module_init(example_init);
module_exit(example_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Greg Kroah-Hartman <<a href="mailto:greg@kroah.com">greg@kroah.com>");
- /sysfs探索_store和show的接口
- sysfs接口的建立
- sysfs接口函数的建立
- sysfs接口
- sysfs接口
- sysfs接口函数DEVICE_ATTR和sysfs_create_group
- sysfs接口函数DEVICE_ATTR和sysfs_create_group
- sysfs接口函数的建立_DEVICE_ATTR
- sysfs接口函数的建立_DEVICE_ATTR
- sysfs接口函数的建立_DEVICE_ATTR
- sysfs接口函数的建立_DEVICE_ATTR
- sysfs接口函数的建立_DEVICE_ATTR
- linux sysfs接口函数的建立_DEVICE_ATTR
- sysfs接口函数的建立_DEVICE_ATTR
- sysfs接口函数的建立_DEVICE_ATTR
- sysfs接口函数的建立_DEVICE_ATTR
- sysfs接口函数的建立_DEVICE_ATTR
- sysfs接口函数的建立_DEVICE_ATTR
- POJ 1579-Function Run Fun(记忆化搜索-递归)
- Matlab下调用USB串口发送trigger信号
- Tomcat的搭建方式之EXE文件搭建
- 编程题:间隔相同
- Leetcode(python)--10.Regular Expression Matching
- /sysfs探索_store和show的接口
- 常用的不同时间类型的相互转换
- DOBRI
- How to implement xpcom module in JavaScript
- mysql性能探究
- [数据结构]克鲁斯卡尔(Kruskal)算法
- 被Arr Object遗忘的孩子:Arr.filter()
- 成为一个高级java架构师所需要具备那些技能呢?
- Android实现Banner界面广告图片循环轮播