Documentation
¶
Index ¶
Constants ¶
View Source
const ( NVME_SC_SUCCESS = StatusCode(0x0) NVME_SC_INVALID_OPCODE = StatusCode(0x1) NVME_SC_INVALID_FIELD = StatusCode(0x2) NVME_SC_CMDID_CONFLICT = StatusCode(0x3) NVME_SC_DATA_XFER_ERROR = StatusCode(0x4) NVME_SC_POWER_LOSS = StatusCode(0x5) NVME_SC_INTERNAL = StatusCode(0x6) NVME_SC_ABORT_REQ = StatusCode(0x7) NVME_SC_ABORT_QUEUE = StatusCode(0x8) NVME_SC_FUSED_FAIL = StatusCode(0x9) NVME_SC_FUSED_MISSING = StatusCode(0xa) NVME_SC_INVALID_NS = StatusCode(0xb) NVME_SC_CMD_SEQ_ERROR = StatusCode(0xc) NVME_SC_SGL_INVALID_LAST = StatusCode(0xd) NVME_SC_SGL_INVALID_COUNT = StatusCode(0xe) NVME_SC_SGL_INVALID_DATA = StatusCode(0xf) NVME_SC_SGL_INVALID_METADATA = StatusCode(0x10) NVME_SC_SGL_INVALIDYPE = StatusCode(0x11) NVME_SC_CMB_INVALID_USE = StatusCode(0x12) NVME_SC_PRP_INVALID_OFFSET = StatusCode(0x13) NVME_SC_ATOMIC_WRITE_UNIT_EXCEEDED = StatusCode(0x14) NVME_SC_OPERATION_DENIED = StatusCode(0x15) NVME_SC_SGL_INVALID_OFFSET = StatusCode(0x16) NVME_SC_INCONSISTENT_HOST_ID = StatusCode(0x18) NVME_SC_KEEP_ALIVE_EXPIRED = StatusCode(0x19) NVME_SC_KEEP_ALIVE_INVALID = StatusCode(0x1A) NVME_SC_PREEMPT_ABORT = StatusCode(0x1B) NVME_SC_SANITIZE_FAILED = StatusCode(0x1C) NVME_SC_SANITIZE_IN_PROGRESS = StatusCode(0x1D) NVME_SC_NS_WRITE_PROTECTED = StatusCode(0x20) NVME_SC_CMD_INTERRUPTED = StatusCode(0x21) NVME_SCRANSIENTRANSPORT = StatusCode(0x22) NVME_SC_LBA_RANGE = StatusCode(0x80) NVME_SC_CAP_EXCEEDED = StatusCode(0x81) NVME_SC_NS_NOT_READY = StatusCode(0x82) NVME_SC_RESERVATION_CONFLICT = StatusCode(0x83) NVME_SC_FORMAT_IN_PROGRESS = StatusCode(0x84) /* * Command Specific Status: */ NVME_SC_CQ_INVALID = StatusCode(0x100) NVME_SC_QID_INVALID = StatusCode(0x101) NVME_SC_QUEUE_SIZE = StatusCode(0x102) NVME_SC_ABORT_LIMIT = StatusCode(0x103) NVME_SC_ABORT_MISSING = StatusCode(0x104) NVME_SC_ASYNC_LIMIT = StatusCode(0x105) NVME_SC_FIRMWARE_SLOT = StatusCode(0x106) NVME_SC_FIRMWARE_IMAGE = StatusCode(0x107) NVME_SC_INVALID_VECTOR = StatusCode(0x108) NVME_SC_INVALID_LOG_PAGE = StatusCode(0x109) NVME_SC_INVALID_FORMAT = StatusCode(0x10a) NVME_SC_FW_NEEDS_CONV_RESET = StatusCode(0x10b) NVME_SC_INVALID_QUEUE = StatusCode(0x10c) NVME_SC_FEATURE_NOT_SAVEABLE = StatusCode(0x10d) NVME_SC_FEATURE_NOT_CHANGEABLE = StatusCode(0x10e) NVME_SC_FEATURE_NOT_PER_NS = StatusCode(0x10f) NVME_SC_FW_NEEDS_SUBSYS_RESET = StatusCode(0x110) NVME_SC_FW_NEEDS_RESET = StatusCode(0x111) NVME_SC_FW_NEEDS_MAXIME = StatusCode(0x112) NVME_SC_FW_ACTIVATE_PROHIBITED = StatusCode(0x113) NVME_SC_OVERLAPPING_RANGE = StatusCode(0x114) NVME_SC_NS_INSUFFICIENT_CAP = StatusCode(0x115) NVME_SC_NS_ID_UNAVAILABLE = StatusCode(0x116) NVME_SC_NS_ALREADY_ATTACHED = StatusCode(0x118) NVME_SC_NS_IS_PRIVATE = StatusCode(0x119) NVME_SC_NS_NOT_ATTACHED = StatusCode(0x11a) NVME_SCHIN_PROV_NOT_SUPP = StatusCode(0x11b) NVME_SC_CTRL_LIST_INVALID = StatusCode(0x11c) NVME_SC_DEVICE_SELFEST_IN_PROGRESS = StatusCode(0x11d) NVME_SC_BP_WRITE_PROHIBITED = StatusCode(0x11e) NVME_SC_INVALID_CTRL_ID = StatusCode(0x11f) NVME_SC_INVALID_SECONDARY_CTRL_STATE = StatusCode(0x120) NVME_SC_INVALID_NUM_CTRL_RESOURCE = StatusCode(0x121) NVME_SC_INVALID_RESOURCE_ID = StatusCode(0x122) NVME_SC_PMR_SAN_PROHIBITED = StatusCode(0x123) NVME_SC_ANA_INVALID_GROUP_ID = StatusCode(0x124) NVME_SC_ANA_ATTACH_FAIL = StatusCode(0x125) /* * Command Set Specific - Namespace Types commands: */ NVME_SC_IOCS_NOT_SUPPORTED = StatusCode(0x129) NVME_SC_IOCS_NOT_ENABLED = StatusCode(0x12A) NVME_SC_IOCS_COMBINATION_REJECTED = StatusCode(0x12B) NVME_SC_INVALID_IOCS = StatusCode(0x12C) /* * I/O Command Set Specific - NVM commands: */ NVME_SC_BAD_ATTRIBUTES = StatusCode(0x180) NVME_SC_INVALID_PI = StatusCode(0x181) NVME_SC_READ_ONLY = StatusCode(0x182) NVME_SC_CMD_SIZE_LIMIT_EXCEEDED = StatusCode(0x183) /* * I/O Command Set Specific - Fabrics commands: */ NVME_SC_CONNECT_FORMAT = StatusCode(0x180) NVME_SC_CONNECT_CTRL_BUSY = StatusCode(0x181) NVME_SC_CONNECT_INVALID_PARAM = StatusCode(0x182) NVME_SC_CONNECT_RESTART_DISC = StatusCode(0x183) NVME_SC_CONNECT_INVALID_HOST = StatusCode(0x184) NVME_SC_DISCOVERY_RESTART = StatusCode(0x190) NVME_SC_AUTH_REQUIRED = StatusCode(0x191) /* * I/O Command Set Specific - Zoned Namespace commands: */ NVME_SC_ZONE_BOUNDARY_ERROR = StatusCode(0x1B8) NVME_SC_ZONE_IS_FULL = StatusCode(0x1B9) NVME_SC_ZONE_IS_READ_ONLY = StatusCode(0x1BA) NVME_SC_ZONE_IS_OFFLINE = StatusCode(0x1BB) NVME_SC_ZONE_INVALID_WRITE = StatusCode(0x1BC) NVME_SCOO_MANY_ACTIVE_ZONES = StatusCode(0x1BD) NVME_SCOO_MANY_OPEN_ZONES = StatusCode(0x1BE) NVME_SC_ZONE_INVALID_STATERANSITION = StatusCode(0x1BF) /* * Media and Data Integrity Errors: */ NVME_SC_WRITE_FAULT = StatusCode(0x280) NVME_SC_READ_ERROR = StatusCode(0x281) NVME_SC_GUARD_CHECK = StatusCode(0x282) NVME_SC_APPTAG_CHECK = StatusCode(0x283) NVME_SC_REFTAG_CHECK = StatusCode(0x284) NVME_SC_COMPARE_FAILED = StatusCode(0x285) NVME_SC_ACCESS_DENIED = StatusCode(0x286) NVME_SC_UNWRITTEN_BLOCK = StatusCode(0x287) /* * Path-related Errors: */ NVME_SC_ANA_PERSISTENT_LOSS = StatusCode(0x301) NVME_SC_ANA_INACCESSIBLE = StatusCode(0x302) NVME_SC_ANARANSITION = StatusCode(0x303) NVME_SC_CRD = StatusCode(0x1800) NVME_SC_DNR = StatusCode(0x4000) )
*
- NVM_Express_Revision_1.3.pdf
- Figure 31 : Status Code - Generic Command Status values
View Source
const ( NVME_ADMIN_OP_DELETE_SQ = AdminOpCode(0x00) NVME_ADMIN_OP_CREATE_SQ = AdminOpCode(0x01) NVME_ADMIN_OP_GET_LOG_PAGE = AdminOpCode(0x02) NVME_ADMIN_OP_DELETE_CQ = AdminOpCode(0x04) NVME_ADMIN_OP_CREATE_CQ = AdminOpCode(0x05) NVME_ADMIN_OP_IDENTIFY = AdminOpCode(0x06) NVME_ADMIN_OP_ABORT_CMD = AdminOpCode(0x08) NVME_ADMIN_OP_SET_FEATURES = AdminOpCode(0x09) NVME_ADMIN_OP_GET_FEATURES = AdminOpCode(0x0A) NVME_ADMIN_OP_ASYNC_EVENT = AdminOpCode(0x0C) NVME_ADMIN_OP_NS_MGMT = AdminOpCode(0x0D) NVME_ADMIN_OP_ACTIVATE_FW = AdminOpCode(0x10) NVME_ADMIN_OP_DOWNLOAD_FW = AdminOpCode(0x11) NVME_ADMIN_OP_DEV_SELFEST = AdminOpCode(0x14) NVME_ADMIN_OP_NS_ATTACH = AdminOpCode(0x15) NVME_ADMIN_OP_KEEP_ALIVE = AdminOpCode(0x18) NVME_ADMIN_OP_DIRECTIVE_SEND = AdminOpCode(0x19) NVME_ADMIN_OP_DIRECTIVE_RECV = AdminOpCode(0x1A) NVME_ADMIN_OP_VIRTUAL_MGMT = AdminOpCode(0x1C) NVME_ADMIN_OP_NVME_MI_SEND = AdminOpCode(0x1D) NVME_ADMIN_OP_NVME_MI_RECV = AdminOpCode(0x1E) NVME_ADMIN_OP_DBBUF = AdminOpCode(0x7C) NVME_ADMIN_OP_FORMAT_NVM = AdminOpCode(0x80) NVME_ADMIN_OP_SECURITY_SEND = AdminOpCode(0x81) NVME_ADMIN_OP_SECURITY_RECV = AdminOpCode(0x82) NVME_ADMIN_OP_SANITIZE_NVM = AdminOpCode(0x84) NVME_ADMIN_OP_GET_LBA_STATUS = AdminOpCode(0x86) )
View Source
const ( NVME_NO_LOG_LSP = GetLogPageCommand(0x0) NVME_NO_LOG_LPO = GetLogPageCommand(0x0) NVME_LOG_ANA_LSP_RGO = GetLogPageCommand(0x1) NVMEELEM_LSP_CREATE = GetLogPageCommand(0x1) )
*
- NVM_Express_Revision_1.3.pdf
- Figure 86 : Get Log Page - Command Dword 10
View Source
const ( NVME_GET_LOG_PAGE_RESERVED = GetLogPageIdentifier(0x00) NVME_GET_LOG_PAGE_ERROR_INFO = GetLogPageIdentifier(0x01) NVME_GET_LOG_PAGE_SMART = GetLogPageIdentifier(0x02) NVME_GET_LOG_PAGE_FIRMWARE_SLOT_INFO = GetLogPageIdentifier(0x03) )
*
- NVM_Express_Revision_1.3.pdf
- Figure 90 : Get Log Page - Log Page Identifiers
View Source
const ( NVME_SANITIZE_NO_DEALLOC = SanitizeCommand(0x00000200) NVME_SANITIZE_OIPBP = SanitizeCommand(0x00000100) NVME_SANITIZE_OWPASS_SHIFT = SanitizeCommand(0x00000004) /* 07:04 */ NVME_SANITIZE_AUSE = SanitizeCommand(0x00000008) NVME_SANITIZE_ACT_CRYPTO_ERASE = SanitizeCommand(0x00000004) NVME_SANITIZE_ACT_OVERWRITE = SanitizeCommand(0x00000003) NVME_SANITIZE_ACT_BLOCK_ERASE = SanitizeCommand(0x00000002) NVME_SANITIZE_ACT_EXIT = SanitizeCommand(0x00000001) /* Sanitize Monitor/Log */ NVME_SANITIZE_LOG_DATA_LEN = SanitizeCommand(0x0014) NVME_SANITIZE_LOG_GLOBAL_DATA_ERASED = SanitizeCommand(0x0100) NVME_SANITIZE_LOG_NUM_CMPLTED_PASS_MASK = SanitizeCommand(0x00F8) NVME_SANITIZE_LOG_STATUS_MASK = SanitizeCommand(0x0007) NVME_SANITIZE_LOG_NEVER_SANITIZED = SanitizeCommand(0x0000) NVME_SANITIZE_LOG_COMPLETED_SUCCESS = SanitizeCommand(0x0001) NVME_SANITIZE_LOG_IN_PROGESS = SanitizeCommand(0x0002) NVME_SANITIZE_LOG_COMPLETED_FAILED = SanitizeCommand(0x0003) NVME_SANITIZE_LOG_ND_COMPLETED_SUCCESS = SanitizeCommand(0x0004) )
*
- NVM_Express_Revision_1.3.pdf
- Figure 178 : Sanitize - Command Dword 10
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AdminOpCode ¶
type AdminOpCode uint8
type GetLogPageCommand ¶
type GetLogPageCommand uint8
type GetLogPageIdentifier ¶
type GetLogPageIdentifier uint8
type IdentifyController ¶
type IdentifyController struct { Vid uint16 `struc:"uint16"` Ssvid uint16 `struc:"uint16"` Sn [20]uint8 `struc:"[20]uint8"` Mn [40]uint8 `struc:"[40]uint8"` Fr [8]uint8 `struc:"[8]uint8"` Rab uint8 `struc:"uint8"` Ieee [3]uint8 `struc:"[3]uint8"` Cmic uint8 `struc:"uint8"` Mdts uint8 `struc:"uint8"` Cntlid uint16 `struc:"uint16"` IdentifyControllerVersion Rtd3r uint32 `struc:"uint32"` Rtd3e uint32 `struc:"uint32"` Oaes uint32 `struc:"uint32"` Ctratt uint32 `struc:"uint32"` Rrls uint16 `struc:"uint16"` Rsvd102 [9]uint8 `struc:"[9]uint8"` Cntrltype uint8 `struc:"uint8"` Fguid [16]uint8 `struc:"[16]uint8"` Crdt1 uint16 `struc:"uint16"` Crdt2 uint16 `struc:"uint16"` Crdt3 uint16 `struc:"uint16"` Rsvd134 [122]uint8 `struc:"[122]uint8"` Oacs uint16 `struc:"uint16"` Acl uint8 `struc:"uint8"` Aerl uint8 `struc:"uint8"` Frmw uint8 `struc:"uint8"` Lpa uint8 `struc:"uint8"` Elpe uint8 `struc:"uint8"` Npss uint8 `struc:"uint8"` Avscc uint8 `struc:"uint8"` Apsta uint8 `struc:"uint8"` Wctemp uint16 `struc:"uint16"` Cctemp uint16 `struc:"uint16"` Mtfa uint16 `struc:"uint16"` Hmpre uint32 `struc:"uint32"` Hmmin uint32 `struc:"uint32"` Tnvmcap [16]uint8 `struc:"[16]uint8"` Unvmcap [16]uint8 `struc:"[16]uint8"` Rpmbs uint32 `struc:"uint32"` Edstt uint16 `struc:"uint16"` Dsto uint8 `struc:"uint8"` Fwug uint8 `struc:"uint8"` Kas uint16 `struc:"uint16"` Hctma uint16 `struc:"uint16"` Mntmt uint16 `struc:"uint16"` Mxtmt uint16 `struc:"uint16"` Sanicap uint32 `struc:"uint32"` Hmminds uint32 `struc:"uint32"` Hmmaxd uint16 `struc:"uint16"` Nsetidmax uint16 `struc:"uint16"` Endgidmax uint16 `struc:"uint16"` Anatt uint8 `struc:"uint8"` Anacap uint8 `struc:"uint8"` Anagrpmax uint32 `struc:"uint32"` Nanagrpid uint32 `struc:"uint32"` Pels uint32 `struc:"uint32"` Rsvd356 [156]uint8 `struc:"[156]uint8"` Sqes uint8 `struc:"uint8"` Cqes uint8 `struc:"uint8"` Maxcmd uint16 `struc:"uint16"` Nn uint32 `struc:"uint32"` Oncs uint16 `struc:"uint16"` Fuses uint16 `struc:"uint16"` Fna uint8 `struc:"uint8"` Vwc uint8 `struc:"uint8"` Awun uint16 `struc:"uint16"` Awupf uint16 `struc:"uint16"` Icsvscc uint8 `struc:"uint8"` Nwpc uint8 `struc:"uint8"` Acwu uint16 `struc:"uint16"` Ocfs uint16 `struc:"uint16"` Sgls uint32 `struc:"uint32"` Mnan uint32 `struc:"uint32"` Rsvd544 [224]uint8 `struc:"[224]uint8"` Subnqn [256]uint8 `struc:"[256]uint8"` Rsvd1024 [768]uint8 `struc:"[768]uint8"` Ioccsz uint32 `struc:"uint32"` Iorcsz uint32 `struc:"uint32"` Icdoff uint16 `struc:"uint16"` Ctrattr uint8 `struc:"uint8"` Msdbd uint8 `struc:"uint8"` Rsvd1804 [244]uint8 `struc:"[244]uint8"` Psd [32]IdentifyPowerState Vs [1024]uint8 `struc:"[1024]uint8"` }
type IdentifyPowerState ¶
type IdentifyPowerState struct { MaxPower uint16 `struc:"uint16"` Rsvd2 uint8 `struc:"uint8"` Flags uint8 `struc:"uint8"` EntryLat uint32 `struc:"uint32"` ExitLat uint32 `struc:"uint32"` Readput uint8 `struc:"uint8"` ReadLat uint8 `struc:"uint8"` Writeput uint8 `struc:"uint8"` WriteLat uint8 `struc:"uint8"` IdlePower uint16 `struc:"uint16"` IdleScale uint8 `struc:"uint8"` Rsvd19 uint8 `struc:"uint8"` ActivePower uint16 `struc:"uint16"` ActiveWorkScale uint8 `struc:"uint8"` Rsvd23 [9]uint8 `struc:"[9]uint8"` }
type NvmeAdminCmd ¶
type NvmeAdminCmd PassthruCmd
func (*NvmeAdminCmd) GetDataAddr ¶ added in v0.0.4
func (cmd *NvmeAdminCmd) GetDataAddr() uint64
type PassthruCmd ¶
type PassthruCmd struct { Opcode uint8 Flags uint8 Rsvd1 uint16 Nsid uint32 Cdw2 uint32 Cdw3 uint32 Metadata uint64 MetadataLen uint32 DataLen uint32 Cdw10 uint32 Cdw11 uint32 Cdw12 uint32 Cdw13 uint32 Cdw14 uint32 Cdw15 uint32 TimeoutMs uint32 Result uint32 DataAddr uintptr // First DataBuffer []byte // Second }
func (*PassthruCmd) GetDataAddr ¶ added in v0.0.4
func (cmd *PassthruCmd) GetDataAddr() uint64
type PassthruCmd64 ¶
type SanitizeCommand ¶
type SanitizeCommand uint32
type SanitizeLogPage ¶
type SanitizeLogPage struct { Progress uint16 `struc:"uint16"` Status uint16 `struc:"uint16"` Cdw10Info uint32 `struc:"uint32"` EstOverwriteime uint32 `struc:"uint32"` EstBlockEraseime uint32 `struc:"uint32"` EstCryptoEraseime uint32 `struc:"uint32"` // extended EstOverwriteimeWithNoDeallocate uint32 `struc:"uint32"` EstBlockEraseimeWithNoDeallocate uint32 `struc:"uint32"` EstCryptoEraseimeWithNoDeallocate uint32 `struc:"uint32"` }
*
- NVM_Express_Revision_1.3.pdf
- 5.14.1.9.2 Sanitize Status (Log Identifier 81h)
type SmartLogPage ¶
type SmartLogPage struct { CriticalWarning uint8 `struc:"uint8"` CompositeTemperature uint16 `struc:"uint16"` AvailableSpare uint8 `struc:"uint8"` AvailableSpareThreshold uint8 `struc:"uint8"` PercentageUsed uint8 `struc:"uint8"` Rev01 [26]uint8 `struc:"[26]uint8"` DataUnitsRead [16]uint8 `struc:"[16]uint8"` DataUnitsWritten [16]uint8 `struc:"[16]uint8"` HostReadCommands [16]uint8 `struc:"[16]uint8"` HostWriteCommands [16]uint8 `struc:"[16]uint8"` ControllerBusyTime [16]uint8 `struc:"[16]uint8"` PowerCycles [16]uint8 `struc:"[16]uint8"` PowerOnHours [16]uint8 `struc:"[16]uint8"` UnsafeShutdowns [16]uint8 `struc:"[16]uint8"` MediaAndDataIntegrityErrors [16]uint8 `struc:"[16]uint8"` NumberOfErrorInformationLogEntries [16]uint8 `struc:"[16]uint8"` WarningCompositeTemperatureTime [4]uint8 `struc:"[4]uint8"` CriticalCompositeTemperatureTime [4]uint8 `struc:"[4]uint8"` TemperatureSensor [8]uint16 `struc:"[8]uint16"` ThermalManagementTemperatureTransitionCount [2]uint32 `struc:"[2]uint32"` TotalimeForThermalManagementTemperature [2]uint32 `struc:"[2]uint32"` RevRemaining [280]uint8 `struc:"[280]uint8"` }
*
- NVM_Express_Revision_1.3.pdf
- 5.14.1.2 SMART/Health Information (Log Identifier 02h)
type StatusCode ¶
type StatusCode uint16
Click to show internal directories.
Click to hide internal directories.