From b751481e5c0bed1b81b7c769923e772e9fd84e9d Mon Sep 17 00:00:00 2001 From: Kenny Levinsen Date: Sun, 2 Aug 2020 20:21:19 +0200 Subject: seat: Open/close tty on activation/deactivation The VT and KD ioctl's are picky about the tty fd used. In order to satisfy these, and to improve state cleanup, we now only and store the current tty when opening a client, and use this fd to perform teardown later. The presence of the fd is also used to signal that teardown is needed. --- include/seat.h | 1 + include/terminal.h | 13 ++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/seat.h b/include/seat.h index e0d3533..5a6c273 100644 --- a/include/seat.h +++ b/include/seat.h @@ -32,6 +32,7 @@ struct seat { bool vt_bound; bool vt_pending_ack; int next_vt; + int curttyfd; }; struct seat *seat_create(const char *name, bool vt_bound); diff --git a/include/terminal.h b/include/terminal.h index c2a49ff..208d6b2 100644 --- a/include/terminal.h +++ b/include/terminal.h @@ -3,12 +3,15 @@ #include +int terminal_open(int vt); + +int terminal_set_process_switching(int fd, bool enable); int terminal_setup(int vt); int terminal_teardown(int vt); -int terminal_current_vt(void); -int terminal_switch_vt(int vt); -int terminal_ack_switch(void); -int terminal_set_keyboard(int vt, bool enable); -int terminal_set_graphics(int vt, bool enable); +int terminal_current_vt(int fd); +int terminal_switch_vt(int fd, int vt); +int terminal_ack_switch(int fd); +int terminal_set_keyboard(int fd, bool enable); +int terminal_set_graphics(int fd, bool enable); #endif -- cgit v1.2.3