ladybird/Kernel/Devices
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
..
Audio Kernel/Audio: Fail AC97 probe if no good BAR1 is found 2023-10-03 16:19:03 -06:00
Generic Kernel+Userland: Add option for duration of /dev/beep producing sound 2023-11-03 15:19:33 +01:00
GPU Kernel: Use the new API to query and map BAR spaces in most places 2024-01-12 15:59:47 -07:00
HID Kernel/HID: Set Caps Lock state before doing code point remapping 2024-02-09 12:28:08 -07:00
Storage AK: Make IndexSequence use size_t 2024-02-11 18:53:00 +01:00
TTY Kernel/TTY: Support non-blocking reads with termios VMIN == 0 2024-02-13 19:48:39 +01:00
AsyncDeviceRequest.cpp AK: Rename Time to Duration 2023-05-24 23:18:07 +02:00
AsyncDeviceRequest.h Kernel: Hold a weak reference to a Process object in AsyncDeviceRequest 2023-08-20 13:04:42 -06:00
BlockDevice.cpp Kernel/Devices: Abstract SysFS Device add/remove methods more properly 2022-07-19 11:02:37 +01:00
BlockDevice.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
CharacterDevice.cpp Kernel/Devices: Abstract SysFS Device add/remove methods more properly 2022-07-19 11:02:37 +01:00
CharacterDevice.h Kernel/Devices: Abstract SysFS Device add/remove methods more properly 2022-07-19 11:02:37 +01:00
Device.cpp Kernel: Get rid of *LockRefPtr in the SysFS filesystem code 2023-04-14 19:24:54 +02:00
Device.h Kernel: Move FileSystem/DeviceFileTypes.h => API/DeviceFileTypes.h 2023-09-07 11:50:50 -06:00
DeviceManagement.cpp Kernel+Services: Enable barebones hot-plug handling capabilities 2023-09-07 11:50:50 -06:00
DeviceManagement.h Kernel+Services: Enable barebones hot-plug handling capabilities 2023-09-07 11:50:50 -06:00
KCOVDevice.cpp Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00
KCOVDevice.h Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
KCOVInstance.cpp Kernel: Propagate overflow errors from Memory::page_round_up 2021-12-28 23:08:50 +01:00
KCOVInstance.h Kernel+Userland: Unify declarations for KCOV in Kernel/API/kcov.h 2023-02-24 20:35:45 +01:00
PCISerialDevice.cpp Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00
PCISerialDevice.h Kernel: Add PCISerialDevice WCH CH351 IDs 2023-08-12 13:08:07 +02:00
SerialDevice.cpp Kernel: Use Processor::wait_check in loops waiting for HW to respond 2023-09-15 11:07:35 -06:00
SerialDevice.h Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00