1 #ifndef __LUNAIX_AHCI_H
2 #define __LUNAIX_AHCI_H
5 #include <asm-generic/isrm.h>
12 * e.g. HBA_RPxCLB is Register PxCLB
14 * All registers offset are 0 based index of a DWORD array
17 #define AHCI_HBA_CLASS 0x10601
21 struct llist_header ahci_drvs;
26 struct ahci_driver_param
34 ahci_parse_dev_info(struct hba_device* dev_info, u16_t* data);
37 ahci_parsestr(char* str, u16_t* reg_start, int size_word);
40 * @brief Issue a HBA command (synchronized)
47 ahci_try_send(struct hba_port* port, int slot);
50 * @brief Issue a HBA command (asynchronized)
57 ahci_post(struct hba_port* port, struct hba_cmd_state* state, int slot);
60 ahci_driver_init(struct ahci_driver_param* param);
63 ahci_hba_isr(irq_t irq, const struct hart_state* hstate);
65 #endif /* __LUNAIX_AHCI_H */