1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 21da177e4SLinus Torvalds /* 31da177e4SLinus Torvalds * Unified handling of special chars. 41da177e4SLinus Torvalds * 5a53c8fabSHeiko Carstens * Copyright IBM Corp. 2001 61da177e4SLinus Torvalds * Author(s): Fritz Elfert <felfert@millenux.com> <elfert@de.ibm.com> 71da177e4SLinus Torvalds * 81da177e4SLinus Torvalds */ 91da177e4SLinus Torvalds 101da177e4SLinus Torvalds #include <linux/tty.h> 11ab7373bfSHendrik Brueckner #include <linux/sysrq.h> 12ab7373bfSHendrik Brueckner #include <linux/workqueue.h> 131da177e4SLinus Torvalds 141da177e4SLinus Torvalds extern unsigned int 151da177e4SLinus Torvalds ctrlchar_handle(const unsigned char *buf, int len, struct tty_struct *tty); 161da177e4SLinus Torvalds 171da177e4SLinus Torvalds 181da177e4SLinus Torvalds #define CTRLCHAR_NONE (1 << 8) 191da177e4SLinus Torvalds #define CTRLCHAR_CTRL (2 << 8) 201da177e4SLinus Torvalds #define CTRLCHAR_SYSRQ (3 << 8) 211da177e4SLinus Torvalds 221da177e4SLinus Torvalds #define CTRLCHAR_MASK (~0xffu) 23ab7373bfSHendrik Brueckner 24ab7373bfSHendrik Brueckner 25ab7373bfSHendrik Brueckner #ifdef CONFIG_MAGIC_SYSRQ 26ab7373bfSHendrik Brueckner struct sysrq_work { 27ab7373bfSHendrik Brueckner int key; 28ab7373bfSHendrik Brueckner struct work_struct work; 29ab7373bfSHendrik Brueckner }; 30ab7373bfSHendrik Brueckner 31ab7373bfSHendrik Brueckner void schedule_sysrq_work(struct sysrq_work *sw); 32ab7373bfSHendrik Brueckner #endif 33