diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2010-11-15 17:13:18 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-11-17 17:21:08 -0500 |
commit | 6b6e39a6a8da7234c538d14c43d3583da8875f9c (patch) | |
tree | cef5d25998665559ecc0cad2bcdb947cfa401b67 /drivers/base/base.h | |
parent | 14c05aa399e30f343f25158c9adfc44631378a96 (diff) |
driver-core: merge private parts of class and bus
As classes and busses are pretty much the same thing, and we want to
merge them together into a 'subsystem' in the future, let us share the
same private data parts to make that merge easier.
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/base/base.h')
-rw-r--r-- | drivers/base/base.h | 62 |
1 files changed, 25 insertions, 37 deletions
diff --git a/drivers/base/base.h b/drivers/base/base.h index 2ca7f5b7b824..19f49e41ce5d 100644 --- a/drivers/base/base.h +++ b/drivers/base/base.h | |||
@@ -1,31 +1,46 @@ | |||
1 | 1 | ||
2 | /** | 2 | /** |
3 | * struct bus_type_private - structure to hold the private to the driver core portions of the bus_type structure. | 3 | * struct subsys_private - structure to hold the private to the driver core portions of the bus_type/class structure. |
4 | * | 4 | * |
5 | * @subsys - the struct kset that defines this bus. This is the main kobject | 5 | * @subsys - the struct kset that defines this subsystem |
6 | * @drivers_kset - the list of drivers associated with this bus | 6 | * @devices_kset - the list of devices associated |
7 | * @devices_kset - the list of devices associated with this bus | 7 | * |
8 | * @drivers_kset - the list of drivers associated | ||
8 | * @klist_devices - the klist to iterate over the @devices_kset | 9 | * @klist_devices - the klist to iterate over the @devices_kset |
9 | * @klist_drivers - the klist to iterate over the @drivers_kset | 10 | * @klist_drivers - the klist to iterate over the @drivers_kset |
10 | * @bus_notifier - the bus notifier list for anything that cares about things | 11 | * @bus_notifier - the bus notifier list for anything that cares about things |
11 | * on this bus. | 12 | * on this bus. |
12 | * @bus - pointer back to the struct bus_type that this structure is associated | 13 | * @bus - pointer back to the struct bus_type that this structure is associated |
13 | * with. | 14 | * with. |
15 | * | ||
16 | * @class_interfaces - list of class_interfaces associated | ||
17 | * @glue_dirs - "glue" directory to put in-between the parent device to | ||
18 | * avoid namespace conflicts | ||
19 | * @class_mutex - mutex to protect the children, devices, and interfaces lists. | ||
20 | * @class - pointer back to the struct class that this structure is associated | ||
21 | * with. | ||
14 | * | 22 | * |
15 | * This structure is the one that is the actual kobject allowing struct | 23 | * This structure is the one that is the actual kobject allowing struct |
16 | * bus_type to be statically allocated safely. Nothing outside of the driver | 24 | * bus_type/class to be statically allocated safely. Nothing outside of the |
17 | * core should ever touch these fields. | 25 | * driver core should ever touch these fields. |
18 | */ | 26 | */ |
19 | struct bus_type_private { | 27 | struct subsys_private { |
20 | struct kset subsys; | 28 | struct kset subsys; |
21 | struct kset *drivers_kset; | ||
22 | struct kset *devices_kset; | 29 | struct kset *devices_kset; |
30 | |||
31 | struct kset *drivers_kset; | ||
23 | struct klist klist_devices; | 32 | struct klist klist_devices; |
24 | struct klist klist_drivers; | 33 | struct klist klist_drivers; |
25 | struct blocking_notifier_head bus_notifier; | 34 | struct blocking_notifier_head bus_notifier; |
26 | unsigned int drivers_autoprobe:1; | 35 | unsigned int drivers_autoprobe:1; |
27 | struct bus_type *bus; | 36 | struct bus_type *bus; |
37 | |||
38 | struct list_head class_interfaces; | ||
39 | struct kset glue_dirs; | ||
40 | struct mutex class_mutex; | ||
41 | struct class *class; | ||
28 | }; | 42 | }; |
43 | #define to_subsys_private(obj) container_of(obj, struct subsys_private, subsys.kobj) | ||
29 | 44 | ||
30 | struct driver_private { | 45 | struct driver_private { |
31 | struct kobject kobj; | 46 | struct kobject kobj; |
@@ -36,33 +51,6 @@ struct driver_private { | |||
36 | }; | 51 | }; |
37 | #define to_driver(obj) container_of(obj, struct driver_private, kobj) | 52 | #define to_driver(obj) container_of(obj, struct driver_private, kobj) |
38 | 53 | ||
39 | |||
40 | /** | ||
41 | * struct class_private - structure to hold the private to the driver core portions of the class structure. | ||
42 | * | ||
43 | * @class_subsys - the struct kset that defines this class. This is the main kobject | ||
44 | * @class_devices - list of devices associated with this class | ||
45 | * @class_interfaces - list of class_interfaces associated with this class | ||
46 | * @class_dirs - "glue" directory for virtual devices associated with this class | ||
47 | * @class_mutex - mutex to protect the children, devices, and interfaces lists. | ||
48 | * @class - pointer back to the struct class that this structure is associated | ||
49 | * with. | ||
50 | * | ||
51 | * This structure is the one that is the actual kobject allowing struct | ||
52 | * class to be statically allocated safely. Nothing outside of the driver | ||
53 | * core should ever touch these fields. | ||
54 | */ | ||
55 | struct class_private { | ||
56 | struct kset class_subsys; | ||
57 | struct klist class_devices; | ||
58 | struct list_head class_interfaces; | ||
59 | struct kset class_dirs; | ||
60 | struct mutex class_mutex; | ||
61 | struct class *class; | ||
62 | }; | ||
63 | #define to_class(obj) \ | ||
64 | container_of(obj, struct class_private, class_subsys.kobj) | ||
65 | |||
66 | /** | 54 | /** |
67 | * struct device_private - structure to hold the private to the driver core portions of the device structure. | 55 | * struct device_private - structure to hold the private to the driver core portions of the device structure. |
68 | * | 56 | * |