Implement drmGetMinorNameForFD for systems without sysfs by adapting

drm_get_device_name_for_fd() from the Mesa loader.

ok kettenis@
This commit is contained in:
jsg 2016-11-25 23:41:29 +00:00
parent 840635d04f
commit 038e48492e

View File

@ -2851,7 +2851,25 @@ static char *drmGetMinorNameForFD(int fd, int type)
out_close_dir:
closedir(sysdir);
#else
#warning "Missing implementation of drmGetMinorNameForFD"
struct stat sbuf;
unsigned int maj, min;
char buf[PATH_MAX + 1];
int n;
if (fstat(fd, &sbuf))
return NULL;
maj = major(sbuf.st_rdev);
min = minor(sbuf.st_rdev);
if (maj != DRM_MAJOR || !S_ISCHR(sbuf.st_mode))
return NULL;
n = snprintf(buf, sizeof(buf), DRM_DEV_NAME, DRM_DIR_NAME, min);
if (n == -1 || n >= sizeof(buf))
return NULL;
return strdup(buf);
#endif
return NULL;
}