| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Date: Sun, 14 Jul 2013 16:05:52 -0700 |
| Subject: sysfs.h: add ATTRIBUTE_GROUPS() macro |
| |
| commit f2f37f58b1b933b06d6d84e80a31a1b500fb0db2 upstream. |
| |
| To make it easier for driver subsystems to work with attribute groups, |
| create the ATTRIBUTE_GROUPS macro to remove some of the repetitive |
| typing for the most common use for attribute groups. |
| |
| Reviewed-by: Guenter Roeck <linux@roeck-us.net> |
| Tested-by: Guenter Roeck <linux@roeck-us.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| include/linux/sysfs.h | 9 +++++++++ |
| 1 file changed, 9 insertions(+) |
| |
| --- a/include/linux/sysfs.h |
| +++ b/include/linux/sysfs.h |
| @@ -80,6 +80,15 @@ struct attribute_group { |
| |
| #define __ATTR_NULL { .attr = { .name = NULL } } |
| |
| +#define ATTRIBUTE_GROUPS(name) \ |
| +static const struct attribute_group name##_group = { \ |
| + .attrs = name##_attrs, \ |
| +}; \ |
| +static const struct attribute_group *name##_groups[] = { \ |
| + &name##_group, \ |
| + NULL, \ |
| +} |
| + |
| #define attr_name(_attr) (_attr).attr.name |
| |
| struct file; |