22#define kAHCISectorSize (512)
216#define kSATAGHC_AE (31)
#define ATTRIBUTE(X)
Definition macros.h:44
Kernel::Void drv_std_write(Kernel::UInt64 lba, Kernel::Char *buf, Kernel::SizeT sector_sz, Kernel::SizeT buf_sz)
Write to AHCI disk.
Kernel::Boolean drv_std_init(Kernel::UInt16 &PortsImplemented)
Initializes an AHCI disk.
Kernel::SizeT drv_std_get_sector_count()
Gets the sector count from AHCI disk.
@ kFISTypeBIST
Definition AHCI.h:36
@ kFISTypeRegD2H
Definition AHCI.h:32
@ kFISTypeDMASetup
Definition AHCI.h:34
@ kFISTypePIOSetup
Definition AHCI.h:37
@ kFISTypeDevBits
Definition AHCI.h:38
@ kFISTypeRegH2D
Definition AHCI.h:31
@ kFISTypeDMAAct
Definition AHCI.h:33
@ kFISTypeData
Definition AHCI.h:35
HbaMem * HbaMemRef
Definition AHCI.h:261
@ kAHCICmdWriteDmaEx
Definition AHCI.h:46
@ kAHCICmdReadDma
Definition AHCI.h:43
@ kAHCICmdReadDmaEx
Definition AHCI.h:44
@ kAHCICmdWriteDma
Definition AHCI.h:45
@ kAHCICmdIdentify
Definition AHCI.h:42
Kernel::Void drv_std_read(Kernel::UInt64 lba, Kernel::Char *buf, Kernel::SizeT sector_sz, Kernel::SizeT buf_sz)
Read from AHCI disk.
Kernel::Bool drv_is_ready(void)
Checks if the drive has completed the command.
Kernel::Boolean drv_std_detected(Kernel::Void)
Kernel::SizeT drv_std_get_size()
Gets the AHCI disk size.
char Char
Definition Defines.h:51
void Void
Definition Defines.h:85
unsigned char UInt8
Definition Defines.h:53
__SIZE_TYPE__ SizeT
Definition Defines.h:58
unsigned int UInt32
Definition Defines.h:44
unsigned short UInt16
Definition Defines.h:40
bool Boolean
Definition Defines.h:49
__UINT64_TYPE__ UInt64
Definition Defines.h:48
bool Bool
Definition Defines.h:50
Kernel::UInt32 Data[1]
Definition AHCI.h:125
Kernel::UInt8 FisType
Definition AHCI.h:117
Kernel::UInt8 Reserved0
Definition AHCI.h:120
Kernel::UInt8 Reserved1[2]
Definition AHCI.h:122
Kernel::UInt8 PortMul
Definition AHCI.h:119
Kernel::UInt8 StatusLow
Definition AHCI.h:203
Kernel::UInt8 Reserved0
Definition AHCI.h:198
Kernel::UInt8 R1
Definition AHCI.h:204
Kernel::UInt8 R0
Definition AHCI.h:199
Kernel::UInt32 Act
Definition AHCI.h:211
Kernel::UInt8 IE
Definition AHCI.h:200
Kernel::UInt8 StatusHigh
Definition AHCI.h:205
Kernel::UInt8 Error
Definition AHCI.h:208
Kernel::UInt8 R2
Definition AHCI.h:207
Kernel::UInt8 FisType
Definition AHCI.h:196
Kernel::UInt8 N
Definition AHCI.h:201
Kernel::UInt32 DmabufOffset
Definition AHCI.h:185
Kernel::UInt8 DTD
Definition AHCI.h:170
Kernel::UInt32 Reserved3
Definition AHCI.h:191
Kernel::UInt8 PortMul
Definition AHCI.h:168
Kernel::UInt8 AutoEnable
Definition AHCI.h:172
Kernel::UInt8 Reserved0
Definition AHCI.h:169
Kernel::UInt32 TransferCount
Definition AHCI.h:188
Kernel::UInt8 IE
Definition AHCI.h:171
Kernel::UInt8 Reserved1[2]
Definition AHCI.h:174
Kernel::UInt8 FisType
Definition AHCI.h:166
volatile Kernel::UInt64 DmaBufferId
Definition AHCI.h:177
Kernel::UInt32 Rsvd
Definition AHCI.h:182
Kernel::UInt8 Lba4
Definition AHCI.h:149
Kernel::UInt8 CountLow
Definition AHCI.h:154
Kernel::UInt8 Rsv4[2]
Definition AHCI.h:161
Kernel::UInt8 FisType
Definition AHCI.h:130
Kernel::UInt8 Rsv2
Definition AHCI.h:151
Kernel::UInt8 Reserved1
Definition AHCI.h:136
Kernel::UInt8 Device
Definition AHCI.h:145
Kernel::UInt8 DTD
Definition AHCI.h:134
Kernel::UInt8 Lba1
Definition AHCI.h:143
Kernel::UInt8 CountHigh
Definition AHCI.h:155
Kernel::UInt8 Status
Definition AHCI.h:138
Kernel::UInt8 Lba5
Definition AHCI.h:150
Kernel::UInt8 Error
Definition AHCI.h:139
Kernel::UInt8 Lba3
Definition AHCI.h:148
Kernel::UInt8 Lba0
Definition AHCI.h:142
Kernel::UInt8 Rsv3
Definition AHCI.h:156
Kernel::UInt8 Lba2
Definition AHCI.h:144
Kernel::UInt8 PortMul
Definition AHCI.h:132
Kernel::UInt8 Reserved0
Definition AHCI.h:133
Kernel::UInt8 IE
Definition AHCI.h:135
Kernel::UInt8 EStatus
Definition AHCI.h:157
Kernel::UInt16 TranferCount
Definition AHCI.h:160
Kernel::UInt8 Rsv2
Definition AHCI.h:104
Kernel::UInt8 Rsv3[2]
Definition AHCI.h:109
Kernel::UInt8 CountLow
Definition AHCI.h:107
Kernel::UInt8 Lba0
Definition AHCI.h:95
Kernel::UInt8 PortMul
Definition AHCI.h:86
Kernel::UInt8 Lba4
Definition AHCI.h:102
Kernel::UInt8 IE
Definition AHCI.h:88
Kernel::UInt8 Reserved1
Definition AHCI.h:89
Kernel::UInt8 Lba2
Definition AHCI.h:97
Kernel::UInt8 Device
Definition AHCI.h:98
Kernel::UInt8 Error
Definition AHCI.h:92
Kernel::UInt8 Status
Definition AHCI.h:91
Kernel::UInt8 FisType
Definition AHCI.h:84
Kernel::UInt8 Rsv4[4]
Definition AHCI.h:112
Kernel::UInt8 Reserved0
Definition AHCI.h:87
Kernel::UInt8 Lba3
Definition AHCI.h:101
Kernel::UInt8 Lba5
Definition AHCI.h:103
Kernel::UInt8 Lba1
Definition AHCI.h:96
Kernel::UInt8 CountHigh
Definition AHCI.h:108
Kernel::UInt8 Command
Definition AHCI.h:57
Kernel::UInt8 Lba4
Definition AHCI.h:68
Kernel::UInt8 Icc
Definition AHCI.h:75
Kernel::UInt8 Lba0
Definition AHCI.h:61
Kernel::UInt8 Lba2
Definition AHCI.h:63
Kernel::UInt8 FisType
Definition AHCI.h:51
Kernel::UInt8 Reserved0
Definition AHCI.h:54
Kernel::UInt8 Lba3
Definition AHCI.h:67
Kernel::UInt8 Lba1
Definition AHCI.h:62
Kernel::UInt8 PortMul
Definition AHCI.h:53
Kernel::UInt8 FeatureLow
Definition AHCI.h:58
Kernel::UInt8 CmdOrCtrl
Definition AHCI.h:55
Kernel::UInt8 Reserved1[4]
Definition AHCI.h:79
Kernel::UInt8 Lba5
Definition AHCI.h:69
Kernel::UInt8 CountHigh
Definition AHCI.h:74
Kernel::UInt8 FeatureHigh
Definition AHCI.h:70
Kernel::UInt8 Control
Definition AHCI.h:76
Kernel::UInt8 CountLow
Definition AHCI.h:73
Kernel::UInt8 Device
Definition AHCI.h:64
Kernel::UInt8 Rsv[48]
Definition AHCI.h:322
struct HbaPrdtEntry Prdt[1]
Definition AHCI.h:323
Kernel::UInt8 Acmd[16]
Definition AHCI.h:321
Kernel::UInt8 Cfis[64]
Definition AHCI.h:320
FisPioSetup Psfis
Definition AHCI.h:296
FisRegD2H Rfis
Definition AHCI.h:299
Kernel::UInt8 Pad0[4]
Definition AHCI.h:294
FisDevBits Sdbfis
Definition AHCI.h:302
Kernel::UInt8 Pad1[12]
Definition AHCI.h:297
Kernel::UInt8 Pad2[4]
Definition AHCI.h:300
Kernel::UInt8 Ufis[64]
Definition AHCI.h:304
Kernel::UInt8 Rsv[0x100 - 0xA0]
Definition AHCI.h:306
FisDmaSetup Dsfis
Definition AHCI.h:293
Kernel::UInt32 Cap
Definition AHCI.h:243
HbaPort Ports[1]
Definition AHCI.h:258
Kernel::UInt32 Ghc
Definition AHCI.h:244
Kernel::UInt32 Is
Definition AHCI.h:245
Kernel::UInt32 Em_loc
Definition AHCI.h:250
Kernel::UInt32 Ccc_pts
Definition AHCI.h:249
Kernel::UInt8 Vendor[0x100 - 0xA0]
Definition AHCI.h:256
Kernel::UInt32 Cap2
Definition AHCI.h:252
Kernel::UInt8 Resv0[0xA0 - 0x2C]
Definition AHCI.h:255
Kernel::UInt32 Ccc_ctl
Definition AHCI.h:248
Kernel::UInt32 Bohc
Definition AHCI.h:253
Kernel::UInt32 Vs
Definition AHCI.h:247
Kernel::UInt32 Em_ctl
Definition AHCI.h:251
Kernel::UInt32 Pi
Definition AHCI.h:246
ifndef kSATAGHC_AE
Definition AHCI.h:219
Kernel::UInt32 Reserved1[11]
Definition AHCI.h:237
Kernel::UInt32 Ie
Definition AHCI.h:225
Kernel::UInt32 Sntf
Definition AHCI.h:235
Kernel::UInt32 Cmd
Definition AHCI.h:226
Kernel::UInt32 Fb
Definition AHCI.h:222
Kernel::UInt32 Clb
Definition AHCI.h:220
Kernel::UInt32 Vendor[4]
Definition AHCI.h:238
Kernel::UInt32 Sctl
Definition AHCI.h:231
Kernel::UInt32 Ssts
Definition AHCI.h:230
Kernel::UInt32 Sact
Definition AHCI.h:233
Kernel::UInt32 Ci
Definition AHCI.h:234
Kernel::UInt32 Is
Definition AHCI.h:224
Kernel::UInt32 Clbu
Definition AHCI.h:221
Kernel::UInt32 Serr
Definition AHCI.h:232
Kernel::UInt32 Sig
Definition AHCI.h:229
Kernel::UInt32 Tfd
Definition AHCI.h:228
Kernel::UInt32 Fbs
Definition AHCI.h:236
Kernel::UInt32 Reserved0
Definition AHCI.h:227
Kernel::UInt32 Fbu
Definition AHCI.h:223
Kernel::UInt32 Dbau
Definition AHCI.h:311
Kernel::UInt32 Reserved0
Definition AHCI.h:312
Kernel::UInt32 Dbc
Definition AHCI.h:314
Kernel::UInt32 Dba
Definition AHCI.h:310
Kernel::UInt32 Reserved1
Definition AHCI.h:315
Kernel::UInt32 Ie
Definition AHCI.h:316