X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FStorage%2FAHCI%2Fahci.h;h=81b6059e3dc17a799d69f79a77df7483e7fe250e;hb=c00f6ece0ff9a1ad2d07691122070d52d4397d78;hp=bc822d5ec3c14f523aaa9ec6367a1b002ce2e6a7;hpb=10b384da656541a3c32e3f86bc5c525737c2de38;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/Storage/AHCI/ahci.h b/KernelLand/Modules/Storage/AHCI/ahci.h index bc822d5e..81b6059e 100644 --- a/KernelLand/Modules/Storage/AHCI/ahci.h +++ b/KernelLand/Modules/Storage/AHCI/ahci.h @@ -11,16 +11,22 @@ #include "ahci_hw.h" #include #include +#include #include +#include typedef struct sAHCI_Ctrlr tAHCI_Ctrlr; typedef struct sAHCI_Port tAHCI_Port; struct sAHCI_Ctrlr { + int ID; // Controller ID + int IRQ; tPAddr PMemBase; tAHCI_MemSpace *MMIO; + + bool Supports64Bit; int NCS; @@ -31,16 +37,25 @@ struct sAHCI_Ctrlr struct sAHCI_Port { int Idx; // Hardware index + tAHCI_Ctrlr *Ctrlr; volatile struct s_port *MMIO; - bool bHotplug; - bool bPresent; - tSemaphore CommandListSem; - volatile struct sAHCI_CmdHdr *CmdList; + tMutex lCommandSlots; + Uint32 IssuedCommands; + volatile struct sAHCI_CmdHdr *CmdList; + struct sAHCI_CmdTable *CommandTables[32]; + tThread *CommandThreads[32]; + volatile struct sAHCI_RcvdFIS *RcvdFIS; - volatile struct sAHCI_RcvdFIS *RcvdFIS; + tSemaphore InterruptSem; + Uint32 LastIS; + + bool bHotplug; + bool bPresent; + bool bATAPI; void *LVMHandle; + Uint64 SectorCount; }; #endif