summaryrefslogtreecommitdiffhomepage
path: root/Private/Builtins
diff options
context:
space:
mode:
authoramlal <amlal@el-mahrouss-logic.com>2024-03-22 10:09:51 +0100
committeramlal <amlal@el-mahrouss-logic.com>2024-03-22 10:09:51 +0100
commit71ead709ab3e30a1b137a5b9215bf74c7bed9d04 (patch)
tree55ded35496cc7054c0975fd9364f8b2513ac0531 /Private/Builtins
parent5df4daf0619b95131ea99110ee2e8913012b6134 (diff)
HCR-14: Implement ATA for HCoreKrnl.exe.
[TODO]: Need to also implement a ATADeviceInterface class. Signed-off-by: amlal <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Private/Builtins')
-rw-r--r--Private/Builtins/ATA/Defines.hxx29
1 files changed, 27 insertions, 2 deletions
diff --git a/Private/Builtins/ATA/Defines.hxx b/Private/Builtins/ATA/Defines.hxx
index 4ea49dc9..f0f019e8 100644
--- a/Private/Builtins/ATA/Defines.hxx
+++ b/Private/Builtins/ATA/Defines.hxx
@@ -16,8 +16,6 @@
#include <CompilerKit/CompilerKit.hxx>
#include <NewKit/Defines.hpp>
-using namespace HCore;
-
// Status register
#define ATA_SR_BSY 0x80
#define ATA_SR_DRDY 0x40
@@ -118,3 +116,30 @@ using namespace HCore;
#define ATA_COMMAND(x) (x + 7)
#define kATASectorSize 512
+
+enum {
+ kATADevicePATA,
+ kATADeviceSATA,
+ kATADevicePATA_PI,
+ kATADeviceSATA_PI,
+ kATADeviceCount,
+};
+
+#ifdef __KERNEL__
+
+HCore::Boolean drv_ata_init(HCore::UInt16 Bus, HCore::UInt8 Drive, HCore::UInt16& OutBus,
+ HCore::UInt8& OutMaster);
+
+HCore::Boolean drv_ata_detected(HCore::Void);
+
+HCore::Void drv_ata_select(HCore::UInt16 Bus);
+
+HCore::Boolean drv_ata_wait_io(HCore::UInt16 IO);
+
+HCore::Void drv_ata_read(HCore::UInt32 Lba, HCore::UInt16 IO, HCore::UInt8 Master, HCore::Char* Buf,
+ HCore::SizeT SectorSz, HCore::SizeT Size);
+
+HCore::Void drv_ata_write(HCore::UInt32 Lba, HCore::UInt16 IO, HCore::UInt8 Master, HCore::Char* Buf,
+ HCore::SizeT SectorSz, HCore::SizeT Size);
+
+#endif // ifdef __KERNEL__ \ No newline at end of file