Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724#ifndef _NTATA_#define _NTATA_
#include <pshpack1.h>typedef struct _IDENTIFY_DEVICE_DATA { struct { USHORT Reserved1 :1; USHORT Retired3 :1; USHORT ResponseIncomplete :1; USHORT Retired2 :3; USHORT FixedDevice :1; USHORT RemovableMedia :1; USHORT Retired1 :7; USHORT DeviceType :1; } GeneralConfiguration; USHORT NumCylinders; USHORT SpecificConfiguration; USHORT NumHeads; USHORT Retired1[2]; USHORT NumSectorsPerTrack; USHORT VendorUnique1[3]; UCHAR SerialNumber[20]; USHORT Retired2[2]; USHORT Obsolete1; UCHAR FirmwareRevision[8]; UCHAR ModelNumber[40]; UCHAR MaximumBlockTransfer; UCHAR VendorUnique2; struct { USHORT FeatureSupported :1; USHORT Reserved :15; } TrustedComputing; struct { UCHAR CurrentLongPhysicalSectorAlignment :2; UCHAR ReservedByte49 :6; UCHAR DmaSupported :1; UCHAR LbaSupported :1; UCHAR IordyDisable :1; UCHAR IordySupported :1; UCHAR Reserved1 :1; UCHAR StandybyTimerSupport :1; UCHAR Reserved2 :2; USHORT ReservedWord50; } Capabilities; USHORT ObsoleteWords51[2]; USHORT TranslationFieldsValid :3; USHORT Reserved3 :5; USHORT FreeFallControlSensitivity :8; USHORT NumberOfCurrentCylinders; USHORT NumberOfCurrentHeads; USHORT CurrentSectorsPerTrack; ULONG CurrentSectorCapacity; UCHAR CurrentMultiSectorSetting; UCHAR MultiSectorSettingValid :1; UCHAR ReservedByte59 :3; UCHAR SanitizeFeatureSupported :1; UCHAR CryptoScrambleExtCommandSupported :1; UCHAR OverwriteExtCommandSupported :1; UCHAR BlockEraseExtCommandSupported :1; ULONG UserAddressableSectors; USHORT ObsoleteWord62; USHORT MultiWordDMASupport :8; USHORT MultiWordDMAActive :8; USHORT AdvancedPIOModes :8; USHORT ReservedByte64 :8; USHORT MinimumMWXferCycleTime; USHORT RecommendedMWXferCycleTime; USHORT MinimumPIOCycleTime; USHORT MinimumPIOCycleTimeIORDY; struct { USHORT ZonedCapabilities :2; USHORT NonVolatileWriteCache :1; USHORT ExtendedUserAddressableSectorsSupported :1; USHORT DeviceEncryptsAllUserData :1; USHORT ReadZeroAfterTrimSupported :1; USHORT Optional28BitCommandsSupported :1; USHORT IEEE1667 :1; USHORT DownloadMicrocodeDmaSupported :1; USHORT SetMaxSetPasswordUnlockDmaSupported :1; USHORT WriteBufferDmaSupported :1; USHORT ReadBufferDmaSupported :1; USHORT DeviceConfigIdentifySetDmaSupported :1; USHORT LPSAERCSupported :1; USHORT DeterministicReadAfterTrimSupported :1; USHORT CFastSpecSupported :1; } AdditionalSupported; USHORT ReservedWords70[5]; USHORT QueueDepth :5; USHORT ReservedWord75 :11; struct { USHORT Reserved0 :1; USHORT SataGen1 :1; USHORT SataGen2 :1; USHORT SataGen3 :1; USHORT Reserved1 :4; USHORT NCQ :1; USHORT HIPM :1; USHORT PhyEvents :1; USHORT NcqUnload :1; USHORT NcqPriority :1; USHORT HostAutoPS :1; USHORT DeviceAutoPS :1; USHORT ReadLogDMA :1; USHORT Reserved2 :1; USHORT CurrentSpeed :3; USHORT NcqStreaming :1; USHORT NcqQueueMgmt :1; USHORT NcqReceiveSend :1; USHORT DEVSLPtoReducedPwrState :1; USHORT Reserved3 :8; } SerialAtaCapabilities; struct { USHORT Reserved0 :1; USHORT NonZeroOffsets :1; USHORT DmaSetupAutoActivate :1; USHORT DIPM :1; USHORT InOrderData :1; USHORT HardwareFeatureControl :1; USHORT SoftwareSettingsPreservation :1; USHORT NCQAutosense :1; USHORT DEVSLP :1; USHORT HybridInformation :1; USHORT Reserved1 :6; } SerialAtaFeaturesSupported; struct { USHORT Reserved0 :1; USHORT NonZeroOffsets :1; USHORT DmaSetupAutoActivate :1; USHORT DIPM :1; USHORT InOrderData :1; USHORT HardwareFeatureControl :1; USHORT SoftwareSettingsPreservation :1; USHORT DeviceAutoPS :1; USHORT DEVSLP :1; USHORT HybridInformation :1; USHORT Reserved1 :6; } SerialAtaFeaturesEnabled; USHORT MajorRevision; USHORT MinorRevision; struct { USHORT SmartCommands :1; USHORT SecurityMode :1; USHORT RemovableMediaFeature :1; USHORT PowerManagement :1; USHORT Reserved1 :1; USHORT WriteCache :1; USHORT LookAhead :1; USHORT ReleaseInterrupt :1; USHORT ServiceInterrupt :1; USHORT DeviceReset :1; USHORT HostProtectedArea :1; USHORT Obsolete1 :1; USHORT WriteBuffer :1; USHORT ReadBuffer :1; USHORT Nop :1; USHORT Obsolete2 :1; USHORT DownloadMicrocode :1; USHORT DmaQueued :1; USHORT Cfa :1; USHORT AdvancedPm :1; USHORT Msn :1; USHORT PowerUpInStandby :1; USHORT ManualPowerUp :1; USHORT Reserved2 :1; USHORT SetMax :1; USHORT Acoustics :1; USHORT BigLba :1; USHORT DeviceConfigOverlay :1; USHORT FlushCache :1; USHORT FlushCacheExt :1; USHORT WordValid83 :2; USHORT SmartErrorLog :1; USHORT SmartSelfTest :1; USHORT MediaSerialNumber :1; USHORT MediaCardPassThrough :1; USHORT StreamingFeature :1; USHORT GpLogging :1; USHORT WriteFua :1; USHORT WriteQueuedFua :1; USHORT WWN64Bit :1; USHORT URGReadStream :1; USHORT URGWriteStream :1; USHORT ReservedForTechReport :2; USHORT IdleWithUnloadFeature :1; USHORT WordValid :2; } CommandSetSupport; struct { USHORT SmartCommands :1; USHORT SecurityMode :1; USHORT RemovableMediaFeature :1; USHORT PowerManagement :1; USHORT Reserved1 :1; USHORT WriteCache :1; USHORT LookAhead :1; USHORT ReleaseInterrupt :1; USHORT ServiceInterrupt :1; USHORT DeviceReset :1; USHORT HostProtectedArea :1; USHORT Obsolete1 :1; USHORT WriteBuffer :1; USHORT ReadBuffer :1; USHORT Nop :1; USHORT Obsolete2 :1; USHORT DownloadMicrocode :1; USHORT DmaQueued :1; USHORT Cfa :1; USHORT AdvancedPm :1; USHORT Msn :1; USHORT PowerUpInStandby :1; USHORT ManualPowerUp :1; USHORT Reserved2 :1; USHORT SetMax :1; USHORT Acoustics :1; USHORT BigLba :1; USHORT DeviceConfigOverlay :1; USHORT FlushCache :1; USHORT FlushCacheExt :1; USHORT Resrved3 :1; USHORT Words119_120Valid :1; USHORT SmartErrorLog :1; USHORT SmartSelfTest :1; USHORT MediaSerialNumber :1; USHORT MediaCardPassThrough :1; USHORT StreamingFeature :1; USHORT GpLogging :1; USHORT WriteFua :1; USHORT WriteQueuedFua :1; USHORT WWN64Bit :1; USHORT URGReadStream :1; USHORT URGWriteStream :1; USHORT ReservedForTechReport :2; USHORT IdleWithUnloadFeature :1; USHORT Reserved4 :2; } CommandSetActive; USHORT UltraDMASupport :8; USHORT UltraDMAActive :8; struct { USHORT TimeRequired :15; USHORT ExtendedTimeReported :1; } NormalSecurityEraseUnit; struct { USHORT TimeRequired :15; USHORT ExtendedTimeReported :1; } EnhancedSecurityEraseUnit; USHORT CurrentAPMLevel :8; USHORT ReservedWord91 :8; USHORT MasterPasswordID; USHORT HardwareResetResult; USHORT CurrentAcousticValue :8; USHORT RecommendedAcousticValue :8; USHORT StreamMinRequestSize; USHORT StreamingTransferTimeDMA; USHORT StreamingAccessLatencyDMAPIO; ULONG StreamingPerfGranularity; ULONG Max48BitLBA[2]; USHORT StreamingTransferTime; USHORT DsmCap; struct { USHORT LogicalSectorsPerPhysicalSector :4; USHORT Reserved0 :8; USHORT LogicalSectorLongerThan256Words :1; USHORT MultipleLogicalSectorsPerPhysicalSector :1; USHORT Reserved1 :2; } PhysicalLogicalSectorSize; USHORT InterSeekDelay; USHORT WorldWideName[4]; USHORT ReservedForWorldWideName128[4]; USHORT ReservedForTlcTechnicalReport; USHORT WordsPerLogicalSector[2]; struct { USHORT ReservedForDrqTechnicalReport :1; USHORT WriteReadVerify :1; USHORT WriteUncorrectableExt :1; USHORT ReadWriteLogDmaExt :1; USHORT DownloadMicrocodeMode3 :1; USHORT FreefallControl :1; USHORT SenseDataReporting :1; USHORT ExtendedPowerConditions :1; USHORT Reserved0 :6; USHORT WordValid :2; } CommandSetSupportExt; struct { USHORT ReservedForDrqTechnicalReport :1; USHORT WriteReadVerify :1; USHORT WriteUncorrectableExt :1; USHORT ReadWriteLogDmaExt :1; USHORT DownloadMicrocodeMode3 :1; USHORT FreefallControl :1; USHORT SenseDataReporting :1; USHORT ExtendedPowerConditions :1; USHORT Reserved0 :6; USHORT Reserved1 :2; } CommandSetActiveExt; USHORT ReservedForExpandedSupportandActive[6]; USHORT MsnSupport :2; USHORT ReservedWord127 :14; struct { USHORT SecuritySupported :1; USHORT SecurityEnabled :1; USHORT SecurityLocked :1; USHORT SecurityFrozen :1; USHORT SecurityCountExpired :1; USHORT EnhancedSecurityEraseSupported :1; USHORT Reserved0 :2; USHORT SecurityLevel :1; USHORT Reserved1 :7; } SecurityStatus; USHORT ReservedWord129[31]; struct { USHORT MaximumCurrentInMA :12; USHORT CfaPowerMode1Disabled :1; USHORT CfaPowerMode1Required :1; USHORT Reserved0 :1; USHORT Word160Supported :1; } CfaPowerMode1; USHORT ReservedForCfaWord161[7]; USHORT NominalFormFactor :4; USHORT ReservedWord168 :12; struct { USHORT SupportsTrim :1; USHORT Reserved0 :15; } DataSetManagementFeature; USHORT AdditionalProductID[4]; USHORT ReservedForCfaWord174[2]; USHORT CurrentMediaSerialNumber[30]; struct { USHORT Supported :1; USHORT Reserved0 :1; USHORT WriteSameSuported :1; USHORT ErrorRecoveryControlSupported :1; USHORT FeatureControlSuported :1; USHORT DataTablesSuported :1; USHORT Reserved1 :6; USHORT VendorSpecific :4; } SCTCommandTransport; USHORT ReservedWord207[2]; struct { USHORT AlignmentOfLogicalWithinPhysical :14; USHORT Word209Supported :1; USHORT Reserved0 :1; } BlockAlignment; USHORT WriteReadVerifySectorCountMode3Only[2]; USHORT WriteReadVerifySectorCountMode2Only[2]; struct { USHORT NVCachePowerModeEnabled :1; USHORT Reserved0 :3; USHORT NVCacheFeatureSetEnabled :1; USHORT Reserved1 :3; USHORT NVCachePowerModeVersion :4; USHORT NVCacheFeatureSetVersion :4; } NVCacheCapabilities; USHORT NVCacheSizeLSW; USHORT NVCacheSizeMSW; USHORT NominalMediaRotationRate; USHORT ReservedWord218; struct { UCHAR NVCacheEstimatedTimeToSpinUpInSeconds; UCHAR Reserved; } NVCacheOptions; USHORT WriteReadVerifySectorCountMode :8; USHORT ReservedWord220 :8; USHORT ReservedWord221; struct { USHORT MajorVersion :12; USHORT TransportType :4; } TransportMajorVersion; USHORT TransportMinorVersion; USHORT ReservedWord224[6]; ULONG ExtendedNumberOfUserAddressableSectors[2]; USHORT MinBlocksPerDownloadMicrocodeMode03; USHORT MaxBlocksPerDownloadMicrocodeMode03; USHORT ReservedWord236[19]; USHORT Signature :8; USHORT CheckSum :8;} IDENTIFY_DEVICE_DATA, *PIDENTIFY_DEVICE_DATA;
typedef struct _IDENTIFY_PACKET_DATA { struct { USHORT PacketType :2; USHORT IncompleteResponse :1; USHORT Reserved1 :2; USHORT DrqDelay :2; USHORT RemovableMedia :1; USHORT CommandPacketType :5; USHORT Reserved2 :1; USHORT DeviceType :2; } GeneralConfiguration; USHORT ResevedWord1; USHORT UniqueConfiguration; USHORT ReservedWords3[7]; UCHAR SerialNumber[20]; USHORT ReservedWords20[3]; UCHAR FirmwareRevision[8]; UCHAR ModelNumber[40]; USHORT ReservedWords47[2]; struct { USHORT VendorSpecific :8; USHORT DmaSupported :1; USHORT LbaSupported :1; USHORT IordyDisabled :1; USHORT IordySupported :1; USHORT Obsolete :1; USHORT OverlapSupported :1; USHORT QueuedCommandsSupported :1; USHORT InterleavedDmaSupported :1; USHORT DeviceSpecificStandbyTimerValueMin :1; USHORT Obsolete1 :1; USHORT ReservedWord50 :12; USHORT WordValid :2; } Capabilities; USHORT ObsoleteWords51[2]; USHORT TranslationFieldsValid :3; USHORT Reserved3 :13; USHORT ReservedWords54[8]; struct { USHORT UDMA0Supported :1; USHORT UDMA1Supported :1; USHORT UDMA2Supported :1; USHORT UDMA3Supported :1; USHORT UDMA4Supported :1; USHORT UDMA5Supported :1; USHORT UDMA6Supported :1; USHORT MDMA0Supported :1; USHORT MDMA1Supported :1; USHORT MDMA2Supported :1; USHORT DMASupported :1; USHORT ReservedWord62 :4; USHORT DMADIRBitRequired :1; } DMADIR; USHORT MultiWordDMASupport :8; USHORT MultiWordDMAActive :8; USHORT AdvancedPIOModes :8; USHORT ReservedByte64 :8; USHORT MinimumMWXferCycleTime; USHORT RecommendedMWXferCycleTime; USHORT MinimumPIOCycleTime; USHORT MinimumPIOCycleTimeIORDY; USHORT ReservedWords69[2]; USHORT BusReleaseDelay; USHORT ServiceCommandDelay; USHORT ReservedWords73[2]; USHORT QueueDepth :5; USHORT ReservedWord75 :11; struct { USHORT Reserved0 :1; USHORT SataGen1 :1; USHORT SataGen2 :1; USHORT SataGen3 :1; USHORT Reserved1 :5; USHORT HIPM :1; USHORT PhyEvents :1; USHORT Reserved3 :2; USHORT HostAutoPS :1; USHORT DeviceAutoPS :1; USHORT Reserved4 :1; USHORT Reserved5 :1; USHORT CurrentSpeed :3; USHORT SlimlineDeviceAttention :1; USHORT HostEnvironmentDetect :1; USHORT Reserved :10; } SerialAtaCapabilities; struct { USHORT Reserved0 :1; USHORT Reserved1 :2; USHORT DIPM :1; USHORT Reserved2 :1; USHORT AsynchronousNotification :1; USHORT SoftwareSettingsPreservation :1; USHORT Reserved3 :9; } SerialAtaFeaturesSupported; struct { USHORT Reserved0 :1; USHORT Reserved1 :2; USHORT DIPM :1; USHORT Reserved2 :1; USHORT AsynchronousNotification :1; USHORT SoftwareSettingsPreservation :1; USHORT DeviceAutoPS :1; USHORT Reserved3 :8; } SerialAtaFeaturesEnabled; USHORT MajorRevision; USHORT MinorRevision; struct { USHORT SmartCommands :1; USHORT SecurityMode :1; USHORT RemovableMedia :1; USHORT PowerManagement :1; USHORT PacketCommands :1; USHORT WriteCache :1; USHORT LookAhead :1; USHORT ReleaseInterrupt :1; USHORT ServiceInterrupt :1; USHORT DeviceReset :1; USHORT HostProtectedArea :1; USHORT Obsolete1 :1; USHORT WriteBuffer :1; USHORT ReadBuffer :1; USHORT Nop :1; USHORT Obsolete2 :1; USHORT DownloadMicrocode :1; USHORT Reserved1 :2; USHORT AdvancedPm :1; USHORT Msn :1; USHORT PowerUpInStandby :1; USHORT ManualPowerUp :1; USHORT Reserved2 :1; USHORT SetMax :1; USHORT Reserved3 :3; USHORT FlushCache :1; USHORT Reserved4 :1; USHORT WordValid :2; } CommandSetSupport; struct { USHORT Reserved0 :5; USHORT GpLogging :1; USHORT Reserved1 :2; USHORT WWN64Bit :1; USHORT Reserved2 :5; USHORT WordValid :2; } CommandSetSupportExt; struct { USHORT SmartCommands :1; USHORT SecurityMode :1; USHORT RemovableMedia :1; USHORT PowerManagement :1; USHORT PacketCommands :1; USHORT WriteCache :1; USHORT LookAhead :1; USHORT ReleaseInterrupt :1; USHORT ServiceInterrupt :1; USHORT DeviceReset :1; USHORT HostProtectedArea :1; USHORT Obsolete1 :1; USHORT WriteBuffer :1; USHORT ReadBuffer :1; USHORT Nop :1; USHORT Obsolete2 :1; USHORT DownloadMicrocode :1; USHORT Reserved1 :2; USHORT AdvancedPm :1; USHORT Msn :1; USHORT PowerUpInStandby :1; USHORT ManualPowerUp :1; USHORT Reserved2 :1; USHORT SetMax :1; USHORT Reserved3 :3; USHORT FlushCache :1; USHORT Reserved :3; } CommandSetActive; struct { USHORT Reserved0 :5; USHORT GpLogging :1; USHORT Reserved1 :2; USHORT WWN64Bit :1; USHORT Reserved2 :5; USHORT WordValid :2; } CommandSetActiveExt; USHORT UltraDMASupport :8; USHORT UltraDMAActive :8; USHORT TimeRequiredForNormalEraseModeSecurityEraseUnit; USHORT TimeRequiredForEnhancedEraseModeSecurityEraseUnit; USHORT CurrentAPMLevel; USHORT MasterPasswordID; USHORT HardwareResetResult; USHORT ReservedWords94[14]; USHORT WorldWideName[4]; USHORT ReservedWords112[13]; USHORT AtapiZeroByteCount; USHORT ReservedWord126; USHORT MsnSupport :2; USHORT ReservedWord127 :14; USHORT SecurityStatus; USHORT VendorSpecific[31]; USHORT ReservedWord160[16]; USHORT ReservedWord176[46]; struct { USHORT MajorVersion :12; USHORT TransportType :4; } TransportMajorVersion; USHORT TransportMinorVersion; USHORT ReservedWord224[31]; USHORT Signature :8; USHORT CheckSum :8;} IDENTIFY_PACKET_DATA, *PIDENTIFY_PACKET_DATA;
typedef struct _GP_LOG_NCQ_COMMAND_ERROR { UCHAR NcqTag : 5; UCHAR Reserved0 : 1; UCHAR UNL : 1; UCHAR NonQueuedCmd : 1; UCHAR Reserved1; UCHAR Status; UCHAR Error; UCHAR LBA7_0; UCHAR LBA15_8; UCHAR LBA23_16; UCHAR Device; UCHAR LBA31_24; UCHAR LBA39_32; UCHAR LBA47_40; UCHAR Reserved2; UCHAR Count7_0; UCHAR Count15_8; UCHAR SenseKey; UCHAR ASC; UCHAR ASCQ; UCHAR Reserved3[239]; UCHAR Vendor[255]; UCHAR Checksum;} GP_LOG_NCQ_COMMAND_ERROR, *PGP_LOG_NCQ_COMMAND_ERROR;#include <poppack.h>
#define IDE_LBA_MODE (1 << 6)
#define IDE_DC_DISABLE_INTERRUPTS 0x02#define IDE_DC_RESET_CONTROLLER 0x04#define IDE_DC_REENABLE_CONTROLLER 0x00
#define IDE_STATUS_ERROR 0x01#define IDE_STATUS_INDEX 0x02#define IDE_STATUS_CORRECTED_ERROR 0x04#define IDE_STATUS_DRQ 0x08#define IDE_STATUS_DSC 0x10#define IDE_STATUS_DEVICE_FAULT 0x20#define IDE_STATUS_DRDY 0x40#define IDE_STATUS_IDLE 0x50#define IDE_STATUS_BUSY 0x80
#define IDE_ERROR_ILLEGAL_LENGTH 0x01#define IDE_ERROR_ADDRESS_NOT_FOUND IDE_ERROR_ILLEGAL_LENGTH#define IDE_ERROR_END_OF_MEDIA 0x02#define IDE_ERROR_COMMAND_ABORTED 0x04#define IDE_ERROR_MEDIA_CHANGE_REQ 0x08#define IDE_ERROR_ID_NOT_FOUND 0x10#define IDE_ERROR_MEDIA_CHANGE 0x20#define IDE_ERROR_DATA_ERROR 0x40#define IDE_ERROR_BAD_BLOCK 0x80#define IDE_ERROR_CRC_ERROR IDE_ERROR_BAD_BLOCK
#define IDE_COMMAND_NOP 0x00#define IDE_COMMAND_DATA_SET_MANAGEMENT 0x06#define IDE_COMMAND_ATAPI_RESET 0x08#define IDE_COMMAND_GET_PHYSICAL_ELEMENT_STATUS 0x12#define IDE_COMMAND_READ 0x20#define IDE_COMMAND_READ_EXT 0x24#define IDE_COMMAND_READ_DMA_EXT 0x25#define IDE_COMMAND_READ_DMA_QUEUED_EXT 0x26#define IDE_COMMAND_READ_MULTIPLE_EXT 0x29#define IDE_COMMAND_READ_LOG_EXT 0x2F#define IDE_COMMAND_WRITE 0x30#define IDE_COMMAND_WRITE_EXT 0x34#define IDE_COMMAND_WRITE_DMA_EXT 0x35#define IDE_COMMAND_WRITE_DMA_QUEUED_EXT 0x36#define IDE_COMMAND_WRITE_MULTIPLE_EXT 0x39#define IDE_COMMAND_WRITE_DMA_FUA_EXT 0x3D#define IDE_COMMAND_WRITE_DMA_QUEUED_FUA_EXT 0x3E#define IDE_COMMAND_WRITE_LOG_EXT 0x3F#define IDE_COMMAND_VERIFY 0x40#define IDE_COMMAND_VERIFY_EXT 0x42#define IDE_COMMAND_ZAC_MANAGEMENT_IN 0x4A#define IDE_COMMAND_WRITE_LOG_DMA_EXT 0x57#define IDE_COMMAND_TRUSTED_NON_DATA 0x5B#define IDE_COMMAND_TRUSTED_RECEIVE 0x5C#define IDE_COMMAND_TRUSTED_RECEIVE_DMA 0x5D#define IDE_COMMAND_TRUSTED_SEND 0x5E#define IDE_COMMAND_TRUSTED_SEND_DMA 0x5F#define IDE_COMMAND_READ_FPDMA_QUEUED 0x60#define IDE_COMMAND_WRITE_FPDMA_QUEUED 0x61#define IDE_COMMAND_NCQ_NON_DATA 0x63#define IDE_COMMAND_SEND_FPDMA_QUEUED 0x64#define IDE_COMMAND_RECEIVE_FPDMA_QUEUED 0x65#define IDE_COMMAND_SET_DATE_AND_TIME 0x77#define IDE_COMMAND_REMOVE_ELEMENT_AND_TRUNCATE 0x7C#define IDE_COMMAND_EXECUTE_DEVICE_DIAGNOSTIC 0x90#define IDE_COMMAND_SET_DRIVE_PARAMETERS 0x91#define IDE_COMMAND_DOWNLOAD_MICROCODE 0x92#define IDE_COMMAND_DOWNLOAD_MICROCODE_DMA 0x93#define IDE_COMMAND_ZAC_MANAGEMENT_OUT 0x9F#define IDE_COMMAND_ATAPI_PACKET 0xA0#define IDE_COMMAND_ATAPI_IDENTIFY 0xA1#define IDE_COMMAND_SMART 0xB0#define IDE_COMMAND_READ_LOG_DMA_EXT 0xB1#define IDE_COMMAND_SANITIZE_DEVICE 0xB4#define IDE_COMMAND_READ_MULTIPLE 0xC4#define IDE_COMMAND_WRITE_MULTIPLE 0xC5#define IDE_COMMAND_SET_MULTIPLE 0xC6#define IDE_COMMAND_READ_DMA 0xC8#define IDE_COMMAND_WRITE_DMA 0xCA#define IDE_COMMAND_WRITE_DMA_QUEUED 0xCC#define IDE_COMMAND_WRITE_MULTIPLE_FUA_EXT 0xCE#define IDE_COMMAND_GET_MEDIA_STATUS 0xDA#define IDE_COMMAND_DOOR_LOCK 0xDE#define IDE_COMMAND_DOOR_UNLOCK 0xDF#define IDE_COMMAND_STANDBY_IMMEDIATE 0xE0#define IDE_COMMAND_IDLE_IMMEDIATE 0xE1#define IDE_COMMAND_CHECK_POWER 0xE5#define IDE_COMMAND_SLEEP 0xE6#define IDE_COMMAND_FLUSH_CACHE 0xE7#define IDE_COMMAND_FLUSH_CACHE_EXT 0xEA#define IDE_COMMAND_IDENTIFY 0xEC#define IDE_COMMAND_MEDIA_EJECT 0xED#define IDE_COMMAND_SET_FEATURE 0xEF#define IDE_COMMAND_SECURITY_SET_PASSWORD 0xF1#define IDE_COMMAND_SECURITY_UNLOCK 0xF2#define IDE_COMMAND_SECURITY_ERASE_PREPARE 0xF3#define IDE_COMMAND_SECURITY_ERASE_UNIT 0xF4#define IDE_COMMAND_SECURITY_FREEZE_LOCK 0xF5#define IDE_COMMAND_SECURITY_DISABLE_PASSWORD 0xF6#define IDE_COMMAND_NOT_VALID 0xFF
#define IDE_FEATURE_ENABLE_WRITE_CACHE 0x2#define IDE_FEATURE_SET_TRANSFER_MODE 0x3#define IDE_FEATURE_ENABLE_PUIS 0x6#define IDE_FEATURE_PUIS_SPIN_UP 0x7#define IDE_FEATURE_ENABLE_SATA_FEATURE 0x10#define IDE_FEATURE_DISABLE_MSN 0x31#define IDE_FEATURE_DISABLE_REVERT_TO_POWER_ON 0x66#define IDE_FEATURE_DISABLE_WRITE_CACHE 0x82#define IDE_FEATURE_DISABLE_PUIS 0x86#define IDE_FEATURE_DISABLE_SATA_FEATURE 0x90#define IDE_FEATURE_ENABLE_MSN 0x95
#endif