ladybird/Kernel
Liav A 72b1998f0d Kernel: Introduce a new partitioning subsystem
The partitioning code was very outdated, and required a full refactor.
The new subsystem removes duplicated code and uses more AK containers.

The most important change is that all implementations of the
PartitionTable class conform to one interface, which made it possible
to remove unnecessary code in the EBRPartitionTable class.

Finding partitions is now done in the StorageManagement singleton,
instead of doing so in init.cpp.

Also, now we don't try to find partitions on demand - the kernel will
try to detect if a StorageDevice is partitioned, and if so, will check
what is the partition table, which could be MBR, GUID or EBR.
Then, it will create DiskPartitionMetadata object for each partition
that is available in the partition table. This object will be used
by the partition enumeration code to create a DiskPartition with the
correct minor number.
2020-12-27 23:07:44 +01:00
..
ACPI Kernel: Workaround QEMU bug and initialize i8042 controller 2020-12-18 10:02:14 +01:00
API Kernel: Remove the per-process icon_id and sys$set_process_icon() 2020-12-27 01:16:56 +01:00
Arch Everywhere: void arguments to C functions 2020-12-26 10:10:27 +01:00
Devices Kernel: Move Partition code files to the Storage folder 2020-12-27 23:07:44 +01:00
FileSystem Kernel: Introduce a new partitioning subsystem 2020-12-27 23:07:44 +01:00
Heap Kernel: Remove subheap from list before removing memory 2020-12-26 19:55:01 +01:00
Interrupts Everywhere: void arguments to C functions 2020-12-26 10:10:27 +01:00
Modules Kernel: Module symbol declarations for type-checking 2020-08-12 20:40:59 +02:00
Net Kernel: Fix build with E1000_DEBUG 2020-12-25 19:35:55 +01:00
PCI AK: Remove custom %w format string specifier 2020-12-25 17:05:05 +01:00
Storage Kernel: Introduce a new partitioning subsystem 2020-12-27 23:07:44 +01:00
Syscalls Kernel: Introduce the DevFS 2020-12-27 23:07:44 +01:00
Tasks Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +01:00
Time Kernel: Take into account the time keeper's frequency (if no HPET) 2020-12-27 01:17:50 +01:00
TTY Kernel: Add a method to determine the desired permissions of a Device 2020-12-27 23:07:44 +01:00
VM AK: Remove custom %w format string specifier 2020-12-25 17:05:05 +01:00
.gitignore Meta: Removed all gitignore in the source tree only keeping the root one 2019-06-30 10:41:26 +02:00
Assertions.h Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
CMakeLists.txt Kernel: Introduce a new partitioning subsystem 2020-12-27 23:07:44 +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 Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
CommandLine.h Kernel: Copy command line to a safe place 2020-08-25 09:48:48 +02:00
Console.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Console.h Kernel: Add a method to determine the desired permissions of a Device 2020-12-27 23:07:44 +01:00
CoreDump.cpp Kernel: CoreDump::write_program_headers: set NOTE p_memsz to p_filesz 2020-12-27 22:45:25 +01:00
CoreDump.h Kernel: Lock target process when generating core dump 2020-12-27 01:16:56 +01:00
DoubleBuffer.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
DoubleBuffer.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Forward.h Kernel: Generate a coredump file when a process crashes 2020-12-14 23:05:53 +01:00
init.cpp Kernel: Introduce a new partitioning subsystem 2020-12-27 23:07:44 +01:00
IO.h Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
KBuffer.h Kernel: Make KBuffer::try_create_with_bytes() actually copy the bytes 2020-12-23 00:40:11 +01:00
KBufferBuilder.cpp Kernel: Move KBufferBuilder to the fallible KBuffer API 2020-12-18 19:22:26 +01:00
KBufferBuilder.h Kernel: Move KBufferBuilder to the fallible KBuffer API 2020-12-18 19:22:26 +01:00
kprintf.cpp Kernel: Stop supporting sprintf 2020-08-22 20:55:10 +02:00
KResult.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
kstdio.h LibC: Enable compiler warnings for printf format strings 2020-12-26 10:05:50 +01:00
KSyms.cpp Kernel+LibELF: Stop doing ELF symbolication in the kernel 2020-12-25 01:03:46 +01:00
KSyms.h Kernel: Update cryptically-named functions related to symbolication 2020-04-08 17:19:46 +02:00
linker.ld Kernel: Invoke heap constructors separately early on 2020-08-10 20:05:18 +02:00
Lock.cpp Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00
Lock.h Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +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 Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
PerformanceEventBuffer.cpp Kernel: Use fallible KBuffer API in PerformanceEventBuffer 2020-12-19 10:23:12 +01:00
PerformanceEventBuffer.h Kernel: Use fallible KBuffer API in PerformanceEventBuffer 2020-12-19 10:23:12 +01:00
PhysicalAddress.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Process.cpp Everywhere: void arguments to C functions 2020-12-26 10:10:27 +01:00
Process.h Kernel: Remove the per-process icon_id and sys$set_process_icon() 2020-12-27 01:16:56 +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
Profiling.cpp Kernel+LibELF: Stop doing ELF symbolication in the kernel 2020-12-25 01:03:46 +01:00
Profiling.h Kernel: More PID/TID typing 2020-08-10 11:51:45 +02:00
Ptrace.cpp Kernel+LibC: Introduce a "dumpable" flag for processes 2020-12-25 19:35:55 +01:00
Ptrace.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Random.cpp Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +01:00
Random.h Kernel: Tag more methods and types as [[nodiscard]] 2020-12-27 11:09:30 +01:00
RTC.cpp Kernel: Minor tweak to now() computation 2020-08-26 08:52:07 +02:00
RTC.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
Scheduler.cpp AK: Remove custom %w format string specifier 2020-12-25 17:05:05 +01:00
Scheduler.h Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +01:00
SharedBuffer.cpp Kernel: Fix SharedBuffer reference counting on fork 2020-11-24 21:26:39 +01:00
SharedBuffer.h Kernel: Fix SharedBuffer reference counting on fork 2020-11-24 21:26:39 +01:00
SpinLock.h Kernel: Tag more methods and types as [[nodiscard]] 2020-12-27 11:09:30 +01:00
StdLib.cpp Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
StdLib.h Kernel: Add checks for is_trivially_copyable to copy_to/from_user 2020-10-02 15:38:07 +02:00
Syscall.cpp Kernel: Don't allow modifying IOPL via sys$ptrace() or sys$sigreturn() 2020-12-22 19:38:25 +01:00
Thread.cpp AK: Remove custom %w format string specifier 2020-12-25 17:05:05 +01:00
Thread.h Kernel: Tag more methods and types as [[nodiscard]] 2020-12-27 11:09:30 +01:00
ThreadBlockers.cpp Kernel: Change wait blocking to Process-only blocking 2020-12-12 21:28:12 +01:00
ThreadTracer.cpp Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
ThreadTracer.h Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
TimerQueue.cpp Kernel: Improve time keeping and dramatically reduce interrupt load 2020-12-21 18:26:12 +01:00
TimerQueue.h Kernel: Improve time keeping and dramatically reduce interrupt load 2020-12-21 18:26:12 +01:00
UnixTypes.h Kernel: Improve time keeping and dramatically reduce interrupt load 2020-12-21 18:26:12 +01:00
UnveilNode.h Kernel: Allow 'elevating' unveil permissions if implicitly inherited from '/' 2020-12-26 16:10:04 +01:00
UserOrKernelBuffer.cpp AK: Add StringBuilder::appendff using the new format. 2020-09-22 15:06:40 +02:00
UserOrKernelBuffer.h FileSystem: Use OutputMemoryStream instead of BufferStream. 2020-09-15 20:36:45 +02:00
VirtualAddress.cpp Kernel: Add formatter for VirtualAddress 2020-12-25 12:51:11 +01:00
VirtualAddress.h Kernel: Add formatter for VirtualAddress 2020-12-25 12:51:11 +01:00
WaitQueue.cpp Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00
WaitQueue.h Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00