diff options
author | Emmanuel Vadot <manu@FreeBSD.org> | 2020-04-28 16:33:05 +0200 |
---|---|---|
committer | Emmanuel Vadot <manu@FreeBSD.org> | 2020-05-04 21:19:58 +0200 |
commit | 5aa83dd6fa2bbfeb098877898d10261b2ec4f2d0 (patch) | |
tree | 173da2bd5a8684a1cfb995ac82330484b722de09 | |
parent | f52e2b20edda32e06f506bc455fcc44ed9266a36 (diff) |
libdrm: drmGetDeviceNameFromFd: Always return /dev/dri/ node for FreeBSD
Since we now always returns the /dev/dri/ node for
drmGet<nodetype>DeviceNameFromFd, be consistant with the names returned
in drmGetDeviceNameFromFd.
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
-rw-r--r-- | xf86drm.c | 15 |
1 files changed, 4 insertions, 11 deletions
@@ -122,6 +122,7 @@ struct drm_pciinfo { static drmServerInfoPtr drm_server_info; static bool drmNodeIsDRM(int maj, int min); +static char *drmGetMinorNameForFD(int fd, int type); drm_public void drmSetServerInfo(drmServerInfoPtr info) { @@ -2776,24 +2777,16 @@ drm_public char *drmGetDeviceNameFromFd(int fd) { #ifdef __FreeBSD__ struct stat sbuf; - char dname[SPECNAMELEN]; - char name[SPECNAMELEN]; int maj, min; + int nodetype; if (fstat(fd, &sbuf)) return NULL; maj = major(sbuf.st_rdev); min = minor(sbuf.st_rdev); - - if (!drmNodeIsDRM(maj, min) || !S_ISCHR(sbuf.st_mode)) - return NULL; - - if (!devname_r(sbuf.st_rdev, S_IFCHR, dname, sizeof(dname))) - return NULL; - - snprintf(name, sizeof(name), "/dev/%s", dname); - return strdup(name); + nodetype = drmGetMinorType(maj, min); + return drmGetMinorNameForFD(fd, nodetype); #else char name[128]; struct stat sbuf; |