Enumerations

enum AdminCommandOpcode
Name Value
kDeleteIoSubmissionQueue 0x00
kCreateIoSubmissionQueue 0x01
kGetLogPage 0x02
kDeleteIoCompletionQueue 0x04
kCreateIoCompletionQueue 0x05
kIdentify 0x06
kAbort 0x08
kSetFeatures 0x09
kGetFeatures 0x0A
kAsynchronousEventRequest 0x0C
kNamespaceManagement 0x0D
kFirmwareCommit 0x10
kFirmwareImageDownload 0x11
kDeviceSelftest 0x14
kNamespaceAttachment 0x15
kKeepAlive 0x18
kDirectiveSend 0x19
kDirectiveReceive 0x1A
kVirtualizationManagement 0x1C
kNVMeMISend 0x1D
kNVMeMIReceive 0x1E
kCapacityManagement 0x20
kLockdown 0x24
kDoorbellBufferConfig 0x7C
kFabricsCommands 0x7F
kFormatNVM 0x80
kSecuritySend 0x81
kSecurityReceive 0x82
kSanitize 0x84
kGetLBAStatus 0x86

NVM Express Base Specification 2.0c, section 5 "Admin Command Set".

Defined at line 13 of file ../../src/devices/block/drivers/nvme/commands.h

enum Feature
Name Value
kFeatureArbitration 0x1
kFeaturePowerManagement 0x2
kFeatureLbaRangeType 0x3
kFeatureTemperatureThreshold 0x4
kFeatureVolatileWriteCache 0x6
kFeatureNumberOfQueues 0x7
kFeatureInterruptCoalescing 0x8
kFeatureInterruptVectorConfiguration 0x9
kFeatureAsynchronousEventConfiguration 0xb
kFeatureAutonomousPowerStateTransition 0xc
kFeatureHostMemoryBuffer 0xd
kFeatureTimestamp 0xe
kFeatureKeepAliveTimer 0xf
kFeatureHostControlledThermalManagement 0x10
kFeatureNonOperationalPowerStateConfig 0x11
kFeatureReadRecoveryLevelConfig 0x12
kFeaturePredictableLatencyModeConfig 0x13
kFeaturePredictableLatencyModeWindow 0x14
kFeatureHostBehaviorSupport 0x16
kFeatureSanitizeConfig 0x17
kFeatureEnduranceGroupEventConfig 0x18
kFeatureIoCommandSetProfile 0x19
kFeatureSpinupControl 0x1a
kFeatureEnhancedControllerMetadata 0x7d
kFeatureControllerMetadata 0x7e
kFeatureNamespaceMetadata 0x7f
kFeatureSoftwareProgressMarker 0x80
kFeatureHostIdentifier 0x81
kFeatureReservationNotificationMask 0x82
kFeatureReservationPersistance 0x83
kFeatureNamespaceWriteProtectionConfig 0x84

NVM Express Base Specification 2.0, section 5.27 "Set Features command".

Defined at line 15 of file ../../src/devices/block/drivers/nvme/commands/features.h

enum IoCommandOpcode
Name Value
kFlush 0x00
kWrite 0x01
kRead 0x02
kWriteUncorrectable 0x04
kCompare 0x05
kWriteZeroes 0x08
kDatasetManagement 0x09
kVerify 0x0C
kReservationRegister 0x0D
kReservationReport 0x0E
kReservationAcquire 0x11
kReservationRelease 0x15
kCopy 0x19

NVM Express Command Set Specification 1.0c, section 3.2 "NVM Command Set Commands".

Defined at line 47 of file ../../src/devices/block/drivers/nvme/commands.h

enum StatusCodeType
Name Value
kGeneric 0
kCommandSpecific 1
kIntegrityErrors 2
kPathRelated 3
kVendorSpecific 7

Defined at line 98 of file ../../src/devices/block/drivers/nvme/commands.h

enum GenericStatus
Name Value
kSuccess 0x0
kInvalidOpcode 0x1
kInvalidField 0x2
kCommandIdConflict 0x3
kDataTransferError 0x4
kAbortedDueToPowerLossNotification 0x5
kInternalError 0x6
kAbortRequest 0x7
kSubmissionQueueDeleted 0x8
kFailedFusedCommand 0x9
kMissingFusedCommand 0xa
kInvalidNamespaceOrFormat 0xb
kCommandSequenceError 0xc
kInvalidSglSegmentDescriptor 0xd
kInvalidSglDescriptorCount 0xe
kDataSglLengthInvalid 0xf
kMetadataSglLengthInvalid 0x10
kSglDescriptorTypeInvalid 0x11
kInvalidControllerMemoryUse 0x12
kPrpOffsetInvalid 0x13
kAtomicWriteUnitExceeded 0x14
kOperationDenied 0x15
kSglOffsetInvalid 0x16
kHostIdentifierInconsistentFormat 0x18
kKeepAliveExpired 0x19
kKeepAliveInvalid 0x1a
kAbortedDueToPreemptAndAbort 0x1b
kSanitizeFailed 0x1c
kSanitizeInProgress 0x1d
kSglDataBlockGranularityInvalid 0x1e
kCommandNotSupportedInCmb 0x1f
kNamespaceWriteProtected 0x20
kCommandInterrupted 0x21
kTransientTransportError 0x22
kProhibitedByLockdown 0x23
kMediaNotReady 0x24
kLbaOutOfRange 0x80
kCapacityExceeded 0x81
kNamespaceNotReady 0x82
kReservationConflict 0x83
kFormatInProgress 0x84
kInvalidValueSize 0x85
kInvalidKeySize 0x86
kKeyNotExist 0x87
kUnrecoveredError 0x88
kKeyExists 0x89

Defined at line 105 of file ../../src/devices/block/drivers/nvme/commands.h

Records

Functions

  • bool operator< (const VersionReg & lhs, const VersionReg & rhs)

    Defined at line 87 of file ../../src/devices/block/drivers/nvme/registers.h

  • bool operator> (const VersionReg & lhs, const VersionReg & rhs)

    Defined at line 90 of file ../../src/devices/block/drivers/nvme/registers.h

  • bool operator<= (const VersionReg & lhs, const VersionReg & rhs)

    Defined at line 91 of file ../../src/devices/block/drivers/nvme/registers.h

  • bool operator>= (const VersionReg & lhsconst VersionReg & rhs)

    Defined at line 92 of file ../../src/devices/block/drivers/nvme/registers.h

Variables

const uint32_t NVME_REG_CAP

Defined at line 14 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_VS

Defined at line 15 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_INTMS

Defined at line 16 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_INTMC

Defined at line 17 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_CC

Defined at line 18 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_CSTS

Defined at line 19 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_NSSR

Defined at line 20 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_AQA

Defined at line 21 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_ASQ

Defined at line 22 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_ACQ

Defined at line 23 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_CMBLOC

Defined at line 24 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_CMBSZ

Defined at line 25 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_BPINFO

Defined at line 26 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_BPRSEL

Defined at line 27 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_BPMBL

Defined at line 28 of file ../../src/devices/block/drivers/nvme/registers.h

const uint32_t NVME_REG_DOORBELL_BASE

Defined at line 30 of file ../../src/devices/block/drivers/nvme/registers.h