IOATAStorageDefines.h [plain text]
enum
{
kATAIdentifyConfiguration = 0,
kATAIdentifyLogicalCylinderCount = 1,
kATAIdentifyLogicalHeadCount = 3,
kATAIdentifySectorsPerTrack = 6,
kATAIdentifySerialNumber = 10,
kATAIdentifyFirmwareRevision = 23,
kATAIdentifyModelNumber = 27,
kATAIdentifyMultipleSectorCount = 47,
kATAIdentifyDriveCapabilities = 49,
kATAIdentifyDriveCapabilitiesExtended = 50,
kATAIdentifyPIOTiming = 51,
kATAIdentifyExtendedInfoSupport = 53,
kATAIdentifyCurrentCylinders = 54,
kATAIdentifyCurrentHeads = 55,
kATAIdentifyCurrentSectors = 56,
kATAIdentifyCurrentCapacity = 57,
kATAIdentifyCurrentMultipleSectors = 59,
kATAIdentifyLBACapacity = 60,
kATAIdentifySingleWordDMA = 62,
kATAIdentifyMultiWordDMA = 63,
kATAIdentifyAdvancedPIOModes = 64,
kATAIdentifyMinMultiWordDMATime = 65,
kATAIdentifyRecommendedMultiWordDMATime = 66,
kATAIdentifyMinPIOTime = 67,
kATAIdentifyMinPIOTimeWithIORDY = 68,
kATAIdentifyQueueDepth = 75,
kATAIdentifyMajorVersion = 80,
kATAIdentifyMinorVersion = 81,
kATAIdentifyCommandSetSupported = 82,
kATAIdentifyCommandSetSupported2 = 83,
kATAIdentifyCommandExtension1 = 84,
kATAIdentifyCommandExtension2 = 85,
kATAIdentifyCommandsEnabled = 86,
kATAIdentifyCommandsDefault = 87,
kATAIdentifyUltraDMASupported = 88,
kATAIdentifyIntegrity = 255
};
enum
{
kFixedDeviceBit = 6, kRemoveableMediaBit = 7, kNonMagneticDriveBit = 15,
kFixedDeviceMask = (1 << kFixedDeviceBit), kRemoveableMediaMask = (1 << kRemoveableMediaBit), kNonMagneticDriveMask = (1 << kNonMagneticDriveBit),
kDMABit = 8, kLBABit = 9, kIORDYDisableBit = 10, kIORDYBit = 11, kStandbyTimerBit = 13,
kDMASupportedMask = (1 << kDMABit), kLBASupportedMask = (1 << kLBABit), kDMADisableMask = (1 << kIORDYDisableBit), kIORDYSupportedMask = (1 << kIORDYBit), kStandbySupportedMask = (1 << kStandbyTimerBit),
kCurFieldsValidBit = 0, kExtFieldsValidBit = 1, kCurFieldsValidMask = (1 << kCurFieldsValidBit), kExtFieldsValidMask = (1 << kExtFieldsValidBit),
kMode3Bit = 0, kMode3Mask = (1 << kMode3Bit),
kChecksumValidCookie = 0xA5
};
enum
{
kSizeOfATAModelString = 40,
kSizeOfATARevisionString = 8
};
enum
{
kATATimeout10Seconds = 10000,
kATATimeout30Seconds = 30000,
kATATimeout45Seconds = 45000,
kATATimeout1Minute = 60000,
kATADefaultTimeout = kATATimeout30Seconds
};
enum
{
kATAZeroRetries = 0,
kATADefaultRetries = 4
};
enum
{
kIOATASectorCount8Bit = 8,
kIOATASectorCount16Bit = 16
};
enum
{
kIOATAMaximumBlockCount8Bit = (1 << kIOATASectorCount8Bit),
kIOATAMaximumBlockCount16Bit = (1 << kIOATASectorCount16Bit),
kIOATAMaxBlocksPerXfer = kIOATAMaximumBlockCount8Bit
};
enum
{
kSecondsInAMinute = 60,
k5Minutes = 5 * kSecondsInAMinute
};
enum
{
kATASupportsSMARTBit = 0,
kATASupportsPowerManagementBit = 3,
kATASupportsWriteCacheBit = 5
};
enum
{
kATASupportsSMARTMask = (1 << kATASupportsSMARTBit),
kATASupportsPowerManagementMask = (1 << kATASupportsPowerManagementBit),
kATASupportsWriteCacheMask = (1 << kATASupportsWriteCacheBit)
};
enum
{
kATASupportsCompactFlashBit = 2,
kATASupportsAdvancedPowerManagementBit = 3,
kATASupports48BitAddressingBit = 10,
kATASupportsFlushCacheBit = 12,
kATASupportsFlushCacheExtendedBit = 13,
};
enum
{
kATASupportsCompactFlashMask = (1 << kATASupportsCompactFlashBit),
kATASupportsAdvancedPowerManagementMask = (1 << kATASupportsAdvancedPowerManagementBit),
kATASupports48BitAddressingMask = (1 << kATASupports48BitAddressingBit),
kATASupportsFlushCacheMask = (1 << kATASupportsFlushCacheBit),
kATASupportsFlushCacheExtendedMask = (1 << kATASupportsFlushCacheExtendedBit),
kATADataIsValidMask = 0xC000
};
enum
{
kIOATAFeaturePowerManagement = 0x01,
kIOATAFeatureWriteCache = 0x02,
kIOATAFeatureAdvancedPowerManagement = 0x04,
kIOATAFeatureCompactFlash = 0x08,
kIOATAFeature48BitLBA = 0x10,
kIOATAFeatureSMART = 0x20,
};
enum
{
kIOATAMaxPerformance = 0xFE,
kIOATADefaultPerformance = 0x80,
kIOATAMaxPowerSavings = 0x01
};
typedef UInt32 IOATAPowerState;
enum
{
kIOATAPowerStateSystemSleep = 0,
kIOATAPowerStateSleep = 1,
kIOATAPowerStateStandby = 2,
kIOATAPowerStateIdle = 3,
kIOATAPowerStateActive = 4,
kIOATAPowerStates = 5
};
enum
{
kATAEnableUltraDMAModeMask = 0x40,
kATAEnableMultiWordDMAModeMask = 0x20,
kATAEnablePIOModeMask = 0x08,
};