The nexus_attach(device_t dev) will call int bus_generic_probe(device_t dev) { devclass_t dc = dev->devclass; driverlink_t dl;
TAILQ_FOREACH(dl, &dc->drivers, link) {//here configure has point out the relation? DEVICE_IDENTIFY(dl->driver, dev);//here refer to the son's IDENTIFY,make son's device structure } return (0); } the question is in TAILQ_FOREACH(dl, &dc->drivers, link) how does nexus get legacy's driver in its devclass ? have it done in the SI_SUB_DRIVER part?of initialization? What happen during sSI_SUB_DRIVER ,does devclass for each driver initialized? May be the before SI_SUB_CONFIGURE, SI_SUB_DRIVER will first be implement ,and the relative drivers will connect to each other. I am sure that in autoconf.c ,the dl->link does not be add in ,so where does the nexus find legacy? In devclass_find_inernal TAILQ_FOREACH(dc, &devclasses, link) { if (!strcmp(dc->name, classname)) break; }found nothing , ////////////////// -- we who r about to die,salute u! _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"