From 407a5fc158a58a30b6cd9769f594de993385799c Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Mon, 7 Jan 2013 19:31:27 +0100 Subject: [PATCH] uterm: move uterm-vt into uterm_vt.h This splits off uterm-vt from the main header to reduce the dependencies on uterm.h. Signed-off-by: David Herrmann --- Makefile.am | 4 ++- src/kmscon_main.c | 1 + src/kmscon_seat.c | 2 +- src/kmscon_seat.h | 2 +- src/uterm.h | 54 ---------------------------- src/uterm_vt.c | 2 +- src/uterm_vt.h | 89 +++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 96 insertions(+), 58 deletions(-) create mode 100644 src/uterm_vt.h diff --git a/Makefile.am b/Makefile.am index f8e1f36..dcb35b6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -221,7 +221,8 @@ lib_LTLIBRARIES += libuterm.la include_HEADERS += \ src/uterm.h \ src/uterm_input.h \ - src/uterm_video.h + src/uterm_video.h \ + src/uterm_vt.h pkgconfig_DATA += docs/pc/libuterm.pc endif @@ -232,6 +233,7 @@ libuterm_la_SOURCES = \ src/uterm.h \ src/uterm_input.h \ src/uterm_video.h \ + src/uterm_vt.h \ src/uterm_input_internal.h \ src/uterm_video_internal.h \ src/uterm_systemd_internal.h \ diff --git a/src/kmscon_main.c b/src/kmscon_main.c index 01cca6c..470b2fa 100644 --- a/src/kmscon_main.c +++ b/src/kmscon_main.c @@ -43,6 +43,7 @@ #include "uterm.h" #include "uterm_input.h" #include "uterm_video.h" +#include "uterm_vt.h" struct app_video { struct shl_dlist list; diff --git a/src/kmscon_seat.c b/src/kmscon_seat.c index 0315dfd..ab248fb 100644 --- a/src/kmscon_seat.c +++ b/src/kmscon_seat.c @@ -41,9 +41,9 @@ #include "kmscon_terminal.h" #include "log.h" #include "shl_dlist.h" -#include "uterm.h" #include "uterm_input.h" #include "uterm_video.h" +#include "uterm_vt.h" #define LOG_SUBSYSTEM "seat" diff --git a/src/kmscon_seat.h b/src/kmscon_seat.h index 8968c58..9c20eef 100644 --- a/src/kmscon_seat.h +++ b/src/kmscon_seat.h @@ -36,9 +36,9 @@ #include #include "conf.h" #include "eloop.h" -#include "uterm.h" #include "uterm_input.h" #include "uterm_video.h" +#include "uterm_vt.h" struct kmscon_seat; struct kmscon_session; diff --git a/src/uterm.h b/src/uterm.h index 3ab332b..c00e326 100644 --- a/src/uterm.h +++ b/src/uterm.h @@ -44,60 +44,6 @@ #include #include -/* - * Virtual Terminals - * Virtual terminals allow controlling multiple virtual terminals on one real - * terminal. It is multi-seat capable and fully asynchronous. - */ - -struct uterm_vt; -struct uterm_vt_master; - -enum uterm_vt_action { - UTERM_VT_ACTIVATE, - UTERM_VT_DEACTIVATE, - UTERM_VT_HUP, -}; - -enum uterm_vt_flags { - UTERM_VT_FORCE = 0x01, -}; - -struct uterm_vt_event { - unsigned int action; - unsigned int flags; - int target; -}; - -enum uterm_vt_type { - UTERM_VT_REAL = 0x01, - UTERM_VT_FAKE = 0x02, -}; - -typedef int (*uterm_vt_cb) (struct uterm_vt *vt, struct uterm_vt_event *ev, - void *data); - -int uterm_vt_master_new(struct uterm_vt_master **out, - struct ev_eloop *eloop); -void uterm_vt_master_ref(struct uterm_vt_master *vtm); -void uterm_vt_master_unref(struct uterm_vt_master *vtm); - -int uterm_vt_master_activate_all(struct uterm_vt_master *vtm); -int uterm_vt_master_deactivate_all(struct uterm_vt_master *vtm); - -int uterm_vt_allocate(struct uterm_vt_master *vt, struct uterm_vt **out, - unsigned int allowed_types, - const char *seat, struct uterm_input *input, - const char *vt_name, uterm_vt_cb cb, void *data); -void uterm_vt_deallocate(struct uterm_vt *vt); -void uterm_vt_ref(struct uterm_vt *vt); -void uterm_vt_unref(struct uterm_vt *vt); - -int uterm_vt_activate(struct uterm_vt *vt); -int uterm_vt_deactivate(struct uterm_vt *vt); -void uterm_vt_retry(struct uterm_vt *vt); -unsigned int uterm_vt_get_type(struct uterm_vt *vt); - /* * System Monitor * This watches the system for new seats, graphics devices or other devices that diff --git a/src/uterm_vt.c b/src/uterm_vt.c index c1274ab..92a9b36 100644 --- a/src/uterm_vt.c +++ b/src/uterm_vt.c @@ -48,8 +48,8 @@ #include "log.h" #include "shl_dlist.h" #include "shl_misc.h" -#include "uterm.h" #include "uterm_input.h" +#include "uterm_vt.h" #define LOG_SUBSYSTEM "vt" diff --git a/src/uterm_vt.h b/src/uterm_vt.h new file mode 100644 index 0000000..0362bbe --- /dev/null +++ b/src/uterm_vt.h @@ -0,0 +1,89 @@ +/* + * uterm - Linux User-Space Terminal VT API + * + * Copyright (c) 2011-2013 David Herrmann + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * Virtual Terminals + * Virtual terminals allow controlling multiple virtual terminals on one real + * terminal. It is multi-seat capable and fully asynchronous. + */ + +#ifndef UTERM_UTERM_VT_H +#define UTERM_UTERM_VT_H + +#include +#include +#include +#include +#include + +struct uterm_vt; +struct uterm_vt_master; + +enum uterm_vt_action { + UTERM_VT_ACTIVATE, + UTERM_VT_DEACTIVATE, + UTERM_VT_HUP, +}; + +enum uterm_vt_flags { + UTERM_VT_FORCE = 0x01, +}; + +struct uterm_vt_event { + unsigned int action; + unsigned int flags; + int target; +}; + +enum uterm_vt_type { + UTERM_VT_REAL = 0x01, + UTERM_VT_FAKE = 0x02, +}; + +typedef int (*uterm_vt_cb) (struct uterm_vt *vt, struct uterm_vt_event *ev, + void *data); + +int uterm_vt_master_new(struct uterm_vt_master **out, + struct ev_eloop *eloop); +void uterm_vt_master_ref(struct uterm_vt_master *vtm); +void uterm_vt_master_unref(struct uterm_vt_master *vtm); + +int uterm_vt_master_activate_all(struct uterm_vt_master *vtm); +int uterm_vt_master_deactivate_all(struct uterm_vt_master *vtm); + +int uterm_vt_allocate(struct uterm_vt_master *vt, struct uterm_vt **out, + unsigned int allowed_types, + const char *seat, struct uterm_input *input, + const char *vt_name, uterm_vt_cb cb, void *data); +void uterm_vt_deallocate(struct uterm_vt *vt); +void uterm_vt_ref(struct uterm_vt *vt); +void uterm_vt_unref(struct uterm_vt *vt); + +int uterm_vt_activate(struct uterm_vt *vt); +int uterm_vt_deactivate(struct uterm_vt *vt); +void uterm_vt_retry(struct uterm_vt *vt); +unsigned int uterm_vt_get_type(struct uterm_vt *vt); + +#endif /* UTERM_UTERM_VT_H */