diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2007-11-01 22:41:16 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-01-24 23:40:33 -0500 |
commit | c6f7e72a3f4641095ade9ded287d910c980c6148 (patch) | |
tree | d2d7d946b978ce9f5586a02c3520aa76e928a551 /include/linux/device.h | |
parent | b249072ee6897fe4f8d461c7bb4b926223263c28 (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.h | 12 |
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; | |||
35 | struct class; | 35 | struct class; |
36 | struct class_device; | 36 | struct class_device; |
37 | struct bus_type; | 37 | struct bus_type; |
38 | struct bus_type_private; | ||
38 | 39 | ||
39 | struct bus_attribute { | 40 | struct 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 | ||
52 | struct bus_type { | 53 | struct 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 | ||
81 | extern int __must_check bus_register(struct bus_type * bus); | 73 | extern int __must_check bus_register(struct bus_type * bus); |