X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/a5338b60e111972364a8bc6f07011c6defd213d2..63ba0036aaf8ec77590db47d936942e78ff3ed6f:/lunaix-os/includes/hal/ahci/hba.h diff --git a/lunaix-os/includes/hal/ahci/hba.h b/lunaix-os/includes/hal/ahci/hba.h index c868c6f..8203ab5 100644 --- a/lunaix-os/includes/hal/ahci/hba.h +++ b/lunaix-os/includes/hal/ahci/hba.h @@ -1,7 +1,7 @@ #ifndef __LUNAIX_HBA_H #define __LUNAIX_HBA_H -#include +#include #define HBA_RCAP 0 #define HBA_RGHC 1 @@ -33,6 +33,8 @@ #define HBA_PxINTR_DMA (1 << 2) #define HBA_PxINTR_DHR (1) #define HBA_PxINTR_DPS (1 << 5) +#define HBA_PxINTR_TFEE (1 << 30) +#define HBA_PxINTR_IFE (1 << 27) #define HBA_PxTFD_ERR (1) #define HBA_PxTFD_BSY (1 << 7) #define HBA_PxTFD_DRQ (1 << 3) @@ -45,6 +47,8 @@ #define HBA_RPxSSTS_IF(x) (((x) >> 4) & 0xf) #define HBA_RPxSSTS_PHYSTATE(x) ((x)&0xf) +#define hba_clear_reg(reg) (reg) = -1 + #define HBA_DEV_SIG_ATAPI 0xeb140101 #define HBA_DEV_SIG_ATA 0x00000101 @@ -100,8 +104,13 @@ struct hba_device uint32_t block_size; uint64_t wwn; uint8_t cbd_size; - uint8_t last_error; - uint8_t last_status; + struct + { + uint8_t sense_key; + uint8_t error; + uint8_t status; + uint8_t reserve; + } last_result; uint32_t alignment_offset; uint32_t block_per_sec; uint32_t capabilities;