diff options
| author | amlal <amlal@el-mahrouss-logic.com> | 2024-03-22 10:09:51 +0100 |
|---|---|---|
| committer | amlal <amlal@el-mahrouss-logic.com> | 2024-03-22 10:09:51 +0100 |
| commit | 71ead709ab3e30a1b137a5b9215bf74c7bed9d04 (patch) | |
| tree | 55ded35496cc7054c0975fd9364f8b2513ac0531 /Private/Builtins | |
| parent | 5df4daf0619b95131ea99110ee2e8913012b6134 (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.hxx | 29 |
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 |
