Decoupling Architectural-specific Code (#35)
[lunaix-os.git] / lunaix-os / includes / hal / ahci / ahci.h
index 13312a525135ca63fc12406519ba06d0efaf5cea..a9d96c7258b9a089fb31650ecab9ddb3e5ea2546 100644 (file)
@@ -2,6 +2,7 @@
 #define __LUNAIX_AHCI_H
 
 #include "hba.h"
 #define __LUNAIX_AHCI_H
 
 #include "hba.h"
+#include <lunaix/generic/isrm.h>
 
 /*
  * Macro naming rule:
 
 /*
  * Macro naming rule:
@@ -21,6 +22,13 @@ struct ahci_driver
     int id;
 };
 
     int id;
 };
 
+struct ahci_driver_param
+{
+    ptr_t mmio_base;
+    size_t mmio_size;
+    int ahci_iv;
+};
+
 void
 ahci_parse_dev_info(struct hba_device* dev_info, u16_t* data);
 
 void
 ahci_parse_dev_info(struct hba_device* dev_info, u16_t* data);
 
@@ -47,4 +55,10 @@ ahci_try_send(struct hba_port* port, int slot);
 void
 ahci_post(struct hba_port* port, struct hba_cmd_state* state, int slot);
 
 void
 ahci_post(struct hba_port* port, struct hba_cmd_state* state, int slot);
 
+struct ahci_driver*
+ahci_driver_init(struct ahci_driver_param* param);
+
+void
+ahci_hba_isr(const struct hart_state* hstate);
+
 #endif /* __LUNAIX_AHCI_H */
 #endif /* __LUNAIX_AHCI_H */