diff mbox

[libdrm,v2] xf86drm: use the correct device minor names on OpenBSD

Message ID 1437412376-18809-1-git-send-email-jsg@jsg.id.au (mailing list archive)
State New, archived
Headers show

Commit Message

Jonathan Gray July 20, 2015, 5:12 p.m. UTC
Add defines for the device minor names and make use of them
in drmGetMinorName() so the correct paths will be used on OpenBSD.

v2: don't add new defines to xf86drm.h to keep them out of the API
    as requested by Emil.

Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
---
 xf86drm.c | 16 +++++++++++++---
 xf86drm.h |  7 +++++++
 2 files changed, 20 insertions(+), 3 deletions(-)
diff mbox

Patch

diff --git a/xf86drm.c b/xf86drm.c
index 4de5210..c365778 100644
--- a/xf86drm.c
+++ b/xf86drm.c
@@ -64,6 +64,16 @@ 
 #include "xf86drm.h"
 #include "libdrm_macros.h"
 
+#ifdef __OpenBSD__
+#define DRM_PRIMARY_MINOR_NAME	"drm"
+#define DRM_CONTROL_MINOR_NAME	"drmC"
+#define DRM_RENDER_MINOR_NAME	"drmR"
+#else
+#define DRM_PRIMARY_MINOR_NAME	"card"
+#define DRM_CONTROL_MINOR_NAME	"controlD"
+#define DRM_RENDER_MINOR_NAME	"renderD"
+#endif
+
 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
 #define DRM_MAJOR 145
 #endif
@@ -548,11 +558,11 @@  static const char *drmGetMinorName(int type)
 {
     switch (type) {
     case DRM_NODE_PRIMARY:
-        return "card";
+        return DRM_PRIMARY_MINOR_NAME;
     case DRM_NODE_CONTROL:
-        return "controlD";
+        return DRM_CONTROL_MINOR_NAME;
     case DRM_NODE_RENDER:
-        return "renderD";
+        return DRM_RENDER_MINOR_NAME;
     default:
         return NULL;
     }
diff --git a/xf86drm.h b/xf86drm.h
index 40c55c9..e3a19dc 100644
--- a/xf86drm.h
+++ b/xf86drm.h
@@ -76,11 +76,18 @@  extern "C" {
 	(S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH)
 #define DRM_DEV_MODE	 (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP)
 
+#ifdef __OpenBSD__
+#define DRM_DIR_NAME  "/dev"
+#define DRM_DEV_NAME  "%s/drm%d"
+#define DRM_CONTROL_DEV_NAME  "%s/drmC%d"
+#define DRM_RENDER_DEV_NAME  "%s/drmR%d"
+#else
 #define DRM_DIR_NAME  "/dev/dri"
 #define DRM_DEV_NAME  "%s/card%d"
 #define DRM_CONTROL_DEV_NAME  "%s/controlD%d"
 #define DRM_RENDER_DEV_NAME  "%s/renderD%d"
 #define DRM_PROC_NAME "/proc/dri/" /* For backward Linux compatibility */
+#endif
 
 #define DRM_ERR_NO_DEVICE  (-1001)
 #define DRM_ERR_NO_ACCESS  (-1002)