]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/kobject.h
PHY: Add the phy_device_release device method.
[linux-2.6-omap-h63xx.git] / include / linux / kobject.h
index 0777b3f57ae6f9b605ab6505cd202739c3ec252c..4a0d27f475d7485ba13ee691b9b3978b7a3ed9a8 100644 (file)
@@ -1,8 +1,10 @@
 /*
  * kobject.h - generic kernel object infrastructure.
  *
- * Copyright (c) 2002-2003     Patrick Mochel
- * Copyright (c) 2002-2003     Open Source Development Labs
+ * Copyright (c) 2002-2003 Patrick Mochel
+ * Copyright (c) 2002-2003 Open Source Development Labs
+ * Copyright (c) 2006-2007 Greg Kroah-Hartman <greg@kroah.com>
+ * Copyright (c) 2006-2007 Novell Inc.
  *
  * This file is released under the GPLv2.
  *
@@ -66,7 +68,6 @@ struct kobject {
        struct kset             * kset;
        struct kobj_type        * ktype;
        struct sysfs_dirent     * sd;
-       wait_queue_head_t       poll;
 };
 
 extern int kobject_set_name(struct kobject *, const char *, ...)
@@ -118,29 +119,30 @@ struct kset_uevent_ops {
                      struct kobj_uevent_env *env);
 };
 
-/*
- *     struct kset - a set of kobjects of a specific type, belonging
- *     to a specific subsystem.
- *
- *     All kobjects of a kset should be embedded in an identical 
- *     type. This type may have a descriptor, which the kset points
- *     to. This allows there to exist sets of objects of the same
- *     type in different subsystems.
+/**
+ * struct kset - a set of kobjects of a specific type, belonging to a specific subsystem.
  *
- *     A subsystem does not have to be a list of only one type 
- *     of object; multiple ksets can belong to one subsystem. All 
- *     ksets of a subsystem share the subsystem's lock.
+ * A kset defines a group of kobjects.  They can be individually
+ * different "types" but overall these kobjects all want to be grouped
+ * together and operated on in the same manner.  ksets are used to
+ * define the attribute callbacks and other common events that happen to
+ * a kobject.
  *
- *     Each kset can support specific event variables; it can
- *     supress the event generation or add subsystem specific
- *     variables carried with the event.
+ * @ktype: the struct kobj_type for this specific kset
+ * @list: the list of all kobjects for this kset
+ * @list_lock: a lock for iterating over the kobjects
+ * @kobj: the embedded kobject for this kset (recursion, isn't it fun...)
+ * @uevent_ops: the set of uevent operations for this kset.  These are
+ * called whenever a kobject has something happen to it so that the kset
+ * can add new environment variables, or filter out the uevents if so
+ * desired.
  */
 struct kset {
-       struct kobj_type        * ktype;
+       struct kobj_type        *ktype;
        struct list_head        list;
        spinlock_t              list_lock;
        struct kobject          kobj;
-       struct kset_uevent_ops  * uevent_ops;
+       struct kset_uevent_ops  *uevent_ops;
 };
 
 
@@ -218,7 +220,6 @@ extern struct kset hypervisor_subsys;
 #define kobj_set_kset_s(obj,subsys) \
        (obj)->kobj.kset = &(subsys)
 
-extern void subsystem_init(struct kset *);
 extern int __must_check subsystem_register(struct kset *);
 extern void subsystem_unregister(struct kset *);