summaryrefslogtreecommitdiff
path: root/include/linux/device.h
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2006-05-06 17:55:11 -0700
committerDavid S. Miller <davem@davemloft.net>2006-05-06 17:55:11 -0700
commit1498221d51a43d5fa1a580618591497d90f957d9 (patch)
tree20554a3fa474c9d09f649958b85b90a3de718477 /include/linux/device.h
parent5528e568a760442e0ec8fd2dea1f0791875a066b (diff)
downloadlinux-3.10-1498221d51a43d5fa1a580618591497d90f957d9.tar.gz
linux-3.10-1498221d51a43d5fa1a580618591497d90f957d9.tar.bz2
linux-3.10-1498221d51a43d5fa1a580618591497d90f957d9.zip
[CLASS DEVICE]: add attribute_group creation
Extend the support of attribute groups in class_device's to allow groups to be created as part of the registration process. This allows network device's to avoid race between registration and creating groups. Note that unlike attributes that are a property of the class object, the groups are a property of the class_device object. This is done because there are different types of network devices (wireless for example). Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/device.h')
-rw-r--r--include/linux/device.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/device.h b/include/linux/device.h
index f6e72a65a3f..e8e53b9accc 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -200,6 +200,7 @@ extern int class_device_create_file(struct class_device *,
* @node: for internal use by the driver core only.
* @kobj: for internal use by the driver core only.
* @devt_attr: for internal use by the driver core only.
+ * @groups: optional additional groups to be created
* @dev: if set, a symlink to the struct device is created in the sysfs
* directory for this struct class device.
* @class_data: pointer to whatever you want to store here for this struct
@@ -228,6 +229,7 @@ struct class_device {
struct device * dev; /* not necessary, but nice to have */
void * class_data; /* class-specific data */
struct class_device *parent; /* parent of this child device, if there is one */
+ struct attribute_group ** groups; /* optional groups */
void (*release)(struct class_device *dev);
int (*uevent)(struct class_device *dev, char **envp,