X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FStorage%2FAHCI%2Fahci.h;h=bc822d5ec3c14f523aaa9ec6367a1b002ce2e6a7;hb=a580a34d1314a85534ae51a2b62114127fe03c3b;hp=3965295658b61e2ae9e0f4e5c62ec3e53397fbee;hpb=9c7df214d8790f5cfebb32824f06f4844b4e69dd;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/Storage/AHCI/ahci.h b/KernelLand/Modules/Storage/AHCI/ahci.h index 39652956..bc822d5e 100644 --- a/KernelLand/Modules/Storage/AHCI/ahci.h +++ b/KernelLand/Modules/Storage/AHCI/ahci.h @@ -9,16 +9,38 @@ #define _AHCI__AHCI_H_ #include "ahci_hw.h" +#include +#include +#include typedef struct sAHCI_Ctrlr tAHCI_Ctrlr; +typedef struct sAHCI_Port tAHCI_Port; struct sAHCI_Ctrlr { - int PortCount; - int IRQ; tPAddr PMemBase; - struct sAHCI_MemSpace *MMIO; + tAHCI_MemSpace *MMIO; + + int NCS; + + int PortCount; + tAHCI_Port *Ports; +}; + +struct sAHCI_Port +{ + int Idx; // Hardware index + volatile struct s_port *MMIO; + bool bHotplug; + bool bPresent; + + tSemaphore CommandListSem; + volatile struct sAHCI_CmdHdr *CmdList; + + volatile struct sAHCI_RcvdFIS *RcvdFIS; + + void *LVMHandle; }; #endif