• Patrick Mochel's avatar
    Introduce struct kset. · 3e815107
    Patrick Mochel authored
    struct kset is what struct subsystem should have originally been called. It
    is a set of kobjects, and nothing more, with a much less confusing name than
    'subsystem.'
    
    struct kset contains an embedded kobject, making it possible to represent it
    in the object hierarchy, and sysfs. This also provides a means for objects
    to easily express a list of subordinate objects. 
    
    struct subsystem still exists, and contains an rwsem, which its subordinate
    ksets use to protect their lists. 
    
    An arbitrary number of ksets may belong to a subsystem. A ksets specifies
    the subsystem it belongs to via its ->subsys field. 
    
    struct subsystem also contains a default kset, which may be used without
    having to define a separate kset. 
    
    The objects that defined subordinate subsystems (bus and class drivers) have
    been converted to use subordinate ksets instead.
    
    
    Note that the usage of ksets is flexible. 
    - ksets may contain a list of objects of any type, not just kobjects.
    - The objects registered with a kset do not have to be registered.
    - ksets themselves do not have to be registered. One can be used by
      simply calling kset_init(). 
    - ksets do not need a name if they are not registered. 
    - Note however that locking must be done manually in these cases.
    3e815107
bus.c 12.9 KB