Kernel - Slight reworks to timer code
[tpg/acess2.git] / Modules / Storage / ATA / common.h
index 18e62a8..891d2bb 100644 (file)
 
 // === CONSTANTS ===
 #define        MAX_ATA_DISKS   4
-#define        SECTOR_SIZE             512
+#define        SECTOR_SIZE     512
+#define        ATA_TIMEOUT     2000    // 2s timeout
+// Needed out of io.c because it's the max for Read/WriteDMA
 #define        MAX_DMA_SECTORS (0x1000 / SECTOR_SIZE)
 
-#define        IDE_PRI_BASE    0x1F0
-#define        IDE_SEC_BASE    0x170
-
-#define        IDE_PRDT_LAST   0x8000
-/**
- \enum HddControls
- \brief Commands to be sent to HDD_CMD
-*/
-enum HddControls {
-       HDD_PIO_R28 = 0x20,
-       HDD_PIO_R48 = 0x24,
-       HDD_DMA_R48 = 0x25,
-       HDD_PIO_W28 = 0x30,
-       HDD_PIO_W48 = 0x34,
-       HDD_DMA_W48 = 0x35,
-       HDD_DMA_R28 = 0xC8,
-       HDD_DMA_W28 = 0xCA,
-};
-
 // === STRUCTURES ===
 typedef struct
 {
@@ -70,8 +53,16 @@ typedef struct
 extern tATA_Disk       gATA_Disks[];
 
 // === FUNCTIONS ===
+// --- Common ---
 extern void    ATA_int_MakePartition(tATA_Partition *Part, int Disk, int Num, Uint64 Start, Uint64 Length);
+
+// --- MBR Parsing ---
+extern void    ATA_ParseMBR(int Disk, tMBR *MBR);
+
+// --- IO Functions ---
+extern int     ATA_SetupIO(void);
+extern Uint64  ATA_GetDiskSize(int Disk);
 extern int     ATA_ReadDMA(Uint8 Disk, Uint64 Address, Uint Count, void *Buffer);
-extern int     ATA_WriteDMA(Uint8 Disk, Uint64 Address, Uint Count, void *Buffer);
+extern int     ATA_WriteDMA(Uint8 Disk, Uint64 Address, Uint Count, const void *Buffer);
 
 #endif

UCC git Repository :: git.ucc.asn.au