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