launcher: Wrap drmGetMagic and drmAuthMagic so we can build without libdrm

This commit is contained in:
Tomeu Vizoso 2013-10-09 11:30:57 +02:00 committed by Kristian Høgsberg
parent a8e5f29ff9
commit 0b12db5f51
1 changed files with 11 additions and 3 deletions

View File

@ -80,9 +80,19 @@ drm_set_master(int drm_fd)
return drmSetMaster(drm_fd);
return -EBADF;
}
static int
drm_check_master(int drm_fd)
{
drm_magic_t magic;
if (drm_fd != -1)
return drmGetMagic(drm_fd, &magic) != 0 ||
drmAuthMagic(drm_fd, magic) != 0;
return 0;
}
#else
static int drm_drop_master(int drm_fd) {return 0;}
static int drm_set_master(int drm_fd) {return 0;}
static int drm_check_master(int drm_fd) {return 1;}
#endif
int
@ -110,10 +120,8 @@ weston_launcher_open(struct weston_launcher *launcher,
}
if (major(s.st_rdev) == DRM_MAJOR) {
drm_magic_t magic;
launcher->drm_fd = fd;
if (drmGetMagic(fd, &magic) != 0 ||
drmAuthMagic(fd, magic) != 0) {
if (!drm_check_master(fd)) {
weston_log("drm fd not master\n");
close(fd);
return -1;