#define __LUNAIX_AHCI_H
#include "hba.h"
+#include <hal/irq.h>
/*
* Macro naming rule:
int id;
};
-/**
- * @brief 初始化AHCI与HBA
- *
- */
-void
-ahci_init();
+struct ahci_driver_param
+{
+ ptr_t mmio_base;
+ size_t mmio_size;
+ irq_t irq;
+};
void
-ahci_parse_dev_info(struct hba_device* dev_info, uint16_t* data);
+ahci_parse_dev_info(struct hba_device* dev_info, u16_t* data);
void
-ahci_parsestr(char* str, uint16_t* reg_start, int size_word);
+ahci_parsestr(char* str, u16_t* reg_start, int size_word);
/**
* @brief Issue a HBA command (synchronized)
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(irq_t irq, const struct hart_state* hstate);
+
#endif /* __LUNAIX_AHCI_H */