summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
authorDaniel Bertalan <dani@danielbertalan.dev>2021-05-16 15:27:09 +0200
committerAndreas Kling <kling@serenityos.org>2021-05-16 16:31:30 +0200
commitd5ea04cdfb179cd0fba5b4a27af72cad0e67b8a7 (patch)
tree86e056e146b3b2e347ba9955ee01b794670de341 /Kernel
parent7ec8cb97e9f9c74c75076c451bf0ea3ae29c2004 (diff)
downloadserenity-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 'Kernel')
-rw-r--r--Kernel/TTY/TTY.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/Kernel/TTY/TTY.cpp b/Kernel/TTY/TTY.cpp
index 9ffc018b54..089c1d880b 100644
--- a/Kernel/TTY/TTY.cpp
+++ b/Kernel/TTY/TTY.cpp
@@ -11,6 +11,9 @@
#include <LibC/errno_numbers.h>
#include <LibC/signal_numbers.h>
#include <LibC/sys/ioctl_numbers.h>
+#define TTYDEFCHARS
+#include <LibC/sys/ttydefaults.h>
+#undef TTYDEFCHARS
namespace Kernel {
@@ -27,9 +30,13 @@ TTY::~TTY()
void TTY::set_default_termios()
{
memset(&m_termios, 0, sizeof(m_termios));
- m_termios.c_lflag |= ISIG | ECHO | ICANON;
- static const char default_cc[32] = "\003\034\010\025\004\0\1\0\021\023\032\0\022\017\027\026\0\024";
- memcpy(m_termios.c_cc, default_cc, sizeof(default_cc));
+ m_termios.c_iflag = TTYDEF_IFLAG;
+ m_termios.c_oflag = TTYDEF_OFLAG;
+ m_termios.c_cflag = TTYDEF_CFLAG;
+ m_termios.c_lflag = TTYDEF_LFLAG;
+ m_termios.c_ispeed = TTYDEF_SPEED;
+ m_termios.c_ospeed = TTYDEF_SPEED;
+ memcpy(m_termios.c_cc, ttydefchars, sizeof(ttydefchars));
}
KResultOr<size_t> TTY::read(FileDescription&, u64, UserOrKernelBuffer& buffer, size_t size)