feat: open(2), close(2), mkdir(2) and readdir(2) syscall
[lunaix-os.git] / lunaix-os / includes / hal / ahci / sata.h
index f898d322add8afb22ac9065552bce929f9891905..dc934482c4e4799d95e95a56f3732f5f4c8ba46b 100644 (file)
 #define ATA_IDENTIFY_DEVICE 0xec
 #define ATA_IDENTIFY_PAKCET_DEVICE 0xa1
 #define ATA_PACKET 0xa0
-#define ATA_READ_DMA_EXT 0xc8
-#define ATA_READ_DMA 0x25
-#define ATA_WRITE_DMA_EXT 0xca
-#define ATA_WRITE_DMA 0x35
+#define ATA_READ_DMA_EXT 0x25
+#define ATA_READ_DMA 0xc8
+#define ATA_WRITE_DMA_EXT 0x35
+#define ATA_WRITE_DMA 0xca
+
+#define MAX_RETRY 2
 
 struct sata_fis_head
 {
@@ -31,7 +33,7 @@ struct sata_reg_fis
     uint8_t lba0, lba8, lba16;
     uint8_t dev;
     uint8_t lba24, lba32, lba40;
-    uint8_t reserved1;
+    uint8_t feature;
 
     uint16_t count;
 
@@ -52,13 +54,13 @@ sata_create_fis(struct sata_reg_fis* cmd_fis,
                 uint16_t sector_count);
 
 int
-sata_read_buffer(struct hba_port* port,
+sata_read_buffer(struct hba_device* dev,
                  uint64_t lba,
                  void* buffer,
                  uint32_t size);
 
 int
-sata_write_buffer(struct hba_port* port,
+sata_write_buffer(struct hba_device* dev,
                   uint64_t lba,
                   void* buffer,
                   uint32_t size);