diff options
author | dfr <dfr@FreeBSD.org> | 2000-04-08 14:17:18 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 2000-04-08 14:17:18 +0000 |
commit | c9bf4be3c29d14ce9b4af20459517870eed8bce9 (patch) | |
tree | b0ea9aab688814aec913835039451900941b1619 /sys/dev | |
parent | 2d18287eb4e48e437d5e7a756df6f20a59c7e176 (diff) | |
download | FreeBSD-src-c9bf4be3c29d14ce9b4af20459517870eed8bce9.zip FreeBSD-src-c9bf4be3c29d14ce9b4af20459517870eed8bce9.tar.gz |
* Factor out the object system from new-bus so that it can be used by
non-device code.
* Re-implement the method dispatch to improve efficiency. The new system
takes about 40ns for a method dispatch on a 300Mhz PII which is only
10ns slower than a direct function call on the same hardware.
This changes the new-bus ABI slightly so make sure you re-compile any
driver modules which you use.
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/dec/mcclock_if.m | 2 | ||||
-rw-r--r-- | sys/dev/iicbus/iicbb_if.m | 2 | ||||
-rw-r--r-- | sys/dev/iicbus/iicbus_if.m | 2 | ||||
-rw-r--r-- | sys/dev/mii/miibus_if.m | 2 | ||||
-rw-r--r-- | sys/dev/pci/pci.c | 2 | ||||
-rw-r--r-- | sys/dev/pci/pci_if.m | 2 | ||||
-rw-r--r-- | sys/dev/ppbus/ppbus_if.m | 1 | ||||
-rw-r--r-- | sys/dev/smbus/smbus_if.m | 2 | ||||
-rw-r--r-- | sys/dev/usb/usb_if.m | 2 |
9 files changed, 16 insertions, 1 deletions
diff --git a/sys/dev/dec/mcclock_if.m b/sys/dev/dec/mcclock_if.m index 01b8a64..a67caca 100644 --- a/sys/dev/dec/mcclock_if.m +++ b/sys/dev/dec/mcclock_if.m @@ -26,6 +26,8 @@ # $FreeBSD$ # +#include <sys/bus.h> + INTERFACE mcclock; # diff --git a/sys/dev/iicbus/iicbb_if.m b/sys/dev/iicbus/iicbb_if.m index a99bfe8..94baa41 100644 --- a/sys/dev/iicbus/iicbb_if.m +++ b/sys/dev/iicbus/iicbb_if.m @@ -26,6 +26,8 @@ # $FreeBSD$ # +#include <sys/bus.h> + INTERFACE iicbb; # diff --git a/sys/dev/iicbus/iicbus_if.m b/sys/dev/iicbus/iicbus_if.m index ba30c61..eddc022 100644 --- a/sys/dev/iicbus/iicbus_if.m +++ b/sys/dev/iicbus/iicbus_if.m @@ -26,6 +26,8 @@ # $FreeBSD$ # +#include <sys/bus.h> + INTERFACE iicbus; # diff --git a/sys/dev/mii/miibus_if.m b/sys/dev/mii/miibus_if.m index d540964..ee7cd08 100644 --- a/sys/dev/mii/miibus_if.m +++ b/sys/dev/mii/miibus_if.m @@ -1,5 +1,7 @@ # $FreeBSD$ +#include <sys/bus.h> + INTERFACE miibus; # diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index faa813b..574d567 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -940,7 +940,7 @@ compat_pci_handler(module_t mod, int type, void *data) bzero(driver, sizeof(driver_t)); driver->name = dvp->pd_name; driver->methods = pci_compat_methods; - driver->softc = sizeof(struct pci_devinfo *); + driver->size = sizeof(struct pci_devinfo *); driver->priv = dvp; devclass_add_driver(pci_devclass, driver); break; diff --git a/sys/dev/pci/pci_if.m b/sys/dev/pci/pci_if.m index 95b0081..e055f42 100644 --- a/sys/dev/pci/pci_if.m +++ b/sys/dev/pci/pci_if.m @@ -26,6 +26,8 @@ # $FreeBSD$ # +#include <sys/bus.h> + INTERFACE pci; METHOD u_int32_t read_config { diff --git a/sys/dev/ppbus/ppbus_if.m b/sys/dev/ppbus/ppbus_if.m index 00af081..f21dd83 100644 --- a/sys/dev/ppbus/ppbus_if.m +++ b/sys/dev/ppbus/ppbus_if.m @@ -26,6 +26,7 @@ # $FreeBSD$ # +#include <sys/bus.h> #include <dev/ppbus/ppbconf.h> INTERFACE ppbus; diff --git a/sys/dev/smbus/smbus_if.m b/sys/dev/smbus/smbus_if.m index d520c2b..781a159 100644 --- a/sys/dev/smbus/smbus_if.m +++ b/sys/dev/smbus/smbus_if.m @@ -26,6 +26,8 @@ # $FreeBSD$ # +#include <sys/bus.h> + INTERFACE smbus; # diff --git a/sys/dev/usb/usb_if.m b/sys/dev/usb/usb_if.m index e497817..c1b27c8 100644 --- a/sys/dev/usb/usb_if.m +++ b/sys/dev/usb/usb_if.m @@ -31,6 +31,8 @@ # USB interface description # +#include <sys/bus.h> + INTERFACE usb; # The device should start probing for new drivers again |