• Home
  • Raw
  • Download

Lines Matching refs:dc

133 static void print_devclass_short(devclass_t dc, int indent);
134 static void print_devclass(devclass_t dc, int indent);
291 devclass_t dc; in devclass_find_internal() local
297 TAILQ_FOREACH(dc, &devclasses, link) { in devclass_find_internal()
298 if (!strcmp(dc->name, classname)) in devclass_find_internal()
302 if (create && !dc) { in devclass_find_internal()
303 dc = bsd_malloc(sizeof(struct devclass) + strlen(classname) + 1, in devclass_find_internal()
305 if (!dc) in devclass_find_internal()
307 dc->parent = NULL; in devclass_find_internal()
308 dc->name = (char*) (dc + 1); in devclass_find_internal()
309 if (strcpy_s(dc->name, strlen(classname) + 1, classname) != EOK) { in devclass_find_internal()
310 bsd_free(dc, M_BUS); in devclass_find_internal()
313 TAILQ_INIT(&dc->drivers); in devclass_find_internal()
314 TAILQ_INSERT_TAIL(&devclasses, dc, link); in devclass_find_internal()
316 PDEBUG(("create dc %p, %s", dc, classname)); in devclass_find_internal()
328 if (parentname && dc && !dc->parent && in devclass_find_internal()
330 dc->parent = devclass_find_internal(parentname, NULL, TRUE); in devclass_find_internal()
331 if (dc->parent == NULL) { in devclass_find_internal()
334 dc->parent->flags = (unsigned int)dc->parent->flags | DC_HAS_CHILDREN; in devclass_find_internal()
337 PDEBUG(("found dc %p, %s", dc, classname)); in devclass_find_internal()
338 return (dc); in devclass_find_internal()
387 devclass_driver_added(devclass_t dc, driver_t *driver) in devclass_driver_added() argument
395 for (i = 0; i < dc->maxunit; i++) in devclass_driver_added()
396 if (dc->devices[i] && device_is_attached(dc->devices[i])) in devclass_driver_added()
397 BUS_DRIVER_ADDED(dc->devices[i], driver); in devclass_driver_added()
407 if (!((unsigned int)dc->flags & DC_HAS_CHILDREN)) in devclass_driver_added()
409 parent = dc; in devclass_driver_added()
410 TAILQ_FOREACH(dc, &devclasses, link) { in devclass_driver_added()
411 if (dc->parent == parent) in devclass_driver_added()
412 devclass_driver_added(dc, driver); in devclass_driver_added()
428 devclass_add_driver(devclass_t dc, driver_t *driver, int pass, devclass_t *dcp) in devclass_add_driver() argument
465 TAILQ_INSERT_TAIL(&dc->drivers, dl, link); in devclass_add_driver()
470 devclass_driver_added(dc, driver); in devclass_add_driver()
496 devclass_driver_deleted(devclass_t busclass, devclass_t dc, driver_t *driver) in devclass_driver_deleted() argument
512 for (i = 0; i < dc->maxunit; i++) { in devclass_driver_deleted()
513 if (dc->devices[i]) { in devclass_driver_deleted()
514 dev = dc->devices[i]; in devclass_driver_deleted()
539 error = devclass_driver_deleted(busclass, dc, driver); in devclass_driver_deleted()
564 devclass_t dc = devclass_find(driver->name); in devclass_delete_driver() local
570 if (!dc) in devclass_delete_driver()
587 error = devclass_driver_deleted(busclass, dc, driver); in devclass_delete_driver()
619 devclass_t dc = devclass_find(driver->name); in devclass_quiesce_driver() local
627 if (!dc) in devclass_quiesce_driver()
654 for (i = 0; i < dc->maxunit; i++) { in devclass_quiesce_driver()
655 if (dc->devices[i]) { in devclass_quiesce_driver()
656 dev = dc->devices[i]; in devclass_quiesce_driver()
672 devclass_find_driver_internal(devclass_t dc, const char *classname) in devclass_find_driver_internal() argument
676 PDEBUG(("%s in devclass %s", classname, DEVCLANAME(dc))); in devclass_find_driver_internal()
678 TAILQ_FOREACH(dl, &dc->drivers, link) { in devclass_find_driver_internal()
691 devclass_get_name(devclass_t dc) in devclass_get_name() argument
693 return (dc->name); in devclass_get_name()
706 devclass_get_device(devclass_t dc, int unit) in devclass_get_device() argument
708 if (dc == NULL || unit < 0 || unit >= dc->maxunit) in devclass_get_device()
710 return (dc->devices[unit]); in devclass_get_device()
724 devclass_get_softc(devclass_t dc, int unit) in devclass_get_softc() argument
728 dev = devclass_get_device(dc, unit); in devclass_get_softc()
752 devclass_get_devices(devclass_t dc, device_t **devlistp, int *devcountp) in devclass_get_devices() argument
757 count = devclass_get_count(dc); in devclass_get_devices()
763 for (i = 0; i < dc->maxunit; i++) { in devclass_get_devices()
764 if (dc->devices[i]) { in devclass_get_devices()
765 list[count] = dc->devices[i]; in devclass_get_devices()
793 devclass_get_drivers(devclass_t dc, driver_t ***listp, int *countp) in devclass_get_drivers() argument
800 TAILQ_FOREACH(dl, &dc->drivers, link) in devclass_get_drivers()
807 TAILQ_FOREACH(dl, &dc->drivers, link) { in devclass_get_drivers()
823 devclass_get_count(devclass_t dc) in devclass_get_count() argument
828 for (i = 0; i < dc->maxunit; i++) in devclass_get_count()
829 if (dc->devices[i]) in devclass_get_count()
844 devclass_get_maxunit(devclass_t dc) in devclass_get_maxunit() argument
846 if (dc == NULL) in devclass_get_maxunit()
848 return (dc->maxunit); in devclass_get_maxunit()
861 devclass_find_free_unit(devclass_t dc, int unit) in devclass_find_free_unit() argument
863 if (dc == NULL) in devclass_find_free_unit()
865 while (unit < dc->maxunit && dc->devices[unit] != NULL) in devclass_find_free_unit()
880 devclass_set_parent(devclass_t dc, devclass_t pdc) in devclass_set_parent() argument
882 dc->parent = pdc; in devclass_set_parent()
891 devclass_get_parent(devclass_t dc) in devclass_get_parent() argument
893 return (dc->parent); in devclass_get_parent()
912 devclass_alloc_unit(devclass_t dc, device_t dev, int *unitp) in devclass_alloc_unit() argument
916 PDEBUG(("unit %d in devclass %s", unit, DEVCLANAME(dc))); in devclass_alloc_unit()
920 BUS_HINT_DEVICE_UNIT(device_get_parent(dev), dev, dc->name, &unit); in devclass_alloc_unit()
925 if (unit >= 0 && unit < dc->maxunit && dc->devices[unit] != NULL) { in devclass_alloc_unit()
927 printf("%s: %s%d already exists; skipping it\n", dc->name, dc->name, *unitp); in devclass_alloc_unit()
935 if (unit < dc->maxunit && dc->devices[unit] != NULL) in devclass_alloc_unit()
941 PDEBUG(("mid: unit %d in devclass %s", unit, DEVCLANAME(dc))); in devclass_alloc_unit()
947 if (unit >= dc->maxunit) { in devclass_alloc_unit()
951 oldlist = dc->devices; in devclass_alloc_unit()
957 PDEBUG(("start memcpy, size %d", sizeof(device_t) * dc->maxunit)); in devclass_alloc_unit()
959 … (void)memcpy_s(newlist, sizeof(device_t) * dc->maxunit, oldlist, sizeof(device_t) * dc->maxunit); in devclass_alloc_unit()
960 …PDEBUG(("start memset, maxunit %d, size %d", dc->maxunit, sizeof(device_t) * (newsize - dc->maxuni… in devclass_alloc_unit()
961 (void)memset_s(newlist + dc->maxunit, sizeof(device_t) * (newsize - dc->maxunit), 0, in devclass_alloc_unit()
962 sizeof(device_t) * (newsize - dc->maxunit)); in devclass_alloc_unit()
963 dc->devices = newlist; in devclass_alloc_unit()
964 dc->maxunit = newsize; in devclass_alloc_unit()
968 PDEBUG(("now: unit %d in devclass %s", unit, DEVCLANAME(dc))); in devclass_alloc_unit()
1276 devclass_add_device(devclass_t dc, device_t dev) in devclass_add_device() argument
1280 PDEBUG(("%s in devclass %s", DEVICENAME(dev), DEVCLANAME(dc))); in devclass_add_device()
1282 buflen = snprintf(NULL, 0, "%s%d$", dc->name, INT_MAX); in devclass_add_device()
1289 if ((error = devclass_alloc_unit(dc, dev, &dev->unit)) != 0) { in devclass_add_device()
1294 dc->devices[dev->unit] = dev; in devclass_add_device()
1295 dev->devclass = dc; in devclass_add_device()
1296 if (snprintf_s(dev->nameunit, buflen, buflen - 1, "%s%d", dc->name, dev->unit) < 0) { in devclass_add_device()
1319 devclass_delete_device(devclass_t dc, device_t dev) in devclass_delete_device() argument
1321 if (!dc || !dev) in devclass_delete_device()
1324 PDEBUG(("%s in devclass %s", DEVICENAME(dev), DEVCLANAME(dc))); in devclass_delete_device()
1326 if (dev->devclass != dc || dc->devices[dev->unit] != dev) in devclass_delete_device()
1328 dc->devices[dev->unit] = NULL; in devclass_delete_device()
1354 devclass_t dc; in make_device() local
1359 dc = devclass_find_internal(name, NULL, TRUE); in make_device()
1360 if (!dc) { in make_device()
1366 dc = NULL; in make_device()
1389 if (devclass_add_device(dc, dev)) { in make_device()
1819 devclass_t dc = dev->devclass; in bus_generic_probe() local
1823 TAILQ_FOREACH(dl, &dc->drivers, link) { in bus_generic_probe()
2116 devclass_t dc; in bus_generic_new_pass() local
2119 dc = dev->devclass; in bus_generic_new_pass()
2120 TAILQ_FOREACH(dl, &dc->drivers, link) { in bus_generic_new_pass()
2237 first_matching_driver(devclass_t dc, device_t dev) in first_matching_driver() argument
2240 return (devclass_find_driver_internal(dc, dev->devclass->name)); in first_matching_driver()
2241 return (TAILQ_FIRST(&dc->drivers)); in first_matching_driver()
2248 next_matching_driver(devclass_t dc, device_t dev, driverlink_t last) in next_matching_driver() argument
2268 devclass_t dc; in device_set_devclass() local
2282 dc = devclass_find_internal(classname, NULL, TRUE); in device_set_devclass()
2283 if (!dc) in device_set_devclass()
2286 error = devclass_add_device(dc, dev); in device_set_devclass()
2426 devclass_t dc; in device_probe_child() local
2434 dc = dev->devclass; in device_probe_child()
2435 if (!dc) in device_probe_child()
2445 for (; dc; dc = dc->parent) { in device_probe_child()
2446 for (dl = first_matching_driver(dc, child); in device_probe_child()
2448 dl = next_matching_driver(dc, child, dl)) { in device_probe_child()
2985 print_devclass_short(devclass_t dc, int indent) in print_devclass_short() argument
2987 if ( !dc ) in print_devclass_short()
2990 indentprintf(("devclass %s: max units = %d\n", dc->name, dc->maxunit)); in print_devclass_short()
2994 print_devclass(devclass_t dc, int indent) in print_devclass() argument
2998 if ( !dc ) in print_devclass()
3001 print_devclass_short(dc, indent); in print_devclass()
3003 print_driver_list(dc->drivers, indent+1); in print_devclass()
3006 for (i = 0; i < dc->maxunit; i++) in print_devclass()
3007 if (dc->devices[i]) in print_devclass()
3008 print_device(dc->devices[i], indent+1); in print_devclass()
3014 devclass_t dc; in print_devclass_list_short() local
3017 TAILQ_FOREACH(dc, &devclasses, link) { in print_devclass_list_short()
3018 print_devclass_short(dc, 0); in print_devclass_list_short()
3025 devclass_t dc; in print_devclass_list() local
3028 TAILQ_FOREACH(dc, &devclasses, link) { in print_devclass_list()
3029 print_devclass(dc, 0); in print_devclass_list()