summaryrefslogtreecommitdiffhomepage
path: root/Private/NewBoot/BootKit/Arch
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlalelmahrouss@icloud.com>2024-02-02 08:37:13 +0100
committerAmlal El Mahrouss <amlalelmahrouss@icloud.com>2024-02-02 08:37:13 +0100
commit95a887d120b7955bb02f582339d0536696a4cc79 (patch)
tree1a240736a98566fce758b57108a1e623a378c89f /Private/NewBoot/BootKit/Arch
parent7ceadad6f8d24e98098a00531b24fa2c89fb76ad (diff)
Kernel & Bootloader: Improvements and Fix ATA Read and Write problem.
Signed-off-by: Amlal El Mahrouss <amlalelmahrouss@icloud.com>
Diffstat (limited to 'Private/NewBoot/BootKit/Arch')
-rw-r--r--Private/NewBoot/BootKit/Arch/ATA.hxx18
1 files changed, 15 insertions, 3 deletions
diff --git a/Private/NewBoot/BootKit/Arch/ATA.hxx b/Private/NewBoot/BootKit/Arch/ATA.hxx
index 6e692c3d..db92e290 100644
--- a/Private/NewBoot/BootKit/Arch/ATA.hxx
+++ b/Private/NewBoot/BootKit/Arch/ATA.hxx
@@ -113,8 +113,10 @@ using namespace HCore;
Boolean ATAInitDriver(UInt8 Bus, UInt8 Drv);
Void ATAWait(UInt16 IO);
-UInt16 ATAReadLba(UInt32 Lba, UInt8 Bus, Boolean Master);
-Void ATAWriteLba(UInt16 Byte, UInt32 Lba, UInt8 Bus, Boolean Master);
+Void ATAReadLba(UInt32 Lba, UInt8 Bus, Boolean Master, wchar_t* Buf,
+ SizeT Offset);
+Void ATAWriteLba(UInt16 Byte, UInt32 Lba, UInt8 Bus, Boolean Master,
+ wchar_t* Buf, SizeT Offset);
Boolean ATAIsDetected(Void);
class BATADevice final {
@@ -134,11 +136,21 @@ class BATADevice final {
Boolean mMaster{false};
};
+ operator bool() { return ATAIsDetected(); }
+
BATADevice& Read(WideChar*, const SizeT&);
BATADevice& Write(WideChar*, const SizeT&);
- ATATraits& Traits();
+ ATATraits& Leak();
private:
ATATraits mTraits;
};
+
+enum {
+ kATADevicePATA,
+ kATADeviceSATA,
+ kATADevicePATA_PI,
+ kATADeviceSATA_PI,
+ kATADeviceCount,
+};