diff options
author | Adrian Negreanu <adrian.m.negreanu@intel.com> | 2013-09-27 20:58:45 +0300 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2013-09-30 15:38:15 -0700 |
commit | 908e6d0b8f76b6a49085e35bbbafbbf95405540c (patch) | |
tree | 80ec136036fe0d0eec08c868f546fef642f467ff /src/launcher-util.c | |
parent | a356f7b1ef08fd9c2ad69cada89d68841e71a6bb (diff) | |
download | weston-908e6d0b8f76b6a49085e35bbbafbbf95405540c.tar.gz |
launcher-util: pull in drm only for compositor-drm
Add drm_set_master and drm_drop_master
as wrappers for drm(Set|Drop)Master, when building compositor-drm
or as empty functions otherwise.
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
Diffstat (limited to 'src/launcher-util.c')
-rw-r--r-- | src/launcher-util.c | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/src/launcher-util.c b/src/launcher-util.c index a2ad0ec2..bdddbb85 100644 --- a/src/launcher-util.c +++ b/src/launcher-util.c @@ -40,7 +40,9 @@ #include <linux/kd.h> #include <linux/major.h> +#ifdef BUILD_DRM_COMPOSITOR #include <xf86drm.h> +#endif #include "compositor.h" #include "launcher-util.h" @@ -196,6 +198,26 @@ weston_launcher_data(int fd, uint32_t mask, void *data) return 1; } +#ifdef BUILD_DRM_COMPOSITOR +static int +drm_drop_master(int drm_fd) +{ + if (drm_fd != -1) + return drmDropMaster(drm_fd); + return -EBADF; +} +static int +drm_set_master(int drm_fd) +{ + if (drm_fd != -1) + return drmSetMaster(drm_fd); + return -EBADF; +} +#else +static int drm_drop_master(int drm_fd) {return 0;} +static int drm_set_master(int drm_fd) {return 0;} +#endif + static int vt_handler(int signal_number, void *data) { @@ -205,13 +227,11 @@ vt_handler(int signal_number, void *data) if (compositor->session_active) { compositor->session_active = 0; wl_signal_emit(&compositor->session_signal, compositor); - if (launcher->drm_fd != -1) - drmDropMaster(launcher->drm_fd); + drm_drop_master(launcher->drm_fd); ioctl(launcher->tty, VT_RELDISP, 1); } else { ioctl(launcher->tty, VT_RELDISP, VT_ACKACQ); - if (launcher->drm_fd != -1) - drmSetMaster(launcher->drm_fd); + drm_set_master(launcher->drm_fd); compositor->session_active = 1; wl_signal_emit(&compositor->session_signal, compositor); } |