ladybird/Kernel
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
..
API AK: Make IndexSequence use size_t 2024-02-11 18:53:00 +01:00
Arch AK: Make IndexSequence use size_t 2024-02-11 18:53:00 +01:00
Boot Kernel: Enable i8042 first port translation by default 2024-01-12 16:02:13 -07:00
Bus Kernel: Use the new API to query and map BAR spaces in most places 2024-01-12 15:59:47 -07:00
Devices Kernel/TTY: Support non-blocking reads with termios VMIN == 0 2024-02-13 19:48:39 +01:00
FileSystem Kernel: Make ftruncate change st_ctime as per spec 2024-02-12 16:27:19 +01:00
Firmware/ACPI Kernel: Overhaul system shutdown procedure 2023-07-15 00:12:01 +02:00
Heap Kernel: Add initial basic support for KASAN 2023-12-30 13:57:10 +01:00
Interrupts Kernel/Interrupts: Move PCIIRQHandler => PCI::IRQHandler 2023-09-16 14:04:17 -06:00
Library Kernel/riscv64: Implement support for "panic=shutdown" cmdline option 2024-01-12 16:25:46 -07:00
Locking Kernel: Share Processor class (and others) across architectures 2023-10-03 16:08:29 -06:00
Memory Kernel/MM: Don't allocate a temporary Vector when parsing the memory map 2024-01-12 15:59:47 -07:00
Net Kernel/Net: E1000ENetworkAdapter detect EEPROM 2024-02-08 07:05:46 -07:00
Prekernel Kernel: Restrict KASLR randomization range when KASAN is enabled 2023-12-30 23:18:49 +01:00
Security Kernel: Add initial basic support for KASAN 2023-12-30 13:57:10 +01:00
Syscalls Kernel: Stop swallowing thread unblocks while process is stopped 2024-02-10 08:42:53 +01:00
Tasks Kernel: Stop swallowing thread unblocks while process is stopped 2024-02-10 08:42:53 +01:00
Time Kernel/riscv64: Add RISC-V support to TimeManagement 2024-01-02 06:50:59 -07:00
CMakeLists.txt Kernel/riscv64: Add assembly trap handler 2024-01-23 13:13:18 -07:00
Debug.h.in Kernel: Add a framebuffer driver for 3Dfx Voodoo 3 2023-10-16 01:25:45 +02:00
embedmap.sh Kernel: Make new kernel build process work on macOS 2021-07-15 11:04:30 +02:00
Forward.h Kernel+LibCore+LibC: Split the mount syscall into multiple syscalls 2023-07-02 01:04:51 +02:00
generate-version-file.sh Kernel: Bake version information into the Kernel 2022-10-14 13:45:33 +02:00
kprintf.cpp Kernel: Only write text to serial console if no ConsoleDevice attached 2024-01-02 06:16:53 -07:00
kstdio.h Kernel: Remove includes to LibC stdarg definitions 2023-03-01 19:36:53 -07:00
KSyms.cpp Kernel/riscv64: Fix backtrace generation on RISC-V 2023-12-30 23:24:18 +01:00
KSyms.h Kernel: Add ability to dump backtrace from provided frame pointer 2022-10-01 14:09:01 +02:00
mkmap.sh Kernel: Use the toolchain's nm in mkmap.sh 2021-12-30 18:10:51 +01:00
SanCov.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
Sections.h Kernel: Move all boot-related code to the new Boot subdirectory 2023-06-04 21:32:34 +02:00
UnixTypes.h Kernel/Net: Implement TCP_NODELAY 2023-11-08 09:31:54 +01:00