Skip to main content

nvme_id_ctrl

Struct nvme_id_ctrl 

Source
#[repr(C)]
pub struct nvme_id_ctrl {
Show 120 fields pub vid: __le16, pub ssvid: __le16, pub sn: [c_char; 20], pub mn: [c_char; 40], pub fr: [c_char; 8], pub rab: __u8, pub ieee: [__u8; 3], pub cmic: __u8, pub mdts: __u8, pub cntlid: __le16, pub ver: __le32, pub rtd3r: __le32, pub rtd3e: __le32, pub oaes: __le32, pub ctratt: __le32, pub rrls: __le16, pub bpcap: __u8, pub rsvd103: __u8, pub nssl: __le32, pub rsvd108: [__u8; 2], pub plsi: __u8, pub cntrltype: __u8, pub fguid: [__u8; 16], pub crdt1: __le16, pub crdt2: __le16, pub crdt3: __le16, pub crcap: __u8, pub rsvd135: [__u8; 118], pub nvmsr: __u8, pub vwci: __u8, pub mec: __u8, pub oacs: __le16, pub acl: __u8, pub aerl: __u8, pub frmw: __u8, pub lpa: __u8, pub elpe: __u8, pub npss: __u8, pub avscc: __u8, pub apsta: __u8, pub wctemp: __le16, pub cctemp: __le16, pub mtfa: __le16, pub hmpre: __le32, pub hmmin: __le32, pub tnvmcap: [__u8; 16], pub unvmcap: [__u8; 16], pub rpmbs: __le32, pub edstt: __le16, pub dsto: __u8, pub fwug: __u8, pub kas: __le16, pub hctma: __le16, pub mntmt: __le16, pub mxtmt: __le16, pub sanicap: __le32, pub hmminds: __le32, pub hmmaxd: __le16, pub nsetidmax: __le16, pub endgidmax: __le16, pub anatt: __u8, pub anacap: __u8, pub anagrpmax: __le32, pub nanagrpid: __le32, pub pels: __le32, pub domainid: __le16, pub kpioc: __u8, pub rsvd359: __u8, pub mptfawr: __le16, pub rsvd362: [__u8; 6], pub megcap: [__u8; 16], pub tmpthha: __u8, pub rsvd385: __u8, pub cqt: __le16, pub rsvd388: [__u8; 124], pub sqes: __u8, pub cqes: __u8, pub maxcmd: __le16, pub nn: __le32, pub oncs: __le16, pub fuses: __le16, pub fna: __u8, pub vwc: __u8, pub awun: __le16, pub awupf: __le16, pub icsvscc: __u8, pub nwpc: __u8, pub acwu: __le16, pub ocfs: __le16, pub sgls: __le32, pub mnan: __le32, pub maxdna: [__u8; 16], pub maxcna: __le32, pub oaqd: __le32, pub rhiri: __u8, pub hirt: __u8, pub cmmrtd: __le16, pub nmmrtd: __le16, pub minmrtg: __u8, pub maxmrtg: __u8, pub trattr: __u8, pub rsvd577: __u8, pub mcudmq: __le16, pub mnsudmq: __le16, pub mcmr: __le16, pub nmcmr: __le16, pub mcdqpc: __le16, pub rsvd588: [__u8; 180], pub subnqn: [c_char; 256], pub rsvd1024: [__u8; 768], pub ioccsz: __le32, pub iorcsz: __le32, pub icdoff: __le16, pub fcatt: __u8, pub msdbd: __u8, pub ofcs: __le16, pub dctype: __u8, pub rsvd1807: [__u8; 241], pub psd: [nvme_id_psd; 32], pub vs: [__u8; 1024],
}
Expand description

