sysfs学习

1. sysfs是一种用户态与内核的交互机制。在/sys/目录下每个文件可以通过读,写操作下发命令到内核,内核定义相应的读写操作完成指定的功能。

比如现在做的一个项目,需要在/sys/devices/目录下创建自己模块的一个目录,假设是mpath,同时要在mpath下创建文件info, action,同时创建目录km*。info用来通过sysfs文件实施查看内核中相关信息,而action则通过对文件输入不同的命令字让内核执行不同操作,比如对action文件输入1,对应到内核去执行一个添加操作,输入2,对应到内核执行删除操作。

首先,在目录下创建文件可以用到函数:

int sysfs_create_group(struct kobject *kobj, const struct attribute_group *grp)
int __must_check sysfs_create_file(struct kobject *kobj,const struct attribute *attr)
int sysfs_create_files(struct kobject *kobj, const struct attribute **ptr)

int sysfs_create_group(struct kobject *kobj,
               const struct attribute_group *grp)
struct attribute_group {
    const char        *name;
    umode_t            (*is_visible)(struct kobject *,
                          struct attribute *, int);
    umode_t            (*is_bin_visible)(struct kobject *,
                          struct bin_attribute *, int);
    struct attribute    **attrs;
    struct bin_attribute    **bin_attrs;
};

猜你喜欢

转载自www.cnblogs.com/xuxia/p/11451668.html
今日推荐