X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=drivers%2Fbase%2Fbase.h;h=31dc0cd84afa2474c8f3a4a511e07c30ef1febe6;hp=2c9ae43e221933607e81f32b26c40f7156447dc5;hb=8ffa5b65968262ba6bb046329972791c0d960745;hpb=ccc751841567816532874afcaeb449dbf6ca7d3a diff --git a/drivers/base/base.h b/drivers/base/base.h index 2c9ae43e2219..31dc0cd84afa 100644 --- a/drivers/base/base.h +++ b/drivers/base/base.h @@ -36,6 +36,33 @@ struct driver_private { }; #define to_driver(obj) container_of(obj, struct driver_private, kobj) + +/** + * struct class_private - structure to hold the private to the driver core portions of the class structure. + * + * @class_subsys - the struct kset that defines this class. This is the main kobject + * @class_devices - list of devices associated with this class + * @class_interfaces - list of class_interfaces associated with this class + * @class_dirs - "glue" directory for virtual devices associated with this class + * @class_mutex - mutex to protect the children, devices, and interfaces lists. + * @class - pointer back to the struct class that this structure is associated + * with. + * + * This structure is the one that is the actual kobject allowing struct + * class to be statically allocated safely. Nothing outside of the driver + * core should ever touch these fields. + */ +struct class_private { + struct kset class_subsys; + struct list_head class_devices; + struct list_head class_interfaces; + struct kset class_dirs; + struct mutex class_mutex; + struct class *class; +}; +#define to_class(obj) \ + container_of(obj, struct class_private, class_subsys.kobj) + /* initialisation functions */ extern int devices_init(void); extern int buses_init(void);