1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 07:28:11 +00:00
serenity/Kernel
Liav A 0b1fa97b30 Kernel/AHCI: Use interrupts for IO operations
Instead of polling if the device ended the operation, we can just use
interrupts for signalling about end of IO operation.
In similar way, we use interrupts during device detection.

Also, we use the new Work Queue mechanism introduced by @tomuta to allow
better performance and stability :)
2021-03-21 13:41:09 +01:00
..
ACPI Everywhere: Remove klog(), dbg() and purge all LogStream usage :^) 2021-03-12 17:29:37 +01:00
API LibC+Kernel: Switch off_t to 64 bits 2021-03-17 23:22:42 +01:00
Arch Kernel::x86_64: Re-copy boot.S and add longmode in 2021-03-21 09:35:23 +01:00
Devices Kernel: Add simplistic work queues 2021-03-21 13:41:09 +01:00
FileSystem Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
Heap Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
Interrupts Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
Modules Everywhere: Remove klog(), dbg() and purge all LogStream usage :^) 2021-03-12 17:29:37 +01:00
Net Kernel: Refactor storage stack with u64 as file operations offset 2021-03-17 23:22:42 +01:00
PCI Everywhere: Remove klog(), dbg() and purge all LogStream usage :^) 2021-03-12 17:29:37 +01:00
Storage Kernel/AHCI: Use interrupts for IO operations 2021-03-21 13:41:09 +01:00
Syscalls Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
Tasks Kernel: Make Thread use AK::Time internally 2021-03-02 08:36:08 +01:00
Time Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
TTY Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
VM Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
.gitignore Meta: Expect sync-local.sh script at repository root 2021-01-30 09:18:46 +01:00
AddressSanitizer.cpp Kernel: Initial integration of Kernel Address Sanitizer (KASAN) 2021-02-15 11:41:53 +01:00
AddressSanitizer.h Kernel: Initial integration of Kernel Address Sanitizer (KASAN) 2021-02-15 11:41:53 +01:00
Assertions.h Everywhere: Remove unused RELEASE_ASSERT macro 2021-02-23 21:11:53 +01:00
CMakeLists.txt Kernel: Add simplistic work queues 2021-03-21 13:41:09 +01:00
CMOS.cpp Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
CMOS.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
CommandLine.cpp Kernel: Don't reset AHCI ports during boot unless requested 2021-03-13 09:52:31 +01:00
CommandLine.h Kernel: Don't reset AHCI ports during boot unless requested 2021-03-13 09:52:31 +01:00
Console.cpp Kernel: Refactor storage stack with u64 as file operations offset 2021-03-17 23:22:42 +01:00
Console.h Kernel: Refactor storage stack with u64 as file operations offset 2021-03-17 23:22:42 +01:00
CoreDump.cpp Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
CoreDump.h Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
Debug.h.in Kernel: Implement triply indirect block support in Ext2FSInode 2021-03-13 09:27:18 +01:00
DMI.cpp Everywhere: Remove klog(), dbg() and purge all LogStream usage :^) 2021-03-12 17:29:37 +01:00
DMI.h Kernel: Set file size for smbios_entry_point and DMI blobs in ProcFS 2021-02-01 17:13:23 +01:00
DoubleBuffer.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
DoubleBuffer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Forward.h Kernel: Add simplistic work queues 2021-03-21 13:41:09 +01:00
FutexQueue.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
FutexQueue.h Kernel: Some futex improvements 2021-01-17 20:30:31 +01:00
init.cpp Kernel: Add simplistic work queues 2021-03-21 13:41:09 +01:00
IO.h Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
KBuffer.h Everywhere: Remove klog(), dbg() and purge all LogStream usage :^) 2021-03-12 17:29:37 +01:00
KBufferBuilder.cpp Kernel: Assert if rounding-up-to-page-size would wrap around to 0 2021-02-14 10:01:50 +01:00
KBufferBuilder.h Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
kprintf.cpp Everywhere: Remove klog(), dbg() and purge all LogStream usage :^) 2021-03-12 17:29:37 +01:00
KResult.h Everywhere: Remove unnecessary clang-format offs 2021-03-04 11:01:48 +01:00
kstdio.h Everywhere: Remove klog(), dbg() and purge all LogStream usage :^) 2021-03-12 17:29:37 +01:00
KSyms.cpp Kernel: Convert klog() => AK::Format in a handful of places 2021-03-12 15:22:35 +01:00
KSyms.h Kernel: Take some baby steps towards x86_64 2021-02-25 16:27:12 +01:00
linker.ld Kernel: Define a KERNEL_VIRTUAL_BASE in the linker script 2021-03-04 18:25:01 +01:00
Lock.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Lock.h Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
LockMode.h Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00
mkmap.sh Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
Module.h Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
Multiboot.h Kernel: Parse boot modules from Multiboot specification 2021-01-22 22:17:39 +01:00
Panic.cpp Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
Panic.h Kernel: Add a PANIC() function 2021-02-14 09:36:58 +01:00
PerformanceEventBuffer.cpp Kernel+Profiler: Capture metadata about all profiled processes 2021-03-02 22:38:06 +01:00
PerformanceEventBuffer.h Kernel+Profiler: Capture metadata about all profiled processes 2021-03-02 22:38:06 +01:00
PhysicalAddress.h Everywhere: Remove klog(), dbg() and purge all LogStream usage :^) 2021-03-12 17:29:37 +01:00
Process.cpp Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
Process.h LibC+Kernel: Switch off_t to 64 bits 2021-03-17 23:22:42 +01:00
ProcessGroup.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
ProcessGroup.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Random.cpp Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
Random.h Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
RTC.cpp Everywhere: Remove klog(), dbg() and purge all LogStream usage :^) 2021-03-12 17:29:37 +01:00
RTC.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
Scheduler.cpp Kernel+Profiler: Capture metadata about all profiled processes 2021-03-02 22:38:06 +01:00
Scheduler.h Kernel: Remove ancient unused Scheduler::beep() declaration 2021-02-07 20:45:09 +01:00
SpinLock.h Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
StdLib.cpp Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
StdLib.h Kernel: Prevent using copy_from_user() for timespec/timeval 2021-03-02 08:36:08 +01:00
Syscall.cpp Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
Thread.cpp Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
Thread.h Kernel: Make TSS use in thread generic 2021-03-21 09:35:23 +01:00
ThreadBlockers.cpp Kernel: Fix sys$select() not marking fd's after blocking was avoided 2021-03-15 21:21:52 +01:00
ThreadTracer.cpp Kernel::CPU: Move headers into common directory 2021-03-21 09:35:23 +01:00
ThreadTracer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
TimerQueue.cpp Kernel: Make TimeManagement use AK::Time internally 2021-03-02 08:36:08 +01:00
TimerQueue.h Kernel: Make TimerQueue use AK::Time in interface 2021-03-02 08:36:08 +01:00
UBSanitizer.cpp Kernel: Expose sysctl 'ubsan_is_deadly' to panic the Kernel on UB 2021-03-07 17:31:25 +01:00
UBSanitizer.h Kernel: Expose sysctl 'ubsan_is_deadly' to panic the Kernel on UB 2021-03-07 17:31:25 +01:00
UnixTypes.h LibC+Kernel: Switch off_t to 64 bits 2021-03-17 23:22:42 +01:00
UnveilNode.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
UserOrKernelBuffer.cpp AK: Add StringBuilder::appendff using the new format. 2020-09-22 15:06:40 +02:00
UserOrKernelBuffer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
VirtualAddress.h Everywhere: Remove klog(), dbg() and purge all LogStream usage :^) 2021-03-12 17:29:37 +01:00
WaitQueue.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
WaitQueue.h Kernel: Add WaitQueue::wait_forever and it use it for all infinite waits. 2021-02-15 08:28:57 +01:00
WorkQueue.cpp Kernel: Add simplistic work queues 2021-03-21 13:41:09 +01:00
WorkQueue.h Kernel: Add simplistic work queues 2021-03-21 13:41:09 +01:00