diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2013-10-09 11:30:57 +0200 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2013-10-10 16:51:37 -0700 |
commit | 0b12db5f519a347ce0e1d5262e0cb2e9e2cc6990 (patch) | |
tree | a04b5eec41f7d6693c32b4433ed663790bf8e484 /src | |
parent | a8e5f29ff953d8171819196e95359b552059a936 (diff) | |
download | weston-0b12db5f519a347ce0e1d5262e0cb2e9e2cc6990.tar.gz |
launcher: Wrap drmGetMagic and drmAuthMagic so we can build without libdrm
Diffstat (limited to 'src')
-rw-r--r-- | src/launcher-util.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/launcher-util.c b/src/launcher-util.c index 6b6a5f3c..35a5698e 100644 --- a/src/launcher-util.c +++ b/src/launcher-util.c @@ -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; |