Lines Matching +full:dlclose +full:- +full:skip
3 * Copyright (C) 2014-2016 Emil Velikov <emil.l.velikov@gmail.com>
57 #include "drm-uapi/nouveau_drm.h"
94 if (fd == -1 && errno == EINVAL) in loader_open_device()
98 if (fd != -1) in loader_open_device()
101 if (fd == -1 && errno == EACCES) { in loader_open_device()
119 driver = strndup(version->name, version->name_len); in loader_get_kernel_driver_name()
179 int num_devices, fd = -1; in loader_open_render_node_platform_device()
185 return -ENOENT; in loader_open_render_node_platform_device()
190 if ((device->available_nodes & (1 << DRM_NODE_RENDER)) && in loader_open_render_node_platform_device()
191 (device->bustype == DRM_BUS_PLATFORM)) { in loader_open_render_node_platform_device()
194 fd = loader_open_device(device->nodes[DRM_NODE_RENDER]); in loader_open_render_node_platform_device()
205 if (strcmp(version->name, drivers[j]) == 0) { in loader_open_render_node_platform_device()
223 return -ENOENT; in loader_open_render_node_platform_device()
237 ret = (dev_ptr->available_nodes & (1 << DRM_NODE_RENDER)); in loader_is_device_render_capable()
253 if (dev_ptr->available_nodes & (1 << DRM_NODE_RENDER)) { in loader_get_render_node()
254 render_node = strdup(dev_ptr->nodes[DRM_NODE_RENDER]); in loader_get_render_node()
256 log_(_LOADER_DEBUG, "MESA-LOADER: failed to allocate memory for render node\n"); in loader_get_render_node()
322 if (device->bustype == DRM_BUS_PCI) { in drm_construct_id_path_tag()
323 if (asprintf(&tag, "pci-%04x_%02x_%02x_%1u", in drm_construct_id_path_tag()
324 device->businfo.pci->domain, in drm_construct_id_path_tag()
325 device->businfo.pci->bus, in drm_construct_id_path_tag()
326 device->businfo.pci->dev, in drm_construct_id_path_tag()
327 device->businfo.pci->func) < 0) { in drm_construct_id_path_tag()
330 } else if (device->bustype == DRM_BUS_PLATFORM || in drm_construct_id_path_tag()
331 device->bustype == DRM_BUS_HOST1X) { in drm_construct_id_path_tag()
334 if (device->bustype == DRM_BUS_PLATFORM) in drm_construct_id_path_tag()
335 fullname = device->businfo.platform->fullname; in drm_construct_id_path_tag()
337 fullname = device->businfo.host1x->fullname; in drm_construct_id_path_tag()
349 if (asprintf(&tag, "platform-%s_%s", address, name) < 0) in drm_construct_id_path_tag()
352 if (asprintf(&tag, "platform-%s", name) < 0) in drm_construct_id_path_tag()
394 int i, num_devices, fd = -1; in loader_get_user_preferred_fd()
452 if (!(devices[i]->available_nodes & 1 << DRM_NODE_RENDER)) { in loader_get_user_preferred_fd()
453 log_(_LOADER_WARNING, "not a render node -> not usable\n"); in loader_get_user_preferred_fd()
461 if (devices[i]->bustype == DRM_BUS_PCI) { in loader_get_user_preferred_fd()
463 devices[i]->deviceinfo.pci->vendor_id, in loader_get_user_preferred_fd()
464 devices[i]->deviceinfo.pci->device_id); in loader_get_user_preferred_fd()
466 log_(_LOADER_WARNING, " %s", devices[i]->nodes[DRM_NODE_RENDER]); in loader_get_user_preferred_fd()
479 prime.v.as_integer, num_devices, num_devices - 1); in loader_get_user_preferred_fd()
480 prime.v.as_integer = num_devices - 1; in loader_get_user_preferred_fd()
484 if (!(devices[i]->available_nodes & 1 << DRM_NODE_RENDER)) in loader_get_user_preferred_fd()
492 * id_path_tag: (for example "pci-0000_02_00_0") choose the card in loader_get_user_preferred_fd()
498 /* Skip the default device */ in loader_get_user_preferred_fd()
504 prime.v.as_integer--; in loader_get_user_preferred_fd()
506 /* Skip more GPUs? */ in loader_get_user_preferred_fd()
509 "skipped (%d more to skip)\n", prime.v.as_integer - 1); in loader_get_user_preferred_fd()
512 log_(debug ? _LOADER_WARNING : _LOADER_INFO, " -> "); in loader_get_user_preferred_fd()
516 if (devices[i]->bustype == DRM_BUS_PCI && in loader_get_user_preferred_fd()
517 devices[i]->deviceinfo.pci->vendor_id == prime.v.as_vendor_device_ids.v && in loader_get_user_preferred_fd()
518 devices[i]->deviceinfo.pci->device_id == prime.v.as_vendor_device_ids.d) { in loader_get_user_preferred_fd()
524 " - vid:did match -> "); in loader_get_user_preferred_fd()
538 log_(debug ? _LOADER_WARNING : _LOADER_INFO, " - pci tag match -> "); in loader_get_user_preferred_fd()
544 "selected (%s)\n", devices[i]->nodes[DRM_NODE_RENDER]); in loader_get_user_preferred_fd()
545 fd = loader_open_device(devices[i]->nodes[DRM_NODE_RENDER]); in loader_get_user_preferred_fd()
556 devices[i]->nodes[DRM_NODE_RENDER]); in loader_get_user_preferred_fd()
595 log_(_LOADER_WARNING, "MESA-LOADER: failed to retrieve device information\n"); in drm_get_pci_id_for_fd()
599 if (device->bustype != DRM_BUS_PCI) { in drm_get_pci_id_for_fd()
601 log_(_LOADER_DEBUG, "MESA-LOADER: device is not located on the PCI bus\n"); in drm_get_pci_id_for_fd()
605 *vendor_id = device->deviceinfo.pci->vendor_id; in drm_get_pci_id_for_fd()
606 *chip_id = device->deviceinfo.pci->device_id; in drm_get_pci_id_for_fd()
619 /* Probably non-PCI device. */ in loader_get_linux_pci_field()
634 log_(_LOADER_DEBUG, "MESA-LOADER: failed to fstat fd\n"); in loader_get_linux_pci_id_for_fd()
682 if (driver_map[i].num_chips_ids == -1) { in loader_get_pci_driver()
746 if (name[i] == '-') in loader_get_extensions_name()
764 if (strcmp(extensions[i]->name, match->name) == 0 && in loader_bind_extensions()
765 extensions[i]->version >= match->version) { in loader_bind_extensions()
772 … log_(match->optional ? _LOADER_DEBUG : _LOADER_FATAL, "did not find extension %s version %d\n", in loader_bind_extensions()
773 match->name, match->version); in loader_bind_extensions()
774 if (!match->optional) in loader_bind_extensions()
782 if (strcmp(match->name, __DRI_MESA) == 0) { in loader_bind_extensions()
784 if (strcmp(mesa->version_string, MESA_INTERFACE_VERSION_STRING) != 0) { in loader_bind_extensions()
786 mesa->version_string, MESA_INTERFACE_VERSION_STRING); in loader_bind_extensions()
797 * \param driverName - a name like "i965", "radeon", "nouveau", etc.
798 * \param lib_suffix - a suffix to append to the driver name to generate the
800 * \param search_path_vars - NULL-terminated list of env vars that can be used
801 * \param default_search_path - a colon-separted list of directories used if
803 * \param warn_on_fail - Log a warning if the driver is not found.
835 len = next - p; in loader_open_driver_lib()
845 log_(_LOADER_DEBUG, "MESA-LOADER: failed to open %s: %s\n", in loader_open_driver_lib()
857 "MESA-LOADER: failed to open %s: %s (search paths %s, suffix %s)\n", in loader_open_driver_lib()
863 log_(_LOADER_DEBUG, "MESA-LOADER: dlopen(%s)\n", path); in loader_open_driver_lib()
872 * \param driverName - a name like "i965", "radeon", "nouveau", etc.
873 * \param out_driver - Address where the dlopen() return value will be stored.
874 * \param search_path_vars - NULL-terminated list of env vars that can be used
897 log_(_LOADER_DEBUG, "MESA-LOADER: driver does not expose %s(): %s\n", in loader_open_driver()
905 "MESA-LOADER: driver exports no extensions (%s)\n", dlerror()); in loader_open_driver()
906 dlclose(driver); in loader_open_driver()