mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-28 16:53:49 +00:00
sysfs: implement all BIN_ATTR_* macros in terms of __BIN_ATTR()
The preparations for the upcoming constification of struct bin_attribute requires some logic in the structure definition macros. To avoid duplication of that logic in multiple macros, reimplement all other macros in terms of __BIN_ATTR(). Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Acked-by: Krzysztof Wilczyński <kw@linux.com> Link: https://lore.kernel.org/r/20241103-sysfs-const-bin_attr-v2-8-71110628844c@weissschuh.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
699e7b85af
commit
ae587a5099
@ -333,17 +333,11 @@ struct bin_attribute {
|
||||
.size = _size, \
|
||||
}
|
||||
|
||||
#define __BIN_ATTR_RO(_name, _size) { \
|
||||
.attr = { .name = __stringify(_name), .mode = 0444 }, \
|
||||
.read = _name##_read, \
|
||||
.size = _size, \
|
||||
}
|
||||
#define __BIN_ATTR_RO(_name, _size) \
|
||||
__BIN_ATTR(_name, 0444, _name##_read, NULL, _size)
|
||||
|
||||
#define __BIN_ATTR_WO(_name, _size) { \
|
||||
.attr = { .name = __stringify(_name), .mode = 0200 }, \
|
||||
.write = _name##_write, \
|
||||
.size = _size, \
|
||||
}
|
||||
#define __BIN_ATTR_WO(_name, _size) \
|
||||
__BIN_ATTR(_name, 0200, NULL, _name##_write, _size)
|
||||
|
||||
#define __BIN_ATTR_RW(_name, _size) \
|
||||
__BIN_ATTR(_name, 0644, _name##_read, _name##_write, _size)
|
||||
@ -364,11 +358,8 @@ struct bin_attribute bin_attr_##_name = __BIN_ATTR_WO(_name, _size)
|
||||
struct bin_attribute bin_attr_##_name = __BIN_ATTR_RW(_name, _size)
|
||||
|
||||
|
||||
#define __BIN_ATTR_ADMIN_RO(_name, _size) { \
|
||||
.attr = { .name = __stringify(_name), .mode = 0400 }, \
|
||||
.read = _name##_read, \
|
||||
.size = _size, \
|
||||
}
|
||||
#define __BIN_ATTR_ADMIN_RO(_name, _size) \
|
||||
__BIN_ATTR(_name, 0400, _name##_read, NULL, _size)
|
||||
|
||||
#define __BIN_ATTR_ADMIN_RW(_name, _size) \
|
||||
__BIN_ATTR(_name, 0600, _name##_read, _name##_write, _size)
|
||||
@ -379,10 +370,8 @@ struct bin_attribute bin_attr_##_name = __BIN_ATTR_ADMIN_RO(_name, _size)
|
||||
#define BIN_ATTR_ADMIN_RW(_name, _size) \
|
||||
struct bin_attribute bin_attr_##_name = __BIN_ATTR_ADMIN_RW(_name, _size)
|
||||
|
||||
#define __BIN_ATTR_SIMPLE_RO(_name, _mode) { \
|
||||
.attr = { .name = __stringify(_name), .mode = _mode }, \
|
||||
.read = sysfs_bin_attr_simple_read, \
|
||||
}
|
||||
#define __BIN_ATTR_SIMPLE_RO(_name, _mode) \
|
||||
__BIN_ATTR(_name, _mode, sysfs_bin_attr_simple_read, NULL, 0)
|
||||
|
||||
#define BIN_ATTR_SIMPLE_RO(_name) \
|
||||
struct bin_attribute bin_attr_##_name = __BIN_ATTR_SIMPLE_RO(_name, 0444)
|
||||
|
Loading…
Reference in New Issue
Block a user