1. 05 Jan, 2003 1 commit
    • 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
  2. 04 Jan, 2003 4 commits
    • Patrick Mochel's avatar
      driver model: clean up struct device_class a bit. · 2e1c4037
      Patrick Mochel authored
      - Remove unused class_list.
      - Use lists in subordinate subsystems for storing lists of devices and
        drivers.
      - Rename 'drvsubsys' to 'drivers' and 'devsubsys' to 'devices', to be more
        meaningful.
      2e1c4037
    • Patrick Mochel's avatar
      driver model: clean up struct bus_type a bit. · 46dbdc4e
      Patrick Mochel authored
      - Remove devices list, in favor of using the list in the subordinate
        devices subsystem.
      - Rename devsubsys to 'devices' and drvsubsys to 'drivers'.
      - Use bus's rwsem when iterating over drivers, instead of the 
        subordinate driver subsystem's. (We use that one when adding the 
        driver, and binding it to devices).
      46dbdc4e
    • Patrick Mochel's avatar
      kobject: Introduce struct kobj_type. · 23066070
      Patrick Mochel authored
      This is the first step in morphing struct subsystem into something meaningful.
      
      A subsystem is defined simply as a list of kobjects of a certain type, which
      is far too generic. A subsystem should be representative of a large entity
      of code (i.e. a subsystem of the kernel), not just a simple list. 
      
      This changeset:
      
      - Creates struct kobj_type, a descriptor of the type a kobject is embedded
        in.
      
      - Extracts the fields that are specific to a particular object type from
        struct subsystem and puts them in struct kobj_type, which are
        - the object's release method.
        - the sysfs operations for the object type.
        - the default attributes of the object type.
      
      - Adds ptr to struct kobject to point to its type descriptor. 
      
      - Converts the existing subsystem definitions to define struct kobj_type. 
      
      
      struct kobj_type's are not registered, as they do not have any explicit
      representation in the object hierarchy, nor do they have any fields that
      need runtime initialization. 
      
      A kobject's ktype should be set when it is registered, like its subsystem.
      Note this obviates the need for defining a struct subsystem when an object
      type does not need to be kept in a global list. 
      23066070
    • Patrick Mochel's avatar
  3. 03 Jan, 2003 1 commit
  4. 02 Jan, 2003 34 commits