X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/df61e9d0fec3d5e75820e27e7a2459d132364585..4b61c735d6ab7cb250c9a170b87784746476434f:/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 ec9a64f..2ed135a 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,12 +29,29 @@ void ahci_init(); void -ahci_list_device(); +ahci_parse_dev_info(struct hba_device* dev_info, uint16_t* data); + +void +ahci_parsestr(char* str, uint16_t* reg_start, int size_word); -unsigned int -ahci_get_port_usage(); +/** + * @brief Issue a HBA command (synchronized) + * + * @param port + * @param slot + * @return int + */ +int +ahci_try_send(struct hba_port* port, int slot); -struct hba_port* -ahci_get_port(unsigned int index); +/** + * @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 */