diff --git a/DevTools/UserspaceEmulator/Emulator.cpp b/DevTools/UserspaceEmulator/Emulator.cpp index 19c88924b6..77d92aca67 100644 --- a/DevTools/UserspaceEmulator/Emulator.cpp +++ b/DevTools/UserspaceEmulator/Emulator.cpp @@ -1109,11 +1109,11 @@ static DefaultSignalAction default_signal_action(int signal) case SIGIO: case SIGPROF: case SIGTERM: - case SIGPWR: return DefaultSignalAction::Terminate; case SIGCHLD: case SIGURG: case SIGWINCH: + case SIGINFO: return DefaultSignalAction::Ignore; case SIGQUIT: case SIGILL: diff --git a/Kernel/TTY/TTY.cpp b/Kernel/TTY/TTY.cpp index ac6fbc1a00..672e1885d2 100644 --- a/Kernel/TTY/TTY.cpp +++ b/Kernel/TTY/TTY.cpp @@ -48,7 +48,7 @@ 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"; + 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)); } @@ -141,6 +141,11 @@ bool TTY::is_werase(u8 ch) const void TTY::emit(u8 ch) { if (should_generate_signals()) { + if (ch == m_termios.c_cc[VINFO]) { + dbg() << tty_name() << ": VINFO pressed!"; + generate_signal(SIGINFO); + return; + } if (ch == m_termios.c_cc[VINTR]) { dbg() << tty_name() << ": VINTR pressed!"; generate_signal(SIGINT); diff --git a/Kernel/Thread.cpp b/Kernel/Thread.cpp index 25e44967de..64b34573e2 100644 --- a/Kernel/Thread.cpp +++ b/Kernel/Thread.cpp @@ -433,11 +433,11 @@ static DefaultSignalAction default_signal_action(u8 signal) case SIGIO: case SIGPROF: case SIGTERM: - case SIGPWR: return DefaultSignalAction::Terminate; case SIGCHLD: case SIGURG: case SIGWINCH: + case SIGINFO: return DefaultSignalAction::Ignore; case SIGQUIT: case SIGILL: diff --git a/Kernel/UnixTypes.h b/Kernel/UnixTypes.h index 77467a1e53..c2ea63aa60 100644 --- a/Kernel/UnixTypes.h +++ b/Kernel/UnixTypes.h @@ -155,6 +155,7 @@ enum { #define VWERASE 14 #define VLNEXT 15 #define VEOL2 16 +#define VINFO 17 /* c_iflag bits */ #define IGNBRK 0000001 diff --git a/Libraries/LibC/signal_numbers.h b/Libraries/LibC/signal_numbers.h index 87b60276cd..bc59c0d97c 100644 --- a/Libraries/LibC/signal_numbers.h +++ b/Libraries/LibC/signal_numbers.h @@ -56,6 +56,6 @@ #define SIGPROF 27 #define SIGWINCH 28 #define SIGIO 29 -#define SIGPWR 30 +#define SIGINFO 30 #define SIGSYS 31 #define NSIG 32