X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FStorage%2FAHCI%2Fsata.h;h=7730c7532e50e5294b79b3483d19d7a8009f3595;hb=c00f6ece0ff9a1ad2d07691122070d52d4397d78;hp=8a30085e5defb2c60a0b14efbaf3f370e6bb28f7;hpb=3304adea917005817c703b3ec2dac35cfe82cc0f;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/Storage/AHCI/sata.h b/KernelLand/Modules/Storage/AHCI/sata.h index 8a30085e..7730c753 100644 --- a/KernelLand/Modules/Storage/AHCI/sata.h +++ b/KernelLand/Modules/Storage/AHCI/sata.h @@ -8,10 +8,14 @@ #ifndef _AHCI__SATA_H_ #define _AHCI__SATA_H_ +#include "ata.h" + enum eSATA_FIS_Types { + SATA_FIS_H2DRegister = 0x27, SATA_FIS_D2HRegister = 0x34, SATA_FIS_DMASetup = 0x41, + SATA_FIS_Data = 0x46, SATA_FIS_PIOSetup = 0x5F, }; @@ -27,6 +31,12 @@ struct sSATA_FIS_DMASetup Uint32 DMATransferCount; Uint32 _resvd[1]; } PACKED; +struct sSATA_FIS_Data +{ + Uint8 Type; // = 0x46 + Uint8 _resvd[3]; + Uint32 Data[1]; +} PACKED; struct sSATA_FIS_PIOSetup { Uint8 Type; // = 0x5F @@ -48,6 +58,26 @@ struct sSATA_FIS_PIOSetup Uint16 TransferCount; Uint8 _resvd3[2]; } PACKED; +struct sSATA_FIS_H2DRegister +{ + Uint8 Type; // = 0x27 + Uint8 Flags; // [7]: Update to command register + Uint8 Command; + Uint8 Features; + Uint8 SectorNum; + Uint8 CylLow; + Uint8 CylHigh; + Uint8 Dev_Head; + Uint8 SectorNumExp; + Uint8 CylLowExp; + Uint8 CylHighExp; + Uint8 FeaturesExp; + Uint8 SectorCount; + Uint8 SectorCountExp; + Uint8 _resvd1; + Uint8 Control; + Uint8 _resvd2[4]; +} PACKED; struct sSATA_FIS_D2HRegister { Uint8 Type; // = 0x34