diff options
author | Daniel Bertalan <dani@danielbertalan.dev> | 2021-05-16 15:27:09 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-05-16 16:31:30 +0200 |
commit | d5ea04cdfb179cd0fba5b4a27af72cad0e67b8a7 (patch) | |
tree | 86e056e146b3b2e347ba9955ee01b794670de341 /Userland | |
parent | 7ec8cb97e9f9c74c75076c451bf0ea3ae29c2004 (diff) | |
download | serenity-d5ea04cdfb179cd0fba5b4a27af72cad0e67b8a7.zip |
LibC+Kernel: Add sys/ttydefaults.h
This non-POSIX header is used in Linux/BSD systems for storing the
default termios settings. This lets us setup new TTYs' `m_termios.c_cc`
in a nicer way than using a magic string.
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/Libraries/LibC/sys/ttydefaults.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Userland/Libraries/LibC/sys/ttydefaults.h b/Userland/Libraries/LibC/sys/ttydefaults.h new file mode 100644 index 0000000000..d9fb3a6f95 --- /dev/null +++ b/Userland/Libraries/LibC/sys/ttydefaults.h @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2021, Daniel Bertalan <dani@danielbertalan.dev> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#define TTYDEF_IFLAG (ICRNL | IXON | IXANY) +#define TTYDEF_OFLAG (OPOST | ONLCR) +#define TTYDEF_LFLAG_NOECHO (ISIG | ICANON) +#define TTYDEF_LFLAG_ECHO (TTYDEF_LFLAG_NOECHO | ECHO | ECHOE | ECHOK | ECHONL) +#define TTYDEF_LFLAG TTYDEF_LFLAG_ECHO +#define TTYDEF_CFLAG (0) +#define TTYDEF_SPEED (B9600) + +#define CTRL(c) (c & 0x1F) +#define CINTR CTRL('c') +#define CQUIT 034 +#define CERASE 0177 +#define CKILL CTRL('u') +#define CEOF CTRL('d') +#define CTIME 0 +#define CMIN 1 +#define CSWTC 0 +#define CSTART CTRL('q') +#define CSTOP CTRL('s') +#define CSUSP CTRL('z') +#define CEOL 0 +#define CREPRINT CTRL('r') +#define CDISCARD CTRL('o') +#define CWERASE CTRL('w') +#define CLNEXT CTRL('v') +#define CEOL2 CEOL + +#define CEOT CEOF +#define CBRK CEOL +#define CRPRNT CREPRINT +#define CFLUSH CDISCARD + +#ifdef TTYDEFCHARS +# ifdef KERNEL +# include <Kernel/UnixTypes.h> +# else +# include <termios.h> +# endif +# include <sys/cdefs.h> + +__BEGIN_DECLS +static const cc_t ttydefchars[NCCS] = { + [VINTR] = CINTR, + [VQUIT] = CQUIT, + [VERASE] = CERASE, + [VKILL] = CKILL, + [VEOF] = CEOF, + [VTIME] = CTIME, + [VMIN] = CMIN, + [VSWTC] = CSWTC, + [VSTART] = CSTART, + [VSTOP] = CSTOP, + [VSUSP] = CSUSP, + [VEOL] = CEOL, + [VREPRINT] = CREPRINT, + [VDISCARD] = CDISCARD, + [VWERASE] = CWERASE, + [VLNEXT] = CLNEXT, + [VEOL2] = CEOL2 +}; +__END_DECLS +#endif |