#include <linux/sysfs.h>
#include <linux/kobject.h>
#include "internal.h"
enum { … };
enum { … };
struct erofs_attr { … };
#define EROFS_ATTR(_name, _mode, _id) …
#define EROFS_ATTR_FUNC(_name, _mode) …
#define EROFS_ATTR_FEATURE(_name) …
#define EROFS_ATTR_OFFSET(_name, _mode, _id, _struct) …
#define EROFS_ATTR_RW(_name, _id, _struct) …
#define EROFS_RO_ATTR(_name, _id, _struct) …
#define EROFS_ATTR_RW_UI(_name, _struct) …
#define EROFS_ATTR_RW_BOOL(_name, _struct) …
#define ATTR_LIST(name) …
#ifdef CONFIG_EROFS_FS_ZIP
EROFS_ATTR_RW_UI(…);
#endif
static struct attribute *erofs_attrs[] = …;
ATTRIBUTE_GROUPS(…);
EROFS_ATTR_FEATURE(…);
EROFS_ATTR_FEATURE(…);
EROFS_ATTR_FEATURE(…);
EROFS_ATTR_FEATURE(…);
EROFS_ATTR_FEATURE(…);
EROFS_ATTR_FEATURE(…);
EROFS_ATTR_FEATURE(…);
EROFS_ATTR_FEATURE(…);
EROFS_ATTR_FEATURE(…);
EROFS_ATTR_FEATURE(…);
static struct attribute *erofs_feat_attrs[] = …;
ATTRIBUTE_GROUPS(…);
static unsigned char *__struct_ptr(struct erofs_sb_info *sbi,
int struct_type, int offset)
{ … }
static ssize_t erofs_attr_show(struct kobject *kobj,
struct attribute *attr, char *buf)
{ … }
static ssize_t erofs_attr_store(struct kobject *kobj, struct attribute *attr,
const char *buf, size_t len)
{ … }
static void erofs_sb_release(struct kobject *kobj)
{ … }
static const struct sysfs_ops erofs_attr_ops = …;
static const struct kobj_type erofs_sb_ktype = …;
static const struct kobj_type erofs_ktype = …;
static struct kset erofs_root = …;
static const struct kobj_type erofs_feat_ktype = …;
static struct kobject erofs_feat = …;
int erofs_register_sysfs(struct super_block *sb)
{ … }
void erofs_unregister_sysfs(struct super_block *sb)
{ … }
int __init erofs_init_sysfs(void)
{ … }
void erofs_exit_sysfs(void)
{ … }