struct nvme_id_ctrl - Identify Controller data structure @vid: PCI Vendor ID, the company vendor identifier that is assigned by the PCI SIG. @ssvid: PCI Subsystem Vendor ID, the company vendor identifier that is assigned by the PCI SIG for the subsystem. @sn: Serial Number in ASCII @mn: Model Number in ASCII @fr: Firmware Revision in ASCII, the currently active firmware revision for the NVM subsystem @rab: Recommended Arbitration Burst, reported as a power of two @ieee: IEEE assigned Organization Unique Identifier @cmic: Controller Multipath IO and Namespace Sharing Capabilities of the controller and NVM subsystem. See &enum nvme_id_ctrl_cmic. @mdts: Max Data Transfer Size is the largest data transfer size. The host should not submit a command that exceeds this maximum data transfer size. The value is in units of the minimum memory page size (CAP.MPSMIN) and is reported as a power of two @cntlid: Controller ID, the NVM subsystem unique controller identifier associated with the controller. @ver: Version, this field contains the value reported in the Version register, or property (see &enum nvme_registers %NVME_REG_VS). @rtd3r: RTD3 Resume Latency, the expected latency in microseconds to resume from Runtime D3 @rtd3e: RTD3 Exit Latency, the typical latency in microseconds to enter Runtime D3. @oaes: Optional Async Events Supported, see @enum nvme_id_ctrl_oaes. @ctratt: Controller Attributes, see @enum nvme_id_ctrl_ctratt. @rrls: Read Recovery Levels. If a bit is set, then the corresponding Read Recovery Level is supported. If a bit is cleared, then the corresponding Read Recovery Level is not supported. @bpcap: Boot Partition Capabilities, see &enum nvme_id_ctrl_bpcap. @rsvd103: Reserved @nssl: NVM Subsystem Shutdown Latency (NSSL). This field indicates the typical latency in microseconds for an NVM Subsystem Shutdown to complete. @rsvd108: Reserved @plsi: Power Loss Signaling Information (PLSI), see &enum nvme_id_ctrl_plsi @cntrltype: Controller Type, see &enum nvme_id_ctrl_cntrltype @fguid: FRU GUID, a 128-bit value that is globally unique for a given Field Replaceable Unit @crdt1: Controller Retry Delay time in 100 millisecond units if CQE CRD field is 1 @crdt2: Controller Retry Delay time in 100 millisecond units if CQE CRD field is 2 @crdt3: Controller Retry Delay time in 100 millisecond units if CQE CRD field is 3 @crcap: Controller Reachability Capabilities (CRCAP), see &enum nvme_id_ctrl_crcap @rsvd135: Reserved @nvmsr: NVM Subsystem Report, see &enum nvme_id_ctrl_nvmsr @vwci: VPD Write Cycle Information, see &enum nvme_id_ctrl_vwci @mec: Management Endpoint Capabilities, see &enum nvme_id_ctrl_mec @oacs: Optional Admin Command Support,the optional Admin commands and features supported by the controller, see &enum nvme_id_ctrl_oacs. @acl: Abort Command Limit, the maximum number of concurrently executing Abort commands supported by the controller. This is a 0’s based value. @aerl: Async Event Request Limit, the maximum number of concurrently outstanding Asynchronous Event Request commands supported by the controller This is a 0’s based value. @frmw: Firmware Updates indicates capabilities regarding firmware updates. See &enum nvme_id_ctrl_frmw. @lpa: Log Page Attributes, see &enum nvme_id_ctrl_lpa. @elpe: Error Log Page Entries, the maximum number of Error Information log entries that are stored by the controller. This field is a 0’s based value. @npss: Number of Power States Supported, the number of NVM Express power states supported by the controller, indicating the number of valid entries in &struct nvme_id_ctrl.psd. This is a 0’s based value. @avscc: Admin Vendor Specific Command Configuration, see &enum nvme_id_ctrl_avscc. @apsta: Autonomous Power State Transition Attributes, see &enum nvme_id_ctrl_apsta. @wctemp: Warning Composite Temperature Threshold indicates the minimum Composite Temperature field value (see &struct nvme_smart_log.critical_comp_time) that indicates an overheating condition during which controller operation continues. @cctemp: Critical Composite Temperature Threshold, field indicates the minimum Composite Temperature field value (see &struct nvme_smart_log.critical_comp_time) that indicates a critical overheating condition. @mtfa: Maximum Time for Firmware Activation indicates the maximum time the controller temporarily stops processing commands to activate the firmware image, specified in 100 millisecond units. This field is always valid if the controller supports firmware activation without a reset. @hmpre: Host Memory Buffer Preferred Size indicates the preferred size that the host is requested to allocate for the Host Memory Buffer feature in 4 KiB units. @hmmin: Host Memory Buffer Minimum Size indicates the minimum size that the host is requested to allocate for the Host Memory Buffer feature in 4 KiB units. @tnvmcap: Total NVM Capacity, the total NVM capacity in the NVM subsystem. The value is in bytes. @unvmcap: Unallocated NVM Capacity, the unallocated NVM capacity in the NVM subsystem. The value is in bytes. @rpmbs: Replay Protected Memory Block Support, see &enum nvme_id_ctrl_rpmbs. @edstt: Extended Device Self-test Time, if Device Self-test command is supported (see &struct nvme_id_ctrl.oacs, %NVME_CTRL_OACS_SELF_TEST), then this field indicates the nominal amount of time in one minute units that the controller takes to complete an extended device self-test operation when in power state 0. @dsto: Device Self-test Options, see &enum nvme_id_ctrl_dsto. @fwug: Firmware Update Granularity indicates the granularity and alignment requirement of the firmware image being updated by the Firmware Image Download command. The value is reported in 4 KiB units. A value of 0h indicates no information on granularity is provided. A value of FFh indicates no restriction @kas: Keep Alive Support indicates the granularity of the Keep Alive Timer in 100 millisecond units. @hctma: Host Controlled Thermal Management Attributes, see &enum nvme_id_ctrl_hctm. @mntmt: Minimum Thermal Management Temperature indicates the minimum temperature, in degrees Kelvin, that the host may request in the Thermal Management Temperature 1 field and Thermal Management Temperature 2 field of a Set Features command with the Feature Identifier field set to %NVME_FEAT_FID_HCTM. @mxtmt: Maximum Thermal Management Temperature indicates the maximum temperature, in degrees Kelvin, that the host may request in the Thermal Management Temperature 1 field and Thermal Management Temperature 2 field of the Set Features command with the Feature Identifier set to %NVME_FEAT_FID_HCTM. @sanicap: Sanitize Capabilities, see &enum nvme_id_ctrl_sanicap @hmminds: Host Memory Buffer Minimum Descriptor Entry Size indicates the minimum usable size of a Host Memory Buffer Descriptor Entry in 4 KiB units. @hmmaxd: Host Memory Maximum Descriptors Entries indicates the number of usable Host Memory Buffer Descriptor Entries. @nsetidmax: NVM Set Identifier Maximum, defines the maximum value of a valid NVM Set Identifier for any controller in the NVM subsystem. @endgidmax: Endurance Group Identifier Maximum, defines the maximum value of a valid Endurance Group Identifier for any controller in the NVM subsystem. @anatt: ANA Transition Time indicates the maximum amount of time, in seconds, for a transition between ANA states or the maximum amount of time, in seconds, that the controller reports the ANA change state. @anacap: Asymmetric Namespace Access Capabilities, see &enum nvme_id_ctrl_anacap. @anagrpmax: ANA Group Identifier Maximum indicates the maximum value of a valid ANA Group Identifier for any controller in the NVM subsystem. @nanagrpid: Number of ANA Group Identifiers indicates the number of ANA groups supported by this controller. @pels: Persistent Event Log Size indicates the maximum reportable size for the Persistent Event Log. @domainid: Domain Identifier indicates the identifier of the domain that contains this controller. @kpioc: Key Per I/O Capabilities (KPIOC), see &enum nvme_id_ctrl_kpioc @rsvd359: Reserved @mptfawr: Maximum Processing Time for Firmware Activation Without Reset (MPTFAWR). This field shall indicate the estimated maximum time in 100 ms units required by the controller to process a Firmware Commit command that specifies a value of 011b in the Commit Action field @rsvd362: Reserved @megcap: Max Endurance Group Capacity indicates the maximum capacity of a single Endurance Group. @tmpthha: Temperature Threshold Hysteresis Attributes @rsvd385: Reserved @cqt: Command Quiesce Time (CQT). his field indicates the expected worst-case time in 1 millisecond units for the controller to quiesce all outstanding commands after a Keep Alive Timeout or other communication loss. @rsvd388: Reserved @sqes: Submission Queue Entry Size, see &enum nvme_id_ctrl_sqes. @cqes: Completion Queue Entry Size, see &enum nvme_id_ctrl_cqes. @maxcmd: Maximum Outstanding Commands indicates the maximum number of commands that the controller processes at one time for a particular queue. @nn: Number of Namespaces indicates the maximum value of a valid nsid for the NVM subsystem. If the MNAN (&struct nvme_id_ctrl.mnan field is cleared to 0h, then this field also indicates the maximum number of namespaces supported by the NVM subsystem. @oncs: Optional NVM Command Support, see &enum nvme_id_ctrl_oncs. @fuses: Fused Operation Support, see &enum nvme_id_ctrl_fuses. @fna: Format NVM Attributes, see &enum nvme_id_ctrl_fna. @vwc: Volatile Write Cache, see &enum nvme_id_ctrl_vwc. @awun: Atomic Write Unit Normal indicates the size of the write operation guaranteed to be written atomically to the NVM across all namespaces with any supported namespace format during normal operation. This field is specified in logical blocks and is a 0’s based value. @awupf: Atomic Write Unit Power Fail indicates the size of the write operation guaranteed to be written atomically to the NVM across all namespaces with any supported namespace format during a power fail or error condition. This field is specified in logical blocks and is a 0’s based value. @icsvscc: NVM Vendor Specific Command Configuration, see &enum nvme_id_ctrl_nvscc. @nwpc: Namespace Write Protection Capabilities, see &enum nvme_id_ctrl_nwpc. @acwu: Atomic Compare & Write Unit indicates the size of the write operation guaranteed to be written atomically to the NVM across all namespaces with any supported namespace format for a Compare and Write fused operation. This field is specified in logical blocks and is a 0’s based value. @ocfs: Optional Copy Formats Supported, each bit n means controller supports Copy Format n. @sgls: SGL Support, see &enum nvme_id_ctrl_sgls @mnan: Maximum Number of Allowed Namespaces indicates the maximum number of namespaces supported by the NVM subsystem. @maxdna: Maximum Domain Namespace Attachments indicates the maximum of the sum of the number of namespaces attached to each I/O controller in the Domain. @maxcna: Maximum I/O Controller Namespace Attachments indicates the maximum number of namespaces that are allowed to be attached to this I/O controller. @oaqd: Optimal Aggregated Queue Depth indicates the recommended maximum total number of outstanding I/O commands across all I/O queues on the controller for optimal operation. @rhiri: Recommended Host-Initiated Refresh Interval (RHIRI). If the Host-Initiated Refresh capability is supported, then this field indicates the recommended time interval in days from last power down to the time at which the host should initiate the Host-Initiated Refresh operation. If this field is cleared to 0h, then this field is not reported. @hirt: Host-Initiated Refresh Time (HIRT). If the Host-Initiated Refresh capability is supported, then this field indicates the nominal amount of time in minutes that the controller takes to complete the Host-Initiated Refresh operation. If this field is cleared to 0h, then this field is not reported. @cmmrtd: Controller Maximum Memory Range Tracking Descriptors indicates the maximum number of Memory Range Tracking Descriptors the controller supports. @nmmrtd: NVM Subsystem Maximum Memory Range Tracking Descriptors indicates the maximum number of Memory Range Tracking Descriptors the NVM subsystem supports. @minmrtg: Minimum Memory Range Tracking Granularity indicates the minimum value supported in the Requested Memory Range Tracking Granularity (RMRTG) field of the Track Memory Ranges data structure. @maxmrtg: Maximum Memory Range Tracking Granularity indicates the maximum value supported in the Requested Memory Range Tracking Granularity (RMRTG) field of the Track Memory Ranges data structure. @trattr: Tracking Attributes indicates supported attributes for the Track Send command and Track Receive command. see &enum nvme_id_ctrl_trattr @rsvd577: Reserved @mcudmq: Maximum Controller User Data Migration Queues indicates the maximum number of User Data Migration Queues supported by the controller. @mnsudmq: Maximum NVM Subsystem User Data Migration Queues indicates the maximum number of User Data Migration Queues supported by the NVM subsystem. @mcmr: Maximum CDQ Memory Ranges indicates the maximum number of memory ranges allowed to be specified by the PRP1 field of a Controller Data Queue command. @nmcmr: NVM Subsystem Maximum CDQ Memory Ranges indicates the maximum number of memory ranges for all Controller Data Queues in the NVM subsystem. @mcdqpc: Maximum Controller Data Queue PRP Count indicates the maximum number of PRPs allowed to be specified in the PRP list in the Controller Data Queue command. @rsvd588: Reserved @subnqn: NVM Subsystem NVMe Qualified Name, UTF-8 null terminated string @rsvd1024: Reserved @ioccsz: I/O Queue Command Capsule Supported Size, defines the maximum I/O command capsule size in 16 byte units. @iorcsz: I/O Queue Response Capsule Supported Size, defines the maximum I/O response capsule size in 16 byte units. @icdoff: In Capsule Data Offset, defines the offset where data starts within a capsule. This value is applicable to I/O Queues only. @fcatt: Fabrics Controller Attributes, see &enum nvme_id_ctrl_fcatt. @msdbd: Maximum SGL Data Block Descriptors indicates the maximum number of SGL Data Block or Keyed SGL Data Block descriptors that a host is allowed to place in a capsule. A value of 0h indicates no limit. @ofcs: Optional Fabric Commands Support, see &enum nvme_id_ctrl_ofcs. @dctype: Discovery Controller Type (DCTYPE). This field indicates what type of Discovery controller the controller is (see enum nvme_id_ctrl_dctype) @rsvd1807: Reserved @psd: Power State Descriptors, see &struct nvme_id_psd. @vs: Vendor Specific

Fields§

§vid: __le16§ssvid: __le16§sn: [c_char; 20]§mn: [c_char; 40]§fr: [c_char; 8]§rab: __u8§ieee: [__u8; 3]§cmic: __u8§mdts: __u8§cntlid: __le16§ver: __le32§rtd3r: __le32§rtd3e: __le32§oaes: __le32§ctratt: __le32§rrls: __le16§bpcap: __u8§rsvd103: __u8§nssl: __le32§rsvd108: [__u8; 2]§plsi: __u8§cntrltype: __u8§fguid: [__u8; 16]§crdt1: __le16§crdt2: __le16§crdt3: __le16§crcap: __u8§rsvd135: [__u8; 118]§nvmsr: __u8§vwci: __u8§mec: __u8§oacs: __le16§acl: __u8§aerl: __u8§frmw: __u8§lpa: __u8§elpe: __u8§npss: __u8§avscc: __u8§apsta: __u8§wctemp: __le16§cctemp: __le16§mtfa: __le16§hmpre: __le32§hmmin: __le32§tnvmcap: [__u8; 16]§unvmcap: [__u8; 16]§rpmbs: __le32§edstt: __le16§dsto: __u8§fwug: __u8§kas: __le16§hctma: __le16§mntmt: __le16§mxtmt: __le16§sanicap: __le32§hmminds: __le32§hmmaxd: __le16§nsetidmax: __le16§endgidmax: __le16§anatt: __u8§anacap: __u8§anagrpmax: __le32§nanagrpid: __le32§pels: __le32§domainid: __le16§kpioc: __u8§rsvd359: __u8§mptfawr: __le16§rsvd362: [__u8; 6]§megcap: [__u8; 16]§tmpthha: __u8§rsvd385: __u8§cqt: __le16§rsvd388: [__u8; 124]§sqes: __u8§cqes: __u8§maxcmd: __le16§nn: __le32§oncs: __le16§fuses: __le16§fna: __u8§vwc: __u8§awun: __le16§awupf: __le16§icsvscc: __u8§nwpc: __u8§acwu: __le16§ocfs: __le16§sgls: __le32§mnan: __le32§maxdna: [__u8; 16]§maxcna: __le32§oaqd: __le32§rhiri: __u8§hirt: __u8§cmmrtd: __le16§nmmrtd: __le16§minmrtg: __u8§maxmrtg: __u8§trattr: __u8§rsvd577: __u8§mcudmq: __le16§mnsudmq: __le16§mcmr: __le16§nmcmr: __le16§mcdqpc: __le16§rsvd588: [__u8; 180]§subnqn: [c_char; 256]§rsvd1024: [__u8; 768]§ioccsz: __le32§iorcsz: __le32§icdoff: __le16§fcatt: __u8§msdbd: __u8§ofcs: __le16§dctype: __u8§rsvd1807: [__u8; 241]§psd: [nvme_id_psd; 32]§vs: [__u8; 1024]

Trait Implementations§

Source§

impl Clone for nvme_id_ctrl

Source§

fn clone(&self) -> nvme_id_ctrl

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for nvme_id_ctrl

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for nvme_id_ctrl

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Copy for nvme_id_ctrl

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.