Commit ae587a50 authored by Thomas Weißschuh's avatar Thomas Weißschuh Committed by Greg Kroah-Hartman
Browse files

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: default avatarThomas Weißschuh <linux@weissschuh.net>
Acked-by: default avatarKrzysztof Wilczyński <kw@linux.com>
Link: https://lore.kernel.org/r/20241103-sysfs-const-bin_attr-v2-8-71110628844c@weissschuh.net


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 699e7b85
Loading
Loading
Loading
Loading
+8 −19
Original line number Diff line number Diff line
@@ -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)