aboutsummaryrefslogtreecommitdiffstats
path: root/vt.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2019-01-31 11:39:16 +0100
committerGerd Hoffmann <kraxel@redhat.com>2019-01-31 11:39:16 +0100
commit07b44a514c7dec2aa4344511f5ecd19210c9bb8c (patch)
tree16d5da0fd4418e8331e367b8bb0b42fab303ccd2 /vt.c
parent620c38f6f45a8708d9dd82f638beb06789b6c7d1 (diff)
downloadfbida-07b44a514c7dec2aa4344511f5ecd19210c9bb8c.tar.gz
tweak console switching
Diffstat (limited to 'vt.c')
-rw-r--r--vt.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/vt.c b/vt.c
index 4a9c3e1..9978ccb 100644
--- a/vt.c
+++ b/vt.c
@@ -12,7 +12,6 @@
#include <linux/vt.h>
#include "vt.h"
-#include "kbd.h"
/* -------------------------------------------------------------------- */
@@ -32,7 +31,8 @@ static int kd_mode;
static struct vt_mode vt_mode;
static struct vt_mode vt_omode;
static int orig_vt_no = -1;
-static void (*console_redraw)(void);
+static void (*console_suspend)(void);
+static void (*console_resume)(void);
static void console_switch_signal(int signal)
{
@@ -66,11 +66,13 @@ static void console_switch_acquire(void)
write(2,"vt: acquire\n",12);
}
-int console_switch_init(void (*redraw)(void))
+int console_switch_init(void (*suspend)(void),
+ void (*resume)(void))
{
struct sigaction act,old;
- console_redraw = redraw;
+ console_suspend = suspend;
+ console_resume = resume;
memset(&act,0,sizeof(act));
act.sa_handler = console_switch_signal;
@@ -129,17 +131,16 @@ int check_console_switch(void)
switch (console_switch_state) {
case CONSOLE_REL_REQ:
- console_switch_release();
+ console_visible = 0;
+ console_suspend();
+ console_switch_release();
case CONSOLE_INACTIVE:
- kbd_suspend();
- console_visible = 0;
break;
case CONSOLE_ACQ_REQ:
console_switch_acquire();
case CONSOLE_ACTIVE:
console_visible = 1;
- console_redraw();
- kbd_resume();
+ console_resume();
break;
default:
break;