sysfs: simplify attribute definition macros
Define the macros in terms of each other. This makes them easier to understand and also will make it easier to implement the transition machinery for 'const struct attribute'. __ATTR_RO_MODE() can't be implemented in terms of __ATTR() as not all attributes have a .store callback. The same issue theoretically exists for __ATTR_WO(), but practically that does not occur today. Reorder __ATTR_RO() below __ATTR_RO_MODE() to keep the order of the macro definition consistent with respect to each other. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://patch.msgid.link/20251029-sysfs-const-attr-prep-v5-7-ea7d745acff4@weissschuh.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
2d76fdc1c9
commit
71464949b1
@@ -251,28 +251,20 @@ struct attribute_group {
|
||||
.store = _store, \
|
||||
}
|
||||
|
||||
#define __ATTR_RO(_name) { \
|
||||
.attr = { .name = __stringify(_name), .mode = 0444 }, \
|
||||
.show = _name##_show, \
|
||||
}
|
||||
|
||||
#define __ATTR_RO_MODE(_name, _mode) { \
|
||||
.attr = { .name = __stringify(_name), \
|
||||
.mode = VERIFY_OCTAL_PERMISSIONS(_mode) }, \
|
||||
.show = _name##_show, \
|
||||
}
|
||||
|
||||
#define __ATTR_RW_MODE(_name, _mode) { \
|
||||
.attr = { .name = __stringify(_name), \
|
||||
.mode = VERIFY_OCTAL_PERMISSIONS(_mode) }, \
|
||||
.show = _name##_show, \
|
||||
.store = _name##_store, \
|
||||
}
|
||||
#define __ATTR_RO(_name) \
|
||||
__ATTR_RO_MODE(_name, 0444)
|
||||
|
||||
#define __ATTR_WO(_name) { \
|
||||
.attr = { .name = __stringify(_name), .mode = 0200 }, \
|
||||
.store = _name##_store, \
|
||||
}
|
||||
#define __ATTR_RW_MODE(_name, _mode) \
|
||||
__ATTR(_name, _mode, _name##_show, _name##_store)
|
||||
|
||||
#define __ATTR_WO(_name) \
|
||||
__ATTR(_name, 0200, NULL, _name##_store)
|
||||
|
||||
#define __ATTR_RW(_name) __ATTR(_name, 0644, _name##_show, _name##_store)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user