Documentation
¶
Index ¶
- Constants
- type IdentityAdditionalSupported
- type IdentityBlockAlignment
- type IdentityCapabilities
- type IdentityCfgPowerMode1
- type IdentityCommandSetActive
- type IdentityCommandSetActiveExt
- type IdentityCommandSetSupport
- type IdentityCommandSetSupportExt
- type IdentityCommandSupportActiveExt
- type IdentityDataSetManagementFeature
- type IdentityDeviceData
- type IdentityEnhancedSecurityEraseUnit
- type IdentityGeneralConfiguration
- type IdentityNormalSecurityEraseUnit
- type IdentityNvCacheCapabilities
- type IdentityNvCacheOptions
- type IdentityPhysicalLogicalSectorSize
- type IdentitySctSommandTransport
- type IdentitySecurityStatus
- type IdentitySerialAtaCapabilities
- type IdentitySerialAtaFeaturesEnabled
- type IdentitySerialAtaFeaturesSupported
- type IdentityTransportMajorVersion
- type IdentityTrustedComputing
- type IdentityWord53
- type IdentityWord59
- func (w *IdentityWord59) IsBlockEraseExtSupported() bool
- func (w *IdentityWord59) IsCryptoScrambleExtSupported() bool
- func (w *IdentityWord59) IsMultiSectorSettingValid() bool
- func (w *IdentityWord59) IsOverwriteExtSupported() bool
- func (w *IdentityWord59) IsSanitizeAntifreezeLockExtSupported() bool
- func (w *IdentityWord59) IsSanitizeFeatureSetSupported() bool
- func (w *IdentityWord59) IsSanitizeOperationStandardCompliant() bool
- type IdentityWord75
- type IdentityWord127
- type IdentityWord168
- type LbaRegs
- type OpCode
- type SmartAttribute
- type SmartAttributeThreshold
- type SmartAttributeThresholds
- type SmartAttributeValues
- type Tf
Constants ¶
View Source
const ( ATA_OP_DSM = OpCode(0x06) // Data Set Management (TRIM) ATA_OP_READ_PIO = OpCode(0x20) ATA_OP_READ_PIO_ONCE = OpCode(0x21) ATA_OP_READ_LONG = OpCode(0x22) ATA_OP_READ_LONG_ONCE = OpCode(0x23) ATA_OP_READ_PIO_EXT = OpCode(0x24) ATA_OP_READ_DMA_EXT = OpCode(0x25) ATA_OP_READ_LOG_EXT = OpCode(0x2f) ATA_OP_READ_FPDMA = OpCode(0x60) // NCQ ATA_OP_WRITE_PIO = OpCode(0x30) ATA_OP_WRITE_LONG = OpCode(0x32) ATA_OP_WRITE_LONG_ONCE = OpCode(0x33) ATA_OP_WRITE_PIO_EXT = OpCode(0x34) ATA_OP_WRITE_DMA_EXT = OpCode(0x35) ATA_OP_WRITE_FPDMA = OpCode(0x61) // NCQ ATA_OP_READ_VERIFY = OpCode(0x40) ATA_OP_READ_VERIFY_ONCE = OpCode(0x41) ATA_OP_READ_VERIFY_EXT = OpCode(0x42) ATA_OP_WRITE_UNC_EXT = OpCode(0x45) // lba48, no data, uses feat reg ATA_OP_FORMAT_TRACK = OpCode(0x50) ATA_OP_TRUSTED_RECV = OpCode(0x5c) ATA_OP_TRUSTED_RECV_DMA = OpCode(0x5d) ATA_OP_TRUSTED_SEND = OpCode(0x5e) ATA_OP_TRUSTED_SEND_DMA = OpCode(0x5f) ATA_OP_DOWNLOAD_MICROCODE = OpCode(0x92) ATA_OP_STANDBYNOW2 = OpCode(0x94) ATA_OP_CHECKPOWERMODE2 = OpCode(0x98) ATA_OP_SLEEPNOW2 = OpCode(0x99) ATA_OP_PIDENTIFY = OpCode(0xa1) ATA_OP_READ_NATIVE_MAX = OpCode(0xf8) ATA_OP_READ_NATIVE_MAX_EXT = OpCode(0x27) ATA_OP_GET_NATIVE_MAX_EXT = OpCode(0x78) ATA_OP_SMART = OpCode(0xb0) ATA_OP_DCO = OpCode(0xb1) ATA_OP_SET_SECTOR_CONFIGURATION = OpCode(0xb2) ATA_OP_SANITIZE = OpCode(0xb4) ATA_OP_ERASE_SECTORS = OpCode(0xc0) ATA_OP_READ_DMA = OpCode(0xc8) ATA_OP_WRITE_DMA = OpCode(0xca) ATA_OP_DOORLOCK = OpCode(0xde) ATA_OP_DOORUNLOCK = OpCode(0xdf) ATA_OP_STANDBYNOW1 = OpCode(0xe0) ATA_OP_IDLEIMMEDIATE = OpCode(0xe1) ATA_OP_SETIDLE = OpCode(0xe3) ATA_OP_SET_MAX = OpCode(0xf9) ATA_OP_SET_MAX_EXT = OpCode(0x37) ATA_OP_SET_MULTIPLE = OpCode(0xc6) ATA_OP_CHECKPOWERMODE1 = OpCode(0xe5) ATA_OP_SLEEPNOW1 = OpCode(0xe6) ATA_OP_FLUSHCACHE = OpCode(0xe7) ATA_OP_FLUSHCACHE_EXT = OpCode(0xea) ATA_OP_IDENTIFY = OpCode(0xec) ATA_OP_SETFEATURES = OpCode(0xef) ATA_OP_SECURITY_SET_PASS = OpCode(0xf1) ATA_OP_SECURITY_UNLOCK = OpCode(0xf2) ATA_OP_SECURITY_ERASE_PREPARE = OpCode(0xf3) ATA_OP_SECURITY_ERASE_UNIT = OpCode(0xf4) ATA_OP_SECURITY_FREEZE_LOCK = OpCode(0xf5) ATA_OP_SECURITY_DISABLE = OpCode(0xf6) ATA_OP_VENDOR_SPECIFIC_0x80 = OpCode(0x80) )
View Source
const ( ATA_USING_LBA = (1 << 6) ATA_STAT_DRQ = (1 << 3) ATA_STAT_ERR = (1 << 0) )
* Some useful ATA register bits
View Source
const ( RW_READ = 0 RW_WRITE = 1 LBA28_OK = 0 LBA48_FORCE = 1 )
* Useful parameters for initHdioTaskfile():
View Source
const ( SMART_FEAT_READ_ATTRIBUTE_VALUES = 0xd0 SMART_FEAT_READ_ATTRIBUTE_THRESHOLDS = 0xd1 SMART_FEAT_EXECUTE_OFFLINE_IMMEDIATE = 0xd4 SMART_FEAT_READ_LOG = 0xd5 SMART_FEAT_WRITE_LOG = 0xd6 SMART_FEAT_RETURN_STATUS = 0xda )
*
- Working Draft ATA Command Set - 4 (ACS-4)
- 7.44 SMART Table 133 - FEATURE field values *
- SFF-8035R2
View Source
const ( SMART_LBA_HIGH = 0xc2 SMART_LBA_LOW = 0x4f )
View Source
const ( SMART_RETURN_STATUS_HI_EXCEEDED = 0x2c SMART_RETURN_STATUS_MID_EXCEEDED = 0xf4 )
View Source
const ( SANITIZE_STATUS_EXT uint16 = 0x0000 SANITIZE_CRYPTO_SCRAMBLE_EXT uint16 = 0x0011 SANITIZE_BLOCK_ERASE_EXT uint16 = 0x0012 SANITIZE_OVERWRITE_EXT uint16 = 0x0014 SANITIZE_FREEZE_LOCK_EXT uint16 = 0x0020 SANITIZE_ANTIFREEZE_LOCK_EXT uint16 = 0x0040 )
* Sanitize Device FEATURE field values
View Source
const ( SANITIZE_FREEZE_LOCK_KEY uint32 = 0x46724C6B /* "FrLk" */ SANITIZE_ANTIFREEZE_LOCK_KEY uint32 = 0x416E7469 /* "Anti" */ SANITIZE_CRYPTO_SCRAMBLE_KEY uint32 = 0x43727970 /* "Cryp" */ SANITIZE_BLOCK_ERASE_KEY uint32 = 0x426B4572 /* "BkEr" */ SANITIZE_OVERWRITE_KEY uint32 = 0x00004F57 /* "OW" */ )
* Sanitize commands keys
View Source
const ( SANITIZE_FLAG_OPERATION_SUCCEEDED = (1 << 7) SANITIZE_FLAG_OPERATION_IN_PROGRESS = (1 << 6) SANITIZE_FLAG_DEVICE_IN_FROZEN = (1 << 5) SANITIZE_FLAG_ANTIFREEZE_BIT = (1 << 4) )
* Sanitize outputs flags
View Source
const (
SMART_ATTRIBUTES_NUMBER = 30
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IdentityAdditionalSupported ¶
type IdentityAdditionalSupported struct {
A uint16 `struc:"uint16"`
}
type IdentityBlockAlignment ¶
type IdentityBlockAlignment struct {
A uint16 `struc:"uint16"`
}
type IdentityCapabilities ¶
type IdentityCfgPowerMode1 ¶
type IdentityCfgPowerMode1 struct {
A uint16 `struc:"uint16"`
}
type IdentityCommandSetActive ¶
type IdentityCommandSetActive struct {
A uint16 `struc:"uint16"`
B uint16 `struc:"uint16"`
C uint16 `struc:"uint16"`
}
func (*IdentityCommandSetActive) GetSmartCommands ¶
func (p *IdentityCommandSetActive) GetSmartCommands() bool
type IdentityCommandSetActiveExt ¶
type IdentityCommandSetActiveExt struct {
A uint16 `struc:"uint16"`
}
type IdentityCommandSetSupport ¶
type IdentityCommandSetSupport struct {
A uint16 `struc:"uint16"`
B uint16 `struc:"uint16"`
C uint16 `struc:"uint16"`
}
func (*IdentityCommandSetSupport) GetSmartCommands ¶
func (p *IdentityCommandSetSupport) GetSmartCommands() bool
type IdentityCommandSetSupportExt ¶
type IdentityCommandSetSupportExt struct {
A uint16 `struc:"uint16"`
}
type IdentityCommandSupportActiveExt ¶
type IdentityCommandSupportActiveExt struct {
A uint16 `struc:"uint16"`
}
type IdentityDataSetManagementFeature ¶
type IdentityDataSetManagementFeature struct {
A uint16 `struc:"uint16"`
}
func (*IdentityDataSetManagementFeature) GetTrim ¶
func (f *IdentityDataSetManagementFeature) GetTrim() bool
type IdentityDeviceData ¶
type IdentityDeviceData struct {
GeneralConfiguration IdentityGeneralConfiguration
NumCylinders uint16 `struc:"uint16"` // word 1 obsolete
SpecificConfiguration uint16 `struc:"uint16"` // word 2
NumHeads uint16 `struc:"uint16"` // word 3 obsolete
Retired1 [2]uint16 `struc:"[2]uint16"`
NumSectorsPerTrack uint16 `struc:"uint16"` // word 6 obsolete
VendorUnique1 [3]uint16 `struc:"[3]uint16"`
SerialNumber [20]uint8 `struc:"[20]uint8"` // word 10-19
Retired2 [2]uint16 `struc:"[2]uint16"`
Obsolete1 uint16 `struc:"uint16"`
FirmwareRevision [8]uint8 `struc:"[8]uint8"` // word 23-26
ModelNumber [40]uint8 `struc:"[40]uint8"` // word 27-46
MaximumBlockTransfer uint8 `struc:"uint8"` // word 47. 01h-10h = Maximum number of sectors that shall be transferred per interrupt on READ/WRITE MULTIPLE commands
VendorUnique2 uint8 `struc:"uint8"`
TrustComputing IdentityTrustedComputing // word 48
Capabilities IdentityCapabilities // word 49-50
ObsoleteWords51 [2]uint16 `struc:"[2]uint16"`
Word53 IdentityWord53
NumberOfCurrentCylinders uint16 `struc:"uint16"` // word 54 obsolete
NumberOfCurrentHeads uint16 `struc:"uint16"` // word 55 obsolete
CurrentSectorsPerTrack uint16 `struc:"uint16"` // word 56 obsolete
CurrentSectorCapacity uint32 `struc:"uint32"` // word 57 word 58 obsolete
Word59 IdentityWord59
UserAddressableSectors uint32 `struc:"uint32"` // word 60-61 for 28-bit commands
ObsoleteWord62 uint16 `struc:"uint16"`
MultiWordDmaSupport uint8 `struc:"uint8"` // word 63
MultiWordDmaActive uint8 `struc:"uint8"`
AdvancedPioModes uint8 `struc:"uint8"` // word 64. bit 0:1 - PIO mode supported
ReservedByte64 uint8 `struc:"uint8"`
MinimumMwxferCycleTime uint16 `struc:"uint16"` // word 65
RecommendedMwxferCycleTime uint16 `struc:"uint16"` // word 66
MinimumPioCycleTime uint16 `struc:"uint16"` // word 67
MinimumPioCycleTimeIordy uint16 `struc:"uint16"` // word 68
AdditionalSupported IdentityAdditionalSupported // word 69
ReservedWords70 [5]uint16 `struc:"[5]uint16"` // word 70 - reserved
Word75 IdentityWord75
SerialAtaCapabilities IdentitySerialAtaCapabilities
// Word 78
SerialAtaFeaturesSupported IdentitySerialAtaFeaturesSupported
// Word 79
SerialAtaFeaturesEnabled IdentitySerialAtaFeaturesEnabled
MajorRevision uint16 `struc:"uint16"` // word 80. bit 5 - supports ATA5; bit 6 - supports ATA6; bit 7 - supports ATA7; bit 8 - supports ATA8-ACS; bit 9 - supports ACS-2;
MinorRevision uint16 `struc:"uint16"` // word 81. T13 minior version number
CommandSetSupport IdentityCommandSetSupport
CommandSetActive IdentityCommandSetActive
UltraDmaSupport uint8 `struc:"uint8"` // word 88. bit 0 - UDMA mode 0 is supported ... bit 6 - UDMA mode 6 and below are supported
UltraDmaActive uint8 `struc:"uint8"` // word 88. bit 8 - UDMA mode 0 is selected ... bit 14 - UDMA mode 6 is selected
NormalSecurityEraseUnit IdentityNormalSecurityEraseUnit // word 89
EnhancedSecurityEraseUnit IdentityEnhancedSecurityEraseUnit // word 90
CurrentApmLevel uint8 `struc:"uint8"` // word 91
ReservedWord91 uint8 `struc:"uint8"`
MasterPasswordId uint16 `struc:"uint16"` // word 92. Master Password Identifier
HardwareResetResult uint16 `struc:"uint16"` // word 93
CurrentAcousticValue uint8 `struc:"uint8"` // word 94. obsolete
RecommendedAcousticValue uint8 `struc:"uint8"`
StreamMinRequestSize uint16 `struc:"uint16"` // word 95
StreamingTransferTimeDma uint16 `struc:"uint16"` // word 96
StreamingAccessLatencyDmaPio uint16 `struc:"uint16"` // word 97
StreamingPerfGranularity uint32 `struc:"uint32"` // word 98 99
Max48bitLba uint64 `struc:"uint64"` // word 100-103
StreamingTransferTime uint16 `struc:"uint16"` // word 104. Streaming Transfer Time - PIO
DsmCap uint16 `struc:"uint16"` // word 105
PhysicalLogicalSectorSize IdentityPhysicalLogicalSectorSize // word 106
InterSeekDelay uint16 `struc:"uint16"` //word 107. Inter-seek delay for ISO 7779 standard acoustic testing
WorldWideName [4]uint16 `struc:"[4]uint16"` //words 108-111
ReservedForWorldWideName128 [4]uint16 `struc:"[4]uint16"` //words 112-115
ReservedForTlcTechnicalReport uint16 `struc:"uint16"` //word 116
WordsPerLogicalSector [2]uint16 `struc:"[2]uint16"` //words 117-118 Logical sector size (DWord)
CommandSetSupportExt IdentityCommandSetSupportExt //word 119
CommandSetActiveExt IdentityCommandSetActiveExt //word 120
ReservedForExpandedSupportandActive [6]uint16 `struc:"[6]uint16"`
Word127 IdentityWord127
SecurityStatus IdentitySecurityStatus
ReservedWord129 [31]uint16 `struc:"[31]uint16"` //word 129...159. Vendor specific
CfaPowerMode1 IdentityCfgPowerMode1
ReservedForCfaWord161 [7]uint16 `struc:"[7]uint16"` //Words 161-167
Word168 IdentityWord168 //Word 168
DataSetManagementFeature IdentityDataSetManagementFeature
AdditionalProductID [4]uint16 `struc:"[4]uint16"` //Words 170-173
ReservedForCfaWord174 [2]uint16 `struc:"[2]uint16"` //Words 174-175
CurrentMediaSerialNumber [30]uint16 `struc:"[30]uint16"` //Words 176-205
SctCommandTransport IdentitySctSommandTransport //Words 206
ReservedWord207 [2]uint16 `struc:"[2]uint16"` //Words 207-208
BlockAlignment IdentityBlockAlignment //Word 209
WriteReadVerifySectorCountMode3Only [2]uint16 `struc:"[2]uint16"` //Words 210-211
WriteReadVerifySectorCountMode2Only [2]uint16 `struc:"[2]uint16"` //Words 212-213
NvCacheCapabilities IdentityNvCacheCapabilities //Word 214. obsolete
NvCacheSizeLSW uint16 `struc:"uint16"` //Word 215. obsolete
NvCacheSizeMSW uint16 `struc:"uint16"` //Word 216. obsolete
NominalMediaRotationRate uint16 `struc:"uint16"` //Word 217; value 0001h means non-rotating media.
ReservedWord218 uint16 `struc:"uint16"` //Word 218
NvCacheOptions IdentityNvCacheOptions //Word 219. obsolete
WriteReadVerifySectorCountMode uint8 `struc:"uint8"` //Word 220. Write-Read-Verify feature set current mode
ReservedWord220 uint8 `struc:"uint8"`
ReservedWord221 uint16 `struc:"uint16"` //Word 221
TransportMajorVersion IdentityTransportMajorVersion //Word 222 Transport major version number
TransportMinorVersion uint16 `struc:"uint16"` // Word 223
ReservedWord224 [6]uint16 `struc:"[6]uint16"` // Word 224...229
ExtendedNumberOfUserAddressableSectors [2]uint32 `struc:"[2]uint32"` // Words 230...233 Extended Number of User Addressable Sectors
MinBlocksPerDownloadMicrocodeMode03 uint16 `struc:"uint16"` // Word 234 Minimum number of 512-byte data blocks per Download Microcode mode 03h operation
MaxBlocksPerDownloadMicrocodeMode03 uint16 `struc:"uint16"` // Word 235 Maximum number of 512-byte data blocks per Download Microcode mode 03h operation
ReservedWord236 [19]uint16 `struc:"[19]uint16"` // Word 236...254
Signature uint8 `struc:"uint8"` //Word 255
CheckSum uint8 `struc:"uint8"`
}
type IdentityEnhancedSecurityEraseUnit ¶
type IdentityEnhancedSecurityEraseUnit struct {
A uint16 `struc:"uint16"`
}
type IdentityGeneralConfiguration ¶
type IdentityGeneralConfiguration struct {
// uint16T reserved1 : 1;
// uint16T retired3 : 1;
// uint16T responseIncomplete : 1;
// uint16T retired2 : 3;
// uint16T fixedDevice : 1; // obsolete
// uint16T removableMedia : 1;// obsolete
// uint16T retired1 : 7;
// uint16T deviceType : 1;
A uint8 `struc:"uint8"`
B uint8 `struc:"uint8"`
}
type IdentityNormalSecurityEraseUnit ¶
type IdentityNormalSecurityEraseUnit struct {
A uint16 `struc:"uint16"`
}
type IdentityNvCacheCapabilities ¶
type IdentityNvCacheCapabilities struct {
A uint16 `struc:"uint16"`
}
type IdentityNvCacheOptions ¶
type IdentityNvCacheOptions struct {
A uint16 `struc:"uint16"`
}
type IdentityPhysicalLogicalSectorSize ¶
type IdentityPhysicalLogicalSectorSize struct {
A uint16 `struc:"uint16"`
}
type IdentitySctSommandTransport ¶
type IdentitySctSommandTransport struct {
A uint16 `struc:"uint16"`
}
type IdentitySecurityStatus ¶
type IdentitySecurityStatus struct {
A uint16 `struc:"uint16"`
}
type IdentitySerialAtaFeaturesEnabled ¶
type IdentitySerialAtaFeaturesEnabled struct {
A uint16 `struc:"uint16"`
}
type IdentitySerialAtaFeaturesSupported ¶
type IdentitySerialAtaFeaturesSupported struct {
A uint16 `struc:"uint16"`
}
type IdentityTransportMajorVersion ¶
type IdentityTransportMajorVersion struct {
A uint16 `struc:"uint16"`
}
type IdentityTrustedComputing ¶
type IdentityTrustedComputing struct {
A uint16 `struc:"uint16"`
}
type IdentityWord53 ¶
type IdentityWord59 ¶
type IdentityWord59 struct {
CurrentMultiSectorSetting uint8 `struc:"uint8"`
B uint8 `struc:"uint8"`
}
func (*IdentityWord59) IsBlockEraseExtSupported ¶ added in v0.2.0
func (w *IdentityWord59) IsBlockEraseExtSupported() bool
func (*IdentityWord59) IsCryptoScrambleExtSupported ¶ added in v0.2.0
func (w *IdentityWord59) IsCryptoScrambleExtSupported() bool
func (*IdentityWord59) IsMultiSectorSettingValid ¶ added in v0.2.0
func (w *IdentityWord59) IsMultiSectorSettingValid() bool
func (*IdentityWord59) IsOverwriteExtSupported ¶ added in v0.2.0
func (w *IdentityWord59) IsOverwriteExtSupported() bool
func (*IdentityWord59) IsSanitizeAntifreezeLockExtSupported ¶ added in v0.2.0
func (w *IdentityWord59) IsSanitizeAntifreezeLockExtSupported() bool
func (*IdentityWord59) IsSanitizeFeatureSetSupported ¶ added in v0.2.0
func (w *IdentityWord59) IsSanitizeFeatureSetSupported() bool
func (*IdentityWord59) IsSanitizeOperationStandardCompliant ¶ added in v0.2.0
func (w *IdentityWord59) IsSanitizeOperationStandardCompliant() bool
IsSanitizeOperationStandardCompliant
- true: The commands allowed during a sanitize operation are as specified by this standard (see 4.17.5)
- false: The commands allowed during a sanitize operation are as specified by ACS-2
type IdentityWord75 ¶
type IdentityWord75 struct {
A uint16 `struc:"uint16"`
}
type IdentityWord127 ¶
type IdentityWord127 struct {
A uint16 `struc:"uint16"`
}
type IdentityWord168 ¶
type IdentityWord168 struct {
A uint16 `struc:"uint16"`
}
type LbaRegs ¶
type LbaRegs struct {
Feat uint8 `struc:"uint8"`
Nsect uint8 `struc:"uint8"`
Lbal uint8 `struc:"uint8"` // 16bit able with hob
Lbam uint8 `struc:"uint8"` // 16bit able with hob
Lbah uint8 `struc:"uint8"` // 16bit able with hob
}
* Definitions and structures for use with SGIO + ATA16:
type SmartAttribute ¶
type SmartAttribute struct {
Id uint8 `struc:"uint8"`
/**
* Status flag
* Bit 0 (pre-failure/advisory bit)
* Bit 1 (on-line data collection bit)
* Bits 2-5 (vendor specific)
* Bits 6-15 (Reserved)
*/
Flags uint16 `struc:"uint16"`
Current uint8 `struc:"uint8"`
Worst uint8 `struc:"uint8"`
Raw [6]uint8 `struc:"[6]uint8"`
Reserved01 uint8 `struc:"uint8"`
}
12
type SmartAttributeThreshold ¶
type SmartAttributeThresholds ¶
type SmartAttributeThresholds struct {
RevNumber uint16 `struc:"uint16"`
Attributes [SMART_ATTRIBUTES_NUMBER]SmartAttributeThreshold
Reserved01 [18]uint8 `struc:"[18]uint8"`
VendorSpecific380 [131]uint8 `struc:"[131]uint8"`
Checksum uint8 `struc:"uint8"`
}
*
- ATA8-ACS
- Table 49 — Device SMART data structure *
- SFF-8035R2 Table 3
type SmartAttributeValues ¶
type SmartAttributeValues struct {
RevNumber uint16 `struc:"uint16"`
Attributes [SMART_ATTRIBUTES_NUMBER]SmartAttribute
OfflineDataCollectionStatus uint8 `struc:"uint8"`
SelfTestExecStatus uint8 `struc:"uint8"`
TotalTimeToCompleteOfflineDataCollectionActivity uint16 `struc:"uint16"`
VendorSpecific366 uint8 `struc:"uint8"`
OfflineDataCollectionCapability uint8 `struc:"uint8"`
SmartCapability uint16 `struc:"uint16"`
/**
* 7-1: Reserved
* 0: device error logging supported
*/
ErrorlogCapability uint8 `struc:"uint8"`
VendorSpecific371 uint8 `struc:"uint8"`
/**
* Unit: minutes
*/
ShortSelftestRoutineRecommandedPollingTime uint8 `struc:"uint8"`
/**
* Extended self-test routine recommended polling time (7:0) in minutes.
* If FFh use bytes 375 and 376 for the polling time.
*/
ExtendedSelftestRoutineRecommandedPollingTimeA uint8 `struc:"uint8"`
ConveyanceSelftestRoutineRecommandedPollingTime uint8 `struc:"uint8"`
ExtendedSelftestRoutineRecommandedPollingTimeB [2]uint8 `struc:"[2]uint8"`
Reserved01 [9]uint8 `struc:"[9]uint8"`
VendorSpecific386 [125]uint8 `struc:"[125]uint8"`
Checksum uint8 `struc:"uint8"`
}
*
- ATA8-ACS
- Table 49 — Device SMART data structure *
- SFF-8035R2
Click to show internal directories.
Click to hide internal directories.