aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/device.h
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2007-11-01 22:41:16 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2008-01-24 23:40:33 -0500
commitc6f7e72a3f4641095ade9ded287d910c980c6148 (patch)
treed2d7d946b978ce9f5586a02c3520aa76e928a551 /include/linux/device.h
parentb249072ee6897fe4f8d461c7bb4b926223263c28 (diff)
driver core: remove fields from struct bus_type
struct bus_type is static everywhere in the kernel. This moves the kobject in the structure out of it, and a bunch of other private only to the driver core fields are now moved to a private structure. This lets us dynamically create the backing kobject properly and gives us the chance to be able to document to users exactly how to use the struct bus_type as there are no fields they can improperly access. Thanks to Kay for the build fixes on this patch. Cc: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include/linux/device.h')
-rw-r--r--include/linux/device.h12
1 files changed, 2 insertions, 10 deletions
diff --git a/include/linux/device.h b/include/linux/device.h
index 62e695bd3c93..3f24bf46d298 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -35,6 +35,7 @@ struct device_driver;
35struct class; 35struct class;
36struct class_device; 36struct class_device;
37struct bus_type; 37struct bus_type;
38struct bus_type_private;
38 39
39struct bus_attribute { 40struct bus_attribute {
40 struct attribute attr; 41 struct attribute attr;
@@ -51,15 +52,6 @@ extern void bus_remove_file(struct bus_type *, struct bus_attribute *);
51 52
52struct bus_type { 53struct bus_type {
53 const char * name; 54 const char * name;
54
55 struct kset subsys;
56 struct kset *drivers_kset;
57 struct kset *devices_kset;
58 struct klist klist_devices;
59 struct klist klist_drivers;
60
61 struct blocking_notifier_head bus_notifier;
62
63 struct bus_attribute * bus_attrs; 55 struct bus_attribute * bus_attrs;
64 struct device_attribute * dev_attrs; 56 struct device_attribute * dev_attrs;
65 struct driver_attribute * drv_attrs; 57 struct driver_attribute * drv_attrs;
@@ -75,7 +67,7 @@ struct bus_type {
75 int (*resume_early)(struct device * dev); 67 int (*resume_early)(struct device * dev);
76 int (*resume)(struct device * dev); 68 int (*resume)(struct device * dev);
77 69
78 unsigned int drivers_autoprobe:1; 70 struct bus_type_private *p;
79}; 71};
80 72
81extern int __must_check bus_register(struct bus_type * bus); 73extern int __must_check bus_register(struct bus_type * bus);