cvs commit: src/sys/sys bus.h kobj.h param.h src/sys/kern subr_bus.c subr_kobj.c

Doug Rabson dfr at FreeBSD.org
Thu Oct 16 02:16:29 PDT 2003


dfr         2003/10/16 02:16:28 PDT

  FreeBSD src repository

  Modified files:
    sys/sys              bus.h kobj.h param.h 
    sys/kern             subr_bus.c subr_kobj.c 
  Log:
  * Add multiple inheritance to kobj. Each class can have zero or more base
    classes and if a method is not found in a given class, its base classes
    are searched (in the order they were declared). This search is recursive,
    i.e. a method may be define in a base class of a base class.
  * Change the kobj method lookup algorithm to one which is SMP-safe. This
    relies only on the constraint that an observer of a sequence of writes
    of pointer-sized values will see exactly one of those values, not a
    mixture of two or more values. This assumption holds for all processors
    which FreeBSD supports.
  * Add locking to kobj class initialisation.
  * Add a simpler form of 'inheritance' for devclasses. Each devclass can
    have a parent devclass. Searches for drivers continue up the chain of
    devclasses until either a matching driver is found or a devclass is
    reached which has no parent. This can allow, for instance, pci drivers
    to match cardbus devices (assuming that cardbus declares pci as its
    parent devclass).
  * Increment __FreeBSD_version.
  
  This preserves the driver API entirely except for one minor feature used
  by the ISA compatibility shims. A workaround for ISA compatibility will
  be committed separately. The kobj and newbus ABI has changed - all modules
  must be recompiled.
  
  Revision  Changes    Path
  1.133     +102 -66   src/sys/kern/subr_bus.c
  1.8       +155 -33   src/sys/kern/subr_kobj.c
  1.56      +13 -32    src/sys/sys/bus.h
  1.9       +105 -31   src/sys/sys/kobj.h
  1.172     +1 -1      src/sys/sys/param.h


More information about the cvs-src mailing list