X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/c4d08ac5260bb26db10bcfd9dc6fd2db60efebe9..bb793d5c6918efee6a86de442463a7c9aaa4ecdd:/lunaix-os/includes/hal/ahci/ahci.h diff --git a/lunaix-os/includes/hal/ahci/ahci.h b/lunaix-os/includes/hal/ahci/ahci.h index c768510..fd22ffa 100644 --- a/lunaix-os/includes/hal/ahci/ahci.h +++ b/lunaix-os/includes/hal/ahci/ahci.h @@ -14,6 +14,13 @@ #define AHCI_HBA_CLASS 0x10601 +struct ahci_driver +{ + struct llist_header ahci_drvs; + struct ahci_hba hba; + int id; +}; + /** * @brief 初始化AHCI与HBA * @@ -22,21 +29,29 @@ void ahci_init(); void -ahci_list_device(); - -unsigned int -ahci_get_port_usage(); - -struct hba_port* -ahci_get_port(unsigned int index); +ahci_parse_dev_info(struct hba_device* dev_info, u16_t* data); void -ahci_parse_dev_info(struct hba_device* dev_info, uint16_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) + * + * @param port + * @param slot + * @return int + */ int ahci_try_send(struct hba_port* port, int slot); +/** + * @brief Issue a HBA command (asynchronized) + * + * @param port + * @param state + * @param slot + */ +void +ahci_post(struct hba_port* port, struct hba_cmd_state* state, int slot); + #endif /* __LUNAIX_AHCI_H */