diff options
Diffstat (limited to 'kernel/power/console.c')
-rw-r--r-- | kernel/power/console.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/kernel/power/console.c b/kernel/power/console.c new file mode 100644 index 00000000..b1dc4564 --- /dev/null +++ b/kernel/power/console.c @@ -0,0 +1,33 @@ +/* + * Functions for saving/restoring console. + * + * Originally from swsusp. + */ + +#include <linux/vt_kern.h> +#include <linux/kbd_kern.h> +#include <linux/vt.h> +#include <linux/module.h> +#include "power.h" + +#define SUSPEND_CONSOLE (MAX_NR_CONSOLES-1) + +static int orig_fgconsole, orig_kmsg; + +int pm_prepare_console(void) +{ + orig_fgconsole = vt_move_to_console(SUSPEND_CONSOLE, 1); + if (orig_fgconsole < 0) + return 1; + + orig_kmsg = vt_kmsg_redirect(SUSPEND_CONSOLE); + return 0; +} + +void pm_restore_console(void) +{ + if (orig_fgconsole >= 0) { + vt_move_to_console(orig_fgconsole, 0); + vt_kmsg_redirect(orig_kmsg); + } +} |