ladybird/Kernel/Devices/TTY
Jelle Raaijmakers 96675e61cd Kernel/TTY: Support non-blocking reads with termios VMIN == 0
In a TTY's non-canonical mode, data availability can be configured by
setting VMIN and VTIME to determine the minimum amount of bytes to read
and the timeout between bytes, respectively. Some ports (such as SRB2)
set VMIN to 0 which effectively makes reading a TTY such as stdin a
non-blocking read. We didn't support this, causing ports to hang as soon
as they try to read stdin without any data available.

Add a very duct-tapey implementation for the case where VMIN == 0 by
overwriting the TTY's description's blocking status; 3 FIXMEs are
included to make sure we clean this up some day.
2024-02-13 19:48:39 +01:00
..
ConsoleManagement.cpp Kernel: Move TTY-related code to a new subdirectory under Devices 2023-09-09 12:08:59 -06:00
ConsoleManagement.h Kernel: Move TTY-related code to a new subdirectory under Devices 2023-09-09 12:08:59 -06:00
MasterPTY.cpp Kernel: Resolve deadlock in MasterPTY due to mutex in spinlock scope 2023-12-16 12:55:41 +01:00
MasterPTY.h Kernel: Resolve lock-inversion based deadlock in MasterPTY & BlockSet 2023-12-16 12:55:41 +01:00
PTYMultiplexer.cpp Kernel: Move TTY-related code to a new subdirectory under Devices 2023-09-09 12:08:59 -06:00
PTYMultiplexer.h Kernel: Move TTY-related code to a new subdirectory under Devices 2023-09-09 12:08:59 -06:00
SlavePTY.cpp Kernel: Move TTY-related code to a new subdirectory under Devices 2023-09-09 12:08:59 -06:00
SlavePTY.h Kernel: Move TTY-related code to a new subdirectory under Devices 2023-09-09 12:08:59 -06:00
TTY.cpp Kernel/TTY: Support non-blocking reads with termios VMIN == 0 2024-02-13 19:48:39 +01:00
TTY.h Kernel/TTY: Support non-blocking reads with termios VMIN == 0 2024-02-13 19:48:39 +01:00
VirtualConsole.cpp LibVT+Everywhere: Introduce 'automarks' and 'clear previous command' 2024-02-07 00:43:11 +01:00
VirtualConsole.h LibVT+Everywhere: Introduce 'automarks' and 'clear previous command' 2024-02-07 00:43:11 +01:00