From fc083322b0c8a58b51976adf23a582bce8bb75f1 Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Tue, 21 Jul 2015 03:12:56 +1000 Subject: [PATCH] xf86drm: use the correct device minor names on OpenBSD 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 Reviewed-by: Emil Velikov --- xf86drm.c | 16 +++++++++++++--- xf86drm.h | 7 +++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/xf86drm.c b/xf86drm.c index e23a51fc..5e029694 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 @@ -525,11 +535,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 40c55c92..e3a19dc0 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)