launcher: Wrap drmGetMagic and drmAuthMagic so we can build without libdrm
This commit is contained in:
committed by
Kristian Høgsberg
parent
a8e5f29ff9
commit
0b12db5f51
+11
-3
@@ -80,9 +80,19 @@ drm_set_master(int drm_fd)
|
|||||||
return drmSetMaster(drm_fd);
|
return drmSetMaster(drm_fd);
|
||||||
return -EBADF;
|
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
|
#else
|
||||||
static int drm_drop_master(int drm_fd) {return 0;}
|
static int drm_drop_master(int drm_fd) {return 0;}
|
||||||
static int drm_set_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
|
#endif
|
||||||
|
|
||||||
int
|
int
|
||||||
@@ -110,10 +120,8 @@ weston_launcher_open(struct weston_launcher *launcher,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (major(s.st_rdev) == DRM_MAJOR) {
|
if (major(s.st_rdev) == DRM_MAJOR) {
|
||||||
drm_magic_t magic;
|
|
||||||
launcher->drm_fd = fd;
|
launcher->drm_fd = fd;
|
||||||
if (drmGetMagic(fd, &magic) != 0 ||
|
if (!drm_check_master(fd)) {
|
||||||
drmAuthMagic(fd, magic) != 0) {
|
|
||||||
weston_log("drm fd not master\n");
|
weston_log("drm fd not master\n");
|
||||||
close(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
Reference in New Issue
Block a user