egl/drm: reinstate (kms_)swrast support
[mesa.git] / src / loader / loader.c
index c828105c95121add61ee269b740d96375aaac838..a6ad2ee075bb6d1a51b073e9e252780934009baf 100644 (file)
 #define __IS_LOADER
 #include "pci_id_driver_map.h"
 
+/* For systems like Hurd */
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
 static void default_logger(int level, const char *fmt, ...)
 {
    if (level <= _LOADER_WARNING) {
@@ -86,6 +91,10 @@ loader_open_device(const char *device_name)
       if (fd != -1)
          fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
    }
+   if (fd == -1 && errno == EACCES) {
+      log_(_LOADER_WARNING, "failed to open %s: %s\n",
+           device_name, strerror(errno));
+   }
    return fd;
 }
 
@@ -109,6 +118,16 @@ static char *loader_get_kernel_driver_name(int fd)
 #endif
 }
 
+bool
+is_kernel_i915(int fd)
+{
+   char *kernel_driver = loader_get_kernel_driver_name(fd);
+   bool is_i915 = kernel_driver && strcmp(kernel_driver, "i915") == 0;
+
+   free(kernel_driver);
+   return is_i915;
+}
+
 #if defined(HAVE_LIBDRM)
 int
 loader_open_render_node(const char *name)
@@ -486,15 +505,6 @@ loader_get_driver_for_fd(int fd)
          }
    }
 
-   driver = loader_get_kernel_driver_name(fd);
-   bool is_amdgpu = driver && strcmp(driver, "amdgpu") == 0;
-   free(driver);
-
-   if (is_amdgpu)
-      driver = strdup("radeonsi");
-   else
-      driver = NULL;
-
 out:
    log_(driver ? _LOADER_DEBUG : _LOADER_WARNING,
          "pci id for fd %d: %04x:%04x, driver %s\n",