Lines Matching defs:drv

33 static void dc_driver_added(driver_t* drv, const char* version);
34 static void dc_driver_added_init(driver_t* drv, const char* version);
262 static zx_status_t dc_attempt_bind(driver_t* drv, device_t* dev);
287 driver_t* drv;
288 list_for_every_entry(&list_drivers, drv, driver_t, node) {
289 if (!strcmp(libname, drv->libname)) {
290 return drv;
318 driver_t* drv = libname_to_driver(libname);
319 if (drv == nullptr) {
325 if (drv->dso_vmo != ZX_HANDLE_INVALID) {
326 zx_status_t r = zx_handle_duplicate(drv->dso_vmo,
331 log(ERROR, "devcoord: cannot duplicate cached dso for '%s' '%s'\n", drv->name, libname);
442 driver_t* drv;
444 list_for_every_entry(&list_drivers, drv, driver_t, node) {
445 dmprintf("%sName : %s\n", first ? "" : "\n", drv->name);
446 dmprintf("Driver : %s\n", drv->libname ? drv->libname : "(null)");
447 dmprintf("Flags : 0x%08x\n", drv->flags);
448 if (drv->binding_size) {
450 uint32_t count = drv->binding_size / static_cast<uint32_t>(sizeof(drv->binding[0]));
452 count, (count == 1) ? "" : "s", drv->binding_size);
454 di_dump_bind_inst(drv->binding + i, line, sizeof(line));
1038 driver_t* drv;
1039 list_for_every_entry(&list_drivers, drv, driver_t, node) {
1040 if (autobind || !strcmp(drv->libname, drvlibname)) {
1041 if (dc_is_bindable(drv, dev->protocol_id,
1043 log(SPEW, "devcoord: drv='%s' bindable to dev='%s'\n",
1044 drv->name, dev->name);
1045 dc_attempt_bind(drv, dev);
1701 static zx_status_t dc_attempt_bind(driver_t* drv, device_t* dev) {
1712 return dh_bind_driver(dev, drv->libname);
1720 r = dh_bind_driver(dev->proxy, drv->libname);
1729 driver_t* drv;
1731 list_for_every_entry(&list_drivers, drv, driver_t, node) {
1732 if (dc_is_bindable(drv, dev->protocol_id,
1734 log(SPEW, "devcoord: drv='%s' bindable to dev='%s'\n",
1735 drv->name, dev->name);
1737 dc_attempt_bind(drv, dev);
1997 static bool is_misc_driver(driver_t* drv) {
1998 return (drv->binding_size == sizeof(misc_device_binding)) &&
1999 (memcmp(&misc_device_binding, drv->binding, sizeof(misc_device_binding)) == 0);
2007 static bool is_test_driver(driver_t* drv) {
2008 return (drv->binding_size == sizeof(test_device_binding)) &&
2009 (memcmp(&test_device_binding, drv->binding, sizeof(test_device_binding)) == 0);
2018 static bool is_root_driver(driver_t* drv) {
2019 return (drv->binding_size == sizeof(root_device_binding)) &&
2020 (memcmp(&root_device_binding, drv->binding, sizeof(root_device_binding)) == 0);
2028 static void dc_driver_added_init(driver_t* drv, const char* version) {
2031 list_add_tail(&list_drivers_fallback, &drv->node);
2035 list_add_head(&list_drivers, &drv->node);
2037 list_add_tail(&list_drivers, &drv->node);
2046 static void dc_driver_added(driver_t* drv, const char* version) {
2047 list_add_tail(&list_drivers_new, &drv->node);
2078 void dc_bind_driver(driver_t* drv) {
2080 printf("devcoord: driver '%s' added\n", drv->name);
2082 if (is_root_driver(drv)) {
2083 dc_attempt_bind(drv, &root_device);
2084 } else if (is_misc_driver(drv)) {
2085 dc_attempt_bind(drv, &misc_device);
2086 } else if (is_test_driver(drv)) {
2087 dc_attempt_bind(drv, &test_device);
2096 if (dc_is_bindable(drv, dev->protocol_id,
2098 log(INFO, "devcoord: drv='%s' bindable to dev='%s'\n",
2099 drv->name, dev->name);
2101 dc_attempt_bind(drv, dev);
2108 driver_t* drv;
2109 while ((drv = list_remove_head_type(&list_drivers_new, driver_t, node)) != nullptr) {
2110 list_add_tail(&list_drivers, &drv->node);
2111 dc_bind_driver(drv);
2139 driver_t* drv;
2141 while ((drv = list_remove_head_type(&list_drivers_system, driver_t, node)) != nullptr) {
2142 list_add_tail(&list_drivers_new, &drv->node);
2145 while ((drv = list_remove_tail_type(&list_drivers_fallback, driver_t, node)) != nullptr) {
2146 printf("devcoord: fallback driver '%s' is available\n", drv->name);
2147 list_add_tail(&list_drivers_new, &drv->node);
2170 static void dc_driver_added_sys(driver_t* drv, const char* version) {
2171 log(INFO, "devmgr: adding system driver '%s' '%s'\n", drv->name, drv->libname);
2173 if (load_vmo(drv->libname, &drv->dso_vmo)) {
2174 log(ERROR, "devmgr: system driver '%s' '%s' could not cache DSO\n", drv->name, drv->libname);
2178 list_add_tail(&list_drivers_system, &drv->node);
2180 list_add_head(&list_drivers_system, &drv->node);
2238 driver_t* drv;
2239 while ((drv = list_remove_tail_type(&list_drivers_fallback, driver_t, node)) != nullptr) {
2240 list_add_tail(&list_drivers, &drv->node);
2245 driver_t* drv;
2246 list_for_every_entry(&list_drivers, drv, driver_t, node) {
2247 dc_bind_driver(drv);