OSDN Git Service

Merge 4.13-rc5 into driver-core-next
[uclinux-h8/linux.git] / include / linux / device.h
index beabdbc..5db26b9 100644 (file)
@@ -1200,6 +1200,36 @@ struct device *device_create_with_groups(struct class *cls,
                             const char *fmt, ...);
 extern void device_destroy(struct class *cls, dev_t devt);
 
+extern int __must_check device_add_groups(struct device *dev,
+                                       const struct attribute_group **groups);
+extern void device_remove_groups(struct device *dev,
+                                const struct attribute_group **groups);
+
+static inline int __must_check device_add_group(struct device *dev,
+                                       const struct attribute_group *grp)
+{
+       const struct attribute_group *groups[] = { grp, NULL };
+
+       return device_add_groups(dev, groups);
+}
+
+static inline void device_remove_group(struct device *dev,
+                                      const struct attribute_group *grp)
+{
+       const struct attribute_group *groups[] = { grp, NULL };
+
+       return device_remove_groups(dev, groups);
+}
+
+extern int __must_check devm_device_add_groups(struct device *dev,
+                                       const struct attribute_group **groups);
+extern void devm_device_remove_groups(struct device *dev,
+                                     const struct attribute_group **groups);
+extern int __must_check devm_device_add_group(struct device *dev,
+                                       const struct attribute_group *grp);
+extern void devm_device_remove_group(struct device *dev,
+                                    const struct attribute_group *grp);
+
 /*
  * Platform "fixup" functions - allow the platform to have their say
  * about devices and actions that the general device layer doesn't