summaryrefslogtreecommitdiffhomepage
path: root/Private/StorageKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlalelmahrouss@icloud.com>2024-02-09 20:31:40 +0100
committerAmlal El Mahrouss <amlalelmahrouss@icloud.com>2024-02-09 20:34:16 +0100
commitaf212d19d0b2f0fad608c78ca922d3db9cb326bd (patch)
tree5a21ba40baa50909331db7a67f112cc9969e750e /Private/StorageKit
parentd9556c811b25a7c5533d1f61152ecb8863cfd042 (diff)
Kernel: See below.
- Rework some bootloader modules, will work on some. - Rework GKit to look like the DOM on a browser. Signed-off-by: Amlal El Mahrouss <amlalelmahrouss@icloud.com>
Diffstat (limited to 'Private/StorageKit')
-rw-r--r--Private/StorageKit/ATA.hpp165
-rw-r--r--Private/StorageKit/NVME.hpp50
-rw-r--r--Private/StorageKit/PRDT.hpp2
3 files changed, 96 insertions, 121 deletions
diff --git a/Private/StorageKit/ATA.hpp b/Private/StorageKit/ATA.hpp
index 279258ca..33b976ae 100644
--- a/Private/StorageKit/ATA.hpp
+++ b/Private/StorageKit/ATA.hpp
@@ -1,104 +1,87 @@
/*
-* ========================================================
-*
-* HCore
-* Copyright Mahrouss Logic, all rights reserved.
-*
-* ========================================================
-*/
+ * ========================================================
+ *
+ * HCore
+ * Copyright Mahrouss Logic, all rights reserved.
+ *
+ * ========================================================
+ */
#pragma once
+#include <KernelKit/DebugOutput.hpp>
#include <KernelKit/PCI/Dma.hpp>
#include <KernelKit/PCI/IO.hpp>
#include <NewKit/Defines.hpp>
#include <StorageKit/PRDT.hpp>
-#include <KernelKit/DebugOutput.hpp>
-namespace HCore
-{
- enum class PATAType
- {
- kRead28,
- kRead48,
- kWrite28,
- kWrite48,
- kATAUnknown
- };
-
- const char* ata_read_28(ULong lba);
- const char* ata_read_48(ULong lba);
-
- Int32 ata_write_48(ULong lba, const char *text = nullptr);
- Int32 ata_write_28(ULong lba, const char *text = nullptr);
-
- class PATACommandManager final
- {
- public:
- PATACommandManager() = default;
- ~PATACommandManager() = default;
-
- PATACommandManager &operator=(const PATACommandManager &) = default;
- PATACommandManager(const PATACommandManager &) = default;
-
- public:
- static Ref<PATACommandManager> Shared()
- {
- static Ref<PATACommandManager> manager;
- return manager;
+namespace HCore {
+enum class PATAType { kRead28, kRead48, kWrite28, kWrite48, kATAUnknown };
+
+const char *ata_read_28(ULong lba);
+const char *ata_read_48(ULong lba);
+
+Int32 ata_write_48(ULong lba, const char *text = nullptr);
+Int32 ata_write_28(ULong lba, const char *text = nullptr);
+
+class PATACommandManager final {
+ public:
+ explicit PATACommandManager() = default;
+ ~PATACommandManager() = default;
+
+ PATACommandManager &operator=(const PATACommandManager &) = default;
+ PATACommandManager(const PATACommandManager &) = default;
+
+ public:
+ static Ref<PATACommandManager> Shared() {
+ static Ref<PATACommandManager> manager;
+ return manager;
+ }
+
+ public:
+ template <PATAType Command>
+ ErrorOr<const char *> operator()(ULong lba,
+ const char *text = nullptr) noexcept {
+ switch (Command) {
+ case PATAType::kRead28:
+ return ErrorOr<const char *>(ata_read_28(lba));
+ case PATAType::kRead48:
+ return ErrorOr<const char *>(ata_read_48(lba));
+ case PATAType::kWrite28: {
+ if (text) {
+ ata_write_28(lba, text);
+ kcout << "ErrorOr<CT> ata_read<CT, Command>: Write ATA Command... "
+ "(Write28)\n";
+
+ return {};
}
- public:
- template <PATAType Command>
- ErrorOr<const char*> operator()(ULong lba, const char *text = nullptr) noexcept
- {
- switch (Command)
- {
- case PATAType::kRead28:
- return ErrorOr<const char*>(ata_read_28(lba));
- case PATAType::kRead48:
- return ErrorOr<const char*>(ata_read_48(lba));
- case PATAType::kWrite28:
- {
- if (text)
- {
- ata_write_28(lba, text);
- kcout << "ErrorOr<CT> ata_read<CT, Command>: Write ATA Command... "
- "(Write28)\n";
-
- return {};
- }
-
- kcout << "ErrorOr<CT> ata_read<CT, Command>: Bad ATA Command... "
- "(Write28)\n";
-
- return {};
- }
- case PATAType::kWrite48:
- {
- if (text)
- {
- ata_write_48(lba, text);
- kcout << "ErrorOr<CT> ata_read<CT, Command>: Write ATA Command... "
- "(Write48)\n";
-
- return {};
- }
-
- kcout << "ErrorOr<CT> ata_read<CT, Command>: Bad ATA Command... "
- "(Write48)\n";
-
- return {};
- }
- case PATAType::kATAUnknown:
- {
- kcout << "ErrorOr<CT> ata_read<CT, Command>: Unknown ATA Command...\n";
- return {};
- }
- }
-
- return ErrorOr<const char*>(nullptr);
+ kcout << "ErrorOr<CT> ata_read<CT, Command>: Bad ATA Command... "
+ "(Write28)\n";
+
+ return {};
+ }
+ case PATAType::kWrite48: {
+ if (text) {
+ ata_write_48(lba, text);
+ kcout << "ErrorOr<CT> ata_read<CT, Command>: Write ATA Command... "
+ "(Write48)\n";
+
+ return {};
}
- };
-} // namespace HCore
+ kcout << "ErrorOr<CT> ata_read<CT, Command>: Bad ATA Command... "
+ "(Write48)\n";
+
+ return {};
+ }
+ case PATAType::kATAUnknown: {
+ kcout << "ErrorOr<CT> ata_read<CT, Command>: Unknown ATA Command...\n";
+ return {};
+ }
+ }
+
+ return ErrorOr<const char *>(nullptr);
+ }
+};
+} // namespace HCore
diff --git a/Private/StorageKit/NVME.hpp b/Private/StorageKit/NVME.hpp
index 0bfbef52..1b638989 100644
--- a/Private/StorageKit/NVME.hpp
+++ b/Private/StorageKit/NVME.hpp
@@ -6,43 +6,35 @@
*
* ========================================================
*/
-
+
#pragma once
#include <KernelKit/Device.hpp>
#include <NewKit/OwnPtr.hpp>
-namespace HCore
-{
- class NVMEPacket;
-
- class NVMEDevice : public DeviceInterface<NVMEPacket>
- {
- public:
- NVMEDevice(void(*Out)(NVMEPacket outpacket),
- void(*In)(NVMEPacket inpacket),
- void(*Cleanup)(void))
- : DeviceInterface(Out, In), fCleanup(Cleanup)
- {}
-
- virtual ~NVMEDevice()
- {
- if (fCleanup)
- fCleanup();
- }
+namespace HCore {
+class NVMEPacket;
- public:
- NVMEDevice &operator=(const NVMEDevice &) = default;
- NVMEDevice(const NVMEDevice &) = default;
+class NVMEDevice : public DeviceInterface<NVMEPacket> {
+ public:
+ explicit NVMEDevice(void (*Out)(NVMEPacket outpacket),
+ void (*In)(NVMEPacket inpacket), void (*Cleanup)(void))
+ : DeviceInterface(Out, In), fCleanup(Cleanup) {}
- virtual const char *Name() const;
+ virtual ~NVMEDevice() {
+ if (fCleanup) fCleanup();
+ }
- public:
- OwnPtr<NVMEPacket> operator()(UInt32 dmaLow, UInt32 dmaHigh, SizeT sz);
+ public:
+ NVMEDevice &operator=(const NVMEDevice &) = default;
+ NVMEDevice(const NVMEDevice &) = default;
- private:
- void(*fCleanup)(void);
+ virtual const char *Name() const;
+ public:
+ OwnPtr<NVMEPacket> operator()(UInt32 dmaLow, UInt32 dmaHigh, SizeT sz);
- };
-} // namespace HCore
+ private:
+ void (*fCleanup)(void);
+};
+} // namespace HCore
diff --git a/Private/StorageKit/PRDT.hpp b/Private/StorageKit/PRDT.hpp
index d269ee3a..fb7d81ff 100644
--- a/Private/StorageKit/PRDT.hpp
+++ b/Private/StorageKit/PRDT.hpp
@@ -16,7 +16,7 @@
namespace HCore {
class PRDT final {
public:
- PRDT() = delete;
+ explicit PRDT() = delete;
explicit PRDT(const UIntPtr &physAddr);
~PRDT();