configfs 数据结构

1. configfs子系统
struct configfs_subsystem {
    struct config_group    su_group;    // 抽象容器,容器中可以包括config_item,还可以递归包含config_group
    struct mutex          su_mutex;     // 用于子系统访问控制
};

2.抽象容器
/**
 *    group - a group of config_items of a specific type, belonging
 *    to a specific subsystem.
 */
struct config_group {
    struct config_item          cg_item;         // 表现为一个目录
    struct list_head          cg_children;
    struct configfs_subsystem      *cg_subsys;
    struct config_group          **default_groups;
};

3. 目录
struct config_item {
    char              *ci_name;
    char              ci_namebuf[CONFIGFS_ITEM_NAME_LEN];         // 目录名称
    struct kref          ci_kref;                                  
    struct list_head    ci_entry;
    struct config_item    *ci_parent;
    struct config_group    *ci_group;                             
    struct config_item_type    *ci_type;                          // 目录下属性和属性操作,属性表现为目录下的文本文件
    struct dentry          *ci_dentry;
};

4. 目录与属性操作方法。
struct config_item_type {
    struct module                    *ct_owner;
    struct configfs_item_operations          *ct_item_ops;        // 属性操作方法,操作对象是configfs_attribute
    struct configfs_group_operations    *ct_group_ops;            //目录操作方法,可以在当前目录下创建item或group
    struct configfs_attribute          **ct_attrs;                // 当前目录属性数组
};

5.属性
struct configfs_attribute {
    const char          *ca_name;          // 属性名称
    struct module          *ca_owner;      // 所属模块
    umode_t              ca_mode;          // 访问权限
};

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值