• 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
bus.c 13.3 KB