aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/base.h
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@vrfy.org>2010-11-15 17:13:18 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2010-11-17 17:21:08 -0500
commit6b6e39a6a8da7234c538d14c43d3583da8875f9c (patch)
treecef5d25998665559ecc0cad2bcdb947cfa401b67 /drivers/base/base.h
parent14c05aa399e30f343f25158c9adfc44631378a96 (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.h62
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 */
19struct bus_type_private { 27struct 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
30struct driver_private { 45struct 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 */
55struct 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 *