ladybird/Kernel
Liav A 17e7cdc6cc Kernel: Implement ScatterList for handling scattered DMA pages
This class is used in the AHCI code to handle a big request of
read/write to the disk. If we happen to encounter such request,
we will get the needed amount of physical pages from the
already-allocated physical pages in AHCIPort, and with that we
will create a ScatterList that will create a Region that maps
all of these pages in a contiguous virtual memory range.

Then, we could easily copy to/from this range, before and after
calling the operation on the StorageDevice as needed with
read or write operations.
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: Implement ScatterList for handling scattered DMA pages 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: Add AnonymousVMObject constructor for a Vector of physical pages 2021-03-05 11:29:34 +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