Add macros for defining attribute groups and for WO and RW attributes.
Reviewed by: hselasky MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D11872
This commit is contained in:
parent
39d016e70f
commit
b457025073
@ -142,7 +142,13 @@ struct device_attribute {
|
||||
|
||||
#define DEVICE_ATTR(_name, _mode, _show, _store) \
|
||||
struct device_attribute dev_attr_##_name = \
|
||||
{ { #_name, NULL, _mode }, _show, _store }
|
||||
__ATTR(_name, _mode, _show, _store)
|
||||
#define DEVICE_ATTR_RO(_name) \
|
||||
struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
|
||||
#define DEVICE_ATTR_WO(_name) \
|
||||
struct device_attribute dev_attr_##_name = __ATTR_WO(_name)
|
||||
#define DEVICE_ATTR_RW(_name) \
|
||||
struct device_attribute dev_attr_##_name = __ATTR_RW(_name)
|
||||
|
||||
/* Simple class attribute that is just a static string */
|
||||
struct class_attribute_string {
|
||||
|
@ -54,14 +54,21 @@ struct attribute_group {
|
||||
.attr = { .name = __stringify(_name), .mode = _mode }, \
|
||||
.show = _show, .store = _store, \
|
||||
}
|
||||
|
||||
#define __ATTR_RO(_name) { \
|
||||
.attr = { .name = __stringify(_name), .mode = 0444 }, \
|
||||
.show = _name##_show, \
|
||||
}
|
||||
#define __ATTR_RO(_name) __ATTR(_name, 0444, _name##_show, NULL)
|
||||
#define __ATTR_WO(_name) __ATTR(_name, 0200, NULL, _name##_store)
|
||||
#define __ATTR_RW(_name) __ATTR(_name, 0644, _name##_show, _name##_store)
|
||||
|
||||
#define __ATTR_NULL { .attr = { .name = NULL } }
|
||||
|
||||
#define ATTRIBUTE_GROUPS(_name) \
|
||||
static struct attribute_group _name##_group = { \
|
||||
.attrs = _name##_attrs, \
|
||||
}; \
|
||||
static struct attribute_group *_name##_groups[] = { \
|
||||
&_name##_group, \
|
||||
NULL, \
|
||||
};
|
||||
|
||||
/*
|
||||
* Handle our generic '\0' terminated 'C' string.
|
||||
* Two cases:
|
||||
|
Loading…
x
Reference in New Issue
Block a user