xref: /openbmc/linux/drivers/s390/char/ctrlchar.h (revision b2441318)
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