summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_bus.c
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>1999-05-14 11:22:47 +0000
committerdfr <dfr@FreeBSD.org>1999-05-14 11:22:47 +0000
commit8a8a702dc2ad6a84232f0efd1ecb484effb273a1 (patch)
tree22d0abf17160893d226dcecdfe26c0bd265601db /sys/kern/subr_bus.c
parent29cc5794964b10b5c333e8d03f21ca3506b79cad (diff)
downloadFreeBSD-src-8a8a702dc2ad6a84232f0efd1ecb484effb273a1.zip
FreeBSD-src-8a8a702dc2ad6a84232f0efd1ecb484effb273a1.tar.gz
* Define a new static method DEVICE_IDENTIFY which is called to add device
instances to a parent bus. * Define a new method BUS_ADD_CHILD which can be called from DEVICE_IDENTIFY to add new instances. * Add a generic implementation of DEVICE_PROBE which calls DEVICE_IDENTIFY for each driver attached to the parent's devclass. * Move the hint-based isa probe from the isa driver to a new isahint driver which can be shared between i386 and alpha.
Diffstat (limited to 'sys/kern/subr_bus.c')
-rw-r--r--sys/kern/subr_bus.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c
index bdfead6..1e70ff1 100644
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: subr_bus.c,v 1.21 1999/05/10 17:06:14 dfr Exp $
+ * $Id: subr_bus.c,v 1.22 1999/05/14 09:13:43 dfr Exp $
*/
#include <sys/param.h>
@@ -1604,6 +1604,22 @@ SYSINIT(cfgload, SI_SUB_KMEM, SI_ORDER_ANY + 50, resource_cfgload, 0)
/*
* Some useful method implementations to make life easier for bus drivers.
*/
+
+/*
+ * Call DEVICE_IDENTIFY for each driver.
+ */
+int
+bus_generic_probe(device_t dev)
+{
+ devclass_t dc = dev->devclass;
+ driverlink_t dl;
+
+ for (dl = TAILQ_FIRST(&dc->drivers); dl; dl = TAILQ_NEXT(dl, link))
+ DEVICE_IDENTIFY(dl->driver, dev);
+
+ return 0;
+}
+
int
bus_generic_attach(device_t dev)
{
OpenPOWER on IntegriCloud