diff options
Diffstat (limited to 'include/linux/sysfs.h')
| -rw-r--r-- | include/linux/sysfs.h | 16 | 
1 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h index e3f1e8ac1f85..fd3fe5c8c17f 100644 --- a/include/linux/sysfs.h +++ b/include/linux/sysfs.h @@ -235,6 +235,22 @@ struct bin_attribute bin_attr_##_name = __BIN_ATTR_WO(_name, _size)  #define BIN_ATTR_RW(_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_RW(_name, _size)					\ +	__BIN_ATTR(_name, 0600, _name##_read, _name##_write, _size) + +#define BIN_ATTR_ADMIN_RO(_name, _size)					\ +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) +  struct sysfs_ops {  	ssize_t	(*show)(struct kobject *, struct attribute *, char *);  	ssize_t	(*store)(struct kobject *, struct attribute *, const char *, size_t);  |