Skip to content

Commit

Permalink
sysfs: implement all BIN_ATTR_* macros in terms of __BIN_ATTR()
Browse files Browse the repository at this point in the history
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 <[email protected]>
Acked-by: Krzysztof Wilczyński <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
t-8ch authored and gregkh committed Nov 5, 2024
1 parent 699e7b8 commit ae587a5
Showing 1 changed file with 8 additions and 19 deletions.
27 changes: 8 additions & 19 deletions include/linux/sysfs.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand All @@ -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)
Expand Down

0 comments on commit ae587a5

Please sign in to comment.