ladybird/Kernel
Liav A c4463cb5df Kernel: Add basic AHCI functionality
The hierarchy is AHCIController, AHCIPortHandler, AHCIPort and
SATADiskDevice. Each AHCIController has at least one AHCIPortHandler.

An AHCIPortHandler is an interrupt handler that takes care of
enumeration of handled AHCI ports when an interrupt occurs. Each
AHCIPort takes care of one SATADiskDevice, and later on we can add
support for Port multiplier.

When we implement support of Message signalled interrupts, we can spawn
many AHCIPortHandlers, and allow each one of them to be responsible for
a set of AHCIPorts.
2021-03-05 11:29:34 +01:00
..
ACPI Kernel: Move Kernel CommandLine parsing to strongly typed API. 2021-03-03 11:05:16 +01:00
API Kernel: Don't trust user-supplied bool in sys$stat 2021-03-03 11:03:03 +01:00
Arch Kernel: Make the kernel compile & link for x86_64 2021-03-04 18:25:01 +01:00
Devices Kernel: Make the kernel compile & link for x86_64 2021-03-04 18:25:01 +01:00
FileSystem Kernel: Stop trying to keep InodeVMObject in sync with disk changes 2021-03-04 15:42:51 +01:00
Heap Kernel: Remove unused KMALLOC_DEBUG_LARGE_ALLOCATIONS mode 2021-03-04 11:25:45 +01:00
Interrupts Everywhere: Remove unnecessary clang-format offs 2021-03-04 11:01:48 +01:00
Modules Kernel: Module symbol declarations for type-checking 2020-08-12 20:40:59 +02:00
Net Everywhere: Remove unnecessary clang-format offs 2021-03-04 11:01:48 +01:00
PCI Everywhere: Remove unnecessary clang-format offs 2021-03-04 11:01:48 +01:00
Storage Kernel: Add basic AHCI functionality 2021-03-05 11:29:34 +01:00
Syscalls Kernel: Skip TLB flushes while cloning regions in sys$fork() 2021-03-03 22:57:45 +01:00
Tasks Kernel: Make Thread use AK::Time internally 2021-03-02 08:36:08 +01:00
Time Kernel: Mark more of the kernel initialization as UNMAP_AFTER_INIT 2021-03-03 11:05:16 +01:00
TTY Kernel: Make kgettimeofday use AK::Time 2021-03-02 08:36:08 +01:00
VM Kernel: Make the kernel compile & link for x86_64 2021-03-04 18:25:01 +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 basic AHCI functionality 2021-03-05 11:29:34 +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: Add 'boot_prof' option to enable full system profiling on boot 2021-03-03 11:05:16 +01:00
CommandLine.h Kernel: Add 'boot_prof' option to enable full system profiling on boot 2021-03-03 11:05:16 +01:00
Console.cpp Kernel: Slap UNMAP_AFTER_INIT on a bunch more functions 2021-02-19 21:42:18 +01:00
Console.h Kernel: Make device generate their own names 2021-01-22 22:17:39 +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: Add basic AHCI functionality 2021-03-05 11:29:34 +01:00
DMI.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +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: Factor address space management out of the Process class 2021-02-08 18:27:28 +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: Make the kernel compile & link for x86_64 2021-03-04 18:25:01 +01:00
IO.h Kernel: Remove repeated_{in,out}16() 2021-03-04 18:25:01 +01:00
KBuffer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +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 Kernel: Don't take debug logging lock in sprintf() 2021-02-20 17:21:53 +01:00
KResult.h Everywhere: Remove unnecessary clang-format offs 2021-03-04 11:01:48 +01:00
kstdio.h Kernel: Remove kprintf() 2021-02-17 16:33:43 +01:00
KSyms.cpp Kernel: Move SMAP disabler RAII helper to its own file 2021-02-25 17:25:34 +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: Use default con/de-structors 2021-02-28 18:09:12 +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: Add a PANIC() function 2021-02-14 09:36:58 +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 Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
Process.cpp Kernel: Make the kernel compile & link for x86_64 2021-03-04 18:25:01 +01:00
Process.h Kernel: Better handling of allocation failure in profiling 2021-03-02 22:38:06 +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: Fix APIC timer calibration to be more accurate 2021-03-01 11:11:09 +01:00
Random.h Kernel: Make clang(?) happy about templates(?) 2021-03-02 08:36:08 +01:00
RTC.cpp Kernel: Don't assert if RTC believes we're in the past 2021-02-11 20:58:39 +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 AK+Kernel: Remove NO_DISCARD macro hack 2021-03-03 23:08:42 +01:00
StdLib.cpp Kernel: Implement 'copy_time_from_user' functions to sanitize arguments 2021-03-02 08:36:08 +01:00
StdLib.h Kernel: Prevent using copy_from_user() for timespec/timeval 2021-03-02 08:36:08 +01:00
Syscall.cpp Kernel: Make the kernel compile & link for x86_64 2021-03-04 18:25:01 +01:00
Thread.cpp Kernel: Make the kernel compile & link for x86_64 2021-03-04 18:25:01 +01:00
Thread.h Kernel: Avoid transient kmalloc heap allocations in sys$select() 2021-03-03 20:37:23 +01:00
ThreadBlockers.cpp Kernel: Make sockets use AK::Time 2021-03-02 08:36:08 +01:00
ThreadTracer.cpp Kernel: Reorganize ptrace implementation a bit 2021-02-08 19:34:41 +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: Improve KUBSAN logging for "type mismatch" errors 2021-02-24 14:27:06 +01:00
UBSanitizer.h KUBSAN: Add nearly all missing -fsanitize handlers (#5254) 2021-02-11 20:58:01 +01:00
UnixTypes.h Everywhere: Remove unnecessary clang-format offs 2021-03-04 11:01:48 +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 Kernel: Use default con/de-structors 2021-02-28 18:09:12 +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