From 891400ad9140f31ff69bbe2bb85023271281bf16 Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Sun, 12 Aug 2012 09:04:54 +0200 Subject: [PATCH] uterm: vt: move kmscon_vt_supported() to uterm-vt Instead of having a global symbol, we simply move the check to uterm-vt and can remove it from global namespace. Furthermore, we cache the result so we can reuse it on the VT-master if required. Signed-off-by: David Herrmann --- src/uterm_vt.c | 13 ++++++++++++- src/vt.c | 8 -------- src/vt.h | 2 -- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/uterm_vt.c b/src/uterm_vt.c index fbe50e5..9f62f42 100644 --- a/src/uterm_vt.c +++ b/src/uterm_vt.c @@ -31,6 +31,7 @@ #include #include #include +#include #include "eloop.h" #include "log.h" #include "static_misc.h" @@ -56,9 +57,18 @@ struct uterm_vt_master { unsigned long ref; struct ev_eloop *eloop; + bool vt_support; struct kmscon_dlist vts; }; +static bool check_vt_support(void) +{ + if (!access("/dev/tty", F_OK)) + return true; + else + return false; +} + static int vt_call(struct uterm_vt *vt, unsigned int event) { int ret; @@ -141,7 +151,7 @@ int uterm_vt_allocate(struct uterm_vt_master *vtm, vt->cb = cb; vt->data = data; - if (!strcmp(seat, "seat0") && kmscon_vt_supported()) { + if (!strcmp(seat, "seat0") && vtm->vt_support) { ret = kmscon_vt_new(&vt->vt, vt_event, vt); if (ret) goto err_free; @@ -238,6 +248,7 @@ int uterm_vt_master_new(struct uterm_vt_master **out, vtm->ref = 1; vtm->eloop = eloop; kmscon_dlist_init(&vtm->vts); + vtm->vt_support = check_vt_support(); ev_eloop_ref(vtm->eloop); *out = vtm; diff --git a/src/vt.c b/src/vt.c index 0d1a78c..a6e1ed8 100644 --- a/src/vt.c +++ b/src/vt.c @@ -89,14 +89,6 @@ struct kmscon_vt { struct ev_fd *efd; }; -bool kmscon_vt_supported(void) -{ - if (access("/dev/tty", F_OK)) - return false; - else - return true; -} - int kmscon_vt_new(struct kmscon_vt **out, kmscon_vt_cb cb, void *data) { struct kmscon_vt *vt; diff --git a/src/vt.h b/src/vt.h index 4c01ce9..f83fefc 100644 --- a/src/vt.h +++ b/src/vt.h @@ -56,8 +56,6 @@ typedef bool (*kmscon_vt_cb) (struct kmscon_vt *vt, enum kmscon_vt_action action, void *data); -bool kmscon_vt_supported(void); - int kmscon_vt_new(struct kmscon_vt **out, kmscon_vt_cb cb, void *data); void kmscon_vt_ref(struct kmscon_vt *vt); void kmscon_vt_unref(struct kmscon_vt *vt);