diff options
author | Samuel Bowman <sam@sambowman.tech> | 2022-03-01 19:42:06 -0500 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2022-07-21 20:13:44 +0100 |
commit | 1a6ef03e4a360d9497ef0babbb38c7c7cb1df0e0 (patch) | |
tree | 006b28bac47763166cc67be3d636bae5ea68879f | |
parent | 940dde99473ec756cc78dc3ef9cea6fb1d651b6c (diff) | |
download | serenity-1a6ef03e4a360d9497ef0babbb38c7c7cb1df0e0.zip |
Kernel+LibPartition: Move MBRPartitionTable into LibPartition
-rw-r--r-- | AK/Debug.h.in | 4 | ||||
-rw-r--r-- | Kernel/CMakeLists.txt | 2 | ||||
-rw-r--r-- | Kernel/Debug.h.in | 4 | ||||
-rw-r--r-- | Kernel/Storage/Partition/EBRPartitionTable.h | 4 | ||||
-rw-r--r-- | Kernel/Storage/Partition/GUIDPartitionTable.h | 4 | ||||
-rw-r--r-- | Kernel/Storage/StorageManagement.cpp | 4 | ||||
-rw-r--r-- | Userland/Libraries/LibPartition/CMakeLists.txt | 1 | ||||
-rw-r--r-- | Userland/Libraries/LibPartition/MBRPartitionTable.cpp (renamed from Kernel/Storage/Partition/MBRPartitionTable.cpp) | 15 | ||||
-rw-r--r-- | Userland/Libraries/LibPartition/MBRPartitionTable.h (renamed from Kernel/Storage/Partition/MBRPartitionTable.h) | 17 |
9 files changed, 26 insertions, 29 deletions
diff --git a/AK/Debug.h.in b/AK/Debug.h.in index ff5416e4e0..dfaaf8a234 100644 --- a/AK/Debug.h.in +++ b/AK/Debug.h.in @@ -286,6 +286,10 @@ #cmakedefine01 MATROSKA_TRACE_DEBUG #endif +#ifndef MBR_DEBUG +#cmakedefine01 MBR_DEBUG +#endif + #ifndef MEMORY_DEBUG #cmakedefine01 MEMORY_DEBUG #endif diff --git a/Kernel/CMakeLists.txt b/Kernel/CMakeLists.txt index 6c991ba302..49b8420c6c 100644 --- a/Kernel/CMakeLists.txt +++ b/Kernel/CMakeLists.txt @@ -106,7 +106,6 @@ set(KERNEL_SOURCES Storage/Partition/DiskPartition.cpp Storage/Partition/EBRPartitionTable.cpp Storage/Partition/GUIDPartitionTable.cpp - Storage/Partition/MBRPartitionTable.cpp Storage/NVMe/NVMeController.cpp Storage/NVMe/NVMeNameSpace.cpp Storage/NVMe/NVMeInterruptQueue.cpp @@ -405,6 +404,7 @@ set(CRYPTO_SOURCES set(PARTITION_SOURCES ../Userland/Libraries/LibPartition/DiskPartitionMetadata.cpp + ../Userland/Libraries/LibPartition/MBRPartitionTable.cpp ../Userland/Libraries/LibPartition/PartitionTable.cpp ) diff --git a/Kernel/Debug.h.in b/Kernel/Debug.h.in index 0459798636..d5d6d9fc09 100644 --- a/Kernel/Debug.h.in +++ b/Kernel/Debug.h.in @@ -203,10 +203,6 @@ #cmakedefine01 MASTERPTY_DEBUG #endif -#ifndef MBR_DEBUG -#cmakedefine01 MBR_DEBUG -#endif - #ifndef MOUSE_DEBUG #cmakedefine01 MOUSE_DEBUG #endif diff --git a/Kernel/Storage/Partition/EBRPartitionTable.h b/Kernel/Storage/Partition/EBRPartitionTable.h index 6cce94358c..a32c20de87 100644 --- a/Kernel/Storage/Partition/EBRPartitionTable.h +++ b/Kernel/Storage/Partition/EBRPartitionTable.h @@ -12,12 +12,12 @@ #include <AK/Result.h> #include <AK/Vector.h> #include <Kernel/Storage/Partition/DiskPartition.h> -#include <Kernel/Storage/Partition/MBRPartitionTable.h> +#include <LibPartition/MBRPartitionTable.h> namespace Kernel { struct EBRPartitionHeader; -class EBRPartitionTable : public MBRPartitionTable { +class EBRPartitionTable : public Partition::MBRPartitionTable { public: ~EBRPartitionTable(); diff --git a/Kernel/Storage/Partition/GUIDPartitionTable.h b/Kernel/Storage/Partition/GUIDPartitionTable.h index 1d2eeb0149..163e75fb61 100644 --- a/Kernel/Storage/Partition/GUIDPartitionTable.h +++ b/Kernel/Storage/Partition/GUIDPartitionTable.h @@ -11,12 +11,12 @@ #include <AK/Result.h> #include <AK/Types.h> #include <AK/Vector.h> -#include <Kernel/Storage/Partition/MBRPartitionTable.h> +#include <LibPartition/MBRPartitionTable.h> namespace Kernel { struct GUIDPartitionHeader; -class GUIDPartitionTable final : public MBRPartitionTable { +class GUIDPartitionTable final : public Partition::MBRPartitionTable { public: virtual ~GUIDPartitionTable() = default; ; diff --git a/Kernel/Storage/StorageManagement.cpp b/Kernel/Storage/StorageManagement.cpp index f574ebd119..32982078c9 100644 --- a/Kernel/Storage/StorageManagement.cpp +++ b/Kernel/Storage/StorageManagement.cpp @@ -23,9 +23,9 @@ #include <Kernel/Storage/NVMe/NVMeController.h> #include <Kernel/Storage/Partition/EBRPartitionTable.h> #include <Kernel/Storage/Partition/GUIDPartitionTable.h> -#include <Kernel/Storage/Partition/MBRPartitionTable.h> #include <Kernel/Storage/Ramdisk/Controller.h> #include <Kernel/Storage/StorageManagement.h> +#include <LibPartition/MBRPartitionTable.h> namespace Kernel { @@ -133,7 +133,7 @@ UNMAP_AFTER_INIT void StorageManagement::dump_storage_devices_and_partitions() c UNMAP_AFTER_INIT ErrorOr<NonnullOwnPtr<Partition::PartitionTable>> StorageManagement::try_to_initialize_partition_table(StorageDevice const& device) const { - auto mbr_table_or_error = MBRPartitionTable::try_to_initialize(device); + auto mbr_table_or_error = Partition::MBRPartitionTable::try_to_initialize(device); if (!mbr_table_or_error.is_error()) return mbr_table_or_error.release_value(); auto ebr_table_or_error = EBRPartitionTable::try_to_initialize(device); diff --git a/Userland/Libraries/LibPartition/CMakeLists.txt b/Userland/Libraries/LibPartition/CMakeLists.txt index 9d3a0ef59e..a3f43660b8 100644 --- a/Userland/Libraries/LibPartition/CMakeLists.txt +++ b/Userland/Libraries/LibPartition/CMakeLists.txt @@ -1,5 +1,6 @@ set(SOURCES DiskPartitionMetadata.cpp + MBRPartitionTable.cpp PartitionTable.cpp ) diff --git a/Kernel/Storage/Partition/MBRPartitionTable.cpp b/Userland/Libraries/LibPartition/MBRPartitionTable.cpp index ad32867857..ef6abff930 100644 --- a/Kernel/Storage/Partition/MBRPartitionTable.cpp +++ b/Userland/Libraries/LibPartition/MBRPartitionTable.cpp @@ -4,18 +4,17 @@ * SPDX-License-Identifier: BSD-2-Clause */ -#include <AK/ByteBuffer.h> -#include <Kernel/Debug.h> -#include <Kernel/Storage/Partition/MBRPartitionTable.h> +#include <AK/Debug.h> +#include <LibPartition/MBRPartitionTable.h> -namespace Kernel { +namespace Partition { #define MBR_SIGNATURE 0xaa55 #define MBR_PROTECTIVE 0xEE #define EBR_CHS_CONTAINER 0x05 #define EBR_LBA_CONTAINER 0x0F -ErrorOr<NonnullOwnPtr<MBRPartitionTable>> MBRPartitionTable::try_to_initialize(StorageDevice const& device) +ErrorOr<NonnullOwnPtr<MBRPartitionTable>> MBRPartitionTable::try_to_initialize(Kernel::StorageDevice const& device) { auto table = TRY(adopt_nonnull_own_or_enomem(new (nothrow) MBRPartitionTable(device))); if (table->contains_ebr()) @@ -27,7 +26,7 @@ ErrorOr<NonnullOwnPtr<MBRPartitionTable>> MBRPartitionTable::try_to_initialize(S return table; } -OwnPtr<MBRPartitionTable> MBRPartitionTable::try_to_initialize(StorageDevice const& device, u32 start_lba) +OwnPtr<MBRPartitionTable> MBRPartitionTable::try_to_initialize(Kernel::StorageDevice const& device, u32 start_lba) { auto table = adopt_nonnull_own_or_enomem(new (nothrow) MBRPartitionTable(device, start_lba)).release_value_but_fixme_should_propagate_errors(); if (!table->is_valid()) @@ -44,7 +43,7 @@ bool MBRPartitionTable::read_boot_record() return m_header_valid; } -MBRPartitionTable::MBRPartitionTable(StorageDevice const& device, u32 start_lba) +MBRPartitionTable::MBRPartitionTable(Kernel::StorageDevice const& device, u32 start_lba) : PartitionTable(device) , m_start_lba(start_lba) , m_cached_header(ByteBuffer::create_zeroed(m_device->block_size()).release_value_but_fixme_should_propagate_errors()) // FIXME: Do something sensible if this fails because of OOM. @@ -65,7 +64,7 @@ MBRPartitionTable::MBRPartitionTable(StorageDevice const& device, u32 start_lba) m_valid = true; } -MBRPartitionTable::MBRPartitionTable(StorageDevice const& device) +MBRPartitionTable::MBRPartitionTable(Kernel::StorageDevice const& device) : PartitionTable(device) , m_start_lba(0) , m_cached_header(ByteBuffer::create_zeroed(m_device->block_size()).release_value_but_fixme_should_propagate_errors()) // FIXME: Do something sensible if this fails because of OOM. diff --git a/Kernel/Storage/Partition/MBRPartitionTable.h b/Userland/Libraries/LibPartition/MBRPartitionTable.h index 24bcdb49b9..454d30117d 100644 --- a/Kernel/Storage/Partition/MBRPartitionTable.h +++ b/Userland/Libraries/LibPartition/MBRPartitionTable.h @@ -6,16 +6,12 @@ #pragma once -#include <AK/ByteBuffer.h> #include <AK/Error.h> -#include <AK/RefPtr.h> -#include <AK/Result.h> -#include <AK/Vector.h> #include <LibPartition/PartitionTable.h> -namespace Kernel { +namespace Partition { -class MBRPartitionTable : public Partition::PartitionTable { +class MBRPartitionTable : public PartitionTable { public: struct [[gnu::packed]] Entry { u8 status; @@ -42,10 +38,10 @@ public: public: ~MBRPartitionTable(); - static ErrorOr<NonnullOwnPtr<MBRPartitionTable>> try_to_initialize(StorageDevice const&); - static OwnPtr<MBRPartitionTable> try_to_initialize(StorageDevice const&, u32 start_lba); - explicit MBRPartitionTable(StorageDevice const&); - MBRPartitionTable(StorageDevice const&, u32 start_lba); + static ErrorOr<NonnullOwnPtr<MBRPartitionTable>> try_to_initialize(Kernel::StorageDevice const&); + static OwnPtr<MBRPartitionTable> try_to_initialize(Kernel::StorageDevice const&, u32 start_lba); + explicit MBRPartitionTable(Kernel::StorageDevice const&); + MBRPartitionTable(Kernel::StorageDevice const&, u32 start_lba); bool is_protective_mbr() const; bool contains_ebr() const; @@ -63,4 +59,5 @@ private: const u32 m_start_lba; ByteBuffer m_cached_header; }; + } |