Skip to main content

nvme_id_ns

Struct nvme_id_ns 

Source
#[repr(C)]
pub struct nvme_id_ns {
Show 43 fields pub nsze: __le64, pub ncap: __le64, pub nuse: __le64, pub nsfeat: __u8, pub nlbaf: __u8, pub flbas: __u8, pub mc: __u8, pub dpc: __u8, pub dps: __u8, pub nmic: __u8, pub rescap: __u8, pub fpi: __u8, pub dlfeat: __u8, pub nawun: __le16, pub nawupf: __le16, pub nacwu: __le16, pub nabsn: __le16, pub nabo: __le16, pub nabspf: __le16, pub noiob: __le16, pub nvmcap: [__u8; 16], pub npwg: __le16, pub npwa: __le16, pub npdg: __le16, pub npda: __le16, pub nows: __le16, pub mssrl: __le16, pub mcl: __le32, pub msrc: __u8, pub kpios: __u8, pub nulbaf: __u8, pub rsvd83: __u8, pub kpiodaag: __le32, pub rsvd88: [__u8; 4], pub anagrpid: __le32, pub rsvd96: [__u8; 3], pub nsattr: __u8, pub nvmsetid: __le16, pub endgid: __le16, pub nguid: [__u8; 16], pub eui64: [__u8; 8], pub lbaf: [nvme_lbaf; 64], pub vs: [__u8; 3712],
}
Expand description

struct nvme_id_ns - Identify Namespace data structure @nsze: Namespace Size indicates the total size of the namespace in logical blocks. The number of logical blocks is based on the formatted LBA size. @ncap: Namespace Capacity indicates the maximum number of logical blocks that may be allocated in the namespace at any point in time. The number of logical blocks is based on the formatted LBA size. @nuse: Namespace Utilization indicates the current number of logical blocks allocated in the namespace. This field is smaller than or equal to the Namespace Capacity. The number of logical blocks is based on the formatted LBA size. @nsfeat: Namespace Features, see &enum nvme_id_nsfeat. @nlbaf: Number of LBA Formats defines the number of supported LBA data size and metadata size combinations supported by the namespace and the highest possible index to &struct nvme_id_ns.lbaf. @flbas: Formatted LBA Size, see &enum nvme_id_ns_flbas. @mc: Metadata Capabilities, see &enum nvme_id_ns_mc. @dpc: End-to-end Data Protection Capabilities, see &enum nvme_id_ns_dpc. @dps: End-to-end Data Protection Type Settings, see &enum nvme_id_ns_dps. @nmic: Namespace Multi-path I/O and Namespace Sharing Capabilities, see &enum nvme_id_ns_nmic. @rescap: Reservation Capabilities, see &enum nvme_id_ns_rescap. @fpi: Format Progress Indicator, see &enum nvme_nd_ns_fpi. @dlfeat: Deallocate Logical Block Features, see &enum nvme_id_ns_dlfeat. @nawun: Namespace Atomic Write Unit Normal indicates the namespace specific size of the write operation guaranteed to be written atomically to the NVM during normal operation. @nawupf: Namespace Atomic Write Unit Power Fail indicates the namespace specific size of the write operation guaranteed to be written atomically to the NVM during a power fail or error condition. @nacwu: Namespace Atomic Compare & Write Unit indicates the namespace specific size of the write operation guaranteed to be written atomically to the NVM for a Compare and Write fused command. @nabsn: Namespace Atomic Boundary Size Normal indicates the atomic boundary size for this namespace for the NAWUN value. This field is specified in logical blocks. @nabo: Namespace Atomic Boundary Offset indicates the LBA on this namespace where the first atomic boundary starts. @nabspf: Namespace Atomic Boundary Size Power Fail indicates the atomic boundary size for this namespace specific to the Namespace Atomic Write Unit Power Fail value. This field is specified in logical blocks. @noiob: Namespace Optimal I/O Boundary indicates the optimal I/O boundary for this namespace. This field is specified in logical blocks. The host should construct Read and Write commands that do not cross the I/O boundary to achieve optimal performance. @nvmcap: NVM Capacity indicates the total size of the NVM allocated to this namespace. The value is in bytes. @npwg: Namespace Preferred Write Granularity indicates the smallest recommended write granularity in logical blocks for this namespace. This is a 0’s based value. @npwa: Namespace Preferred Write Alignment indicates the recommended write alignment in logical blocks for this namespace. This is a 0’s based value. @npdg: Namespace Preferred Deallocate Granularity indicates the recommended granularity in logical blocks for the Dataset Management command with the Attribute - Deallocate bit. @npda: Namespace Preferred Deallocate Alignment indicates the recommended alignment in logical blocks for the Dataset Management command with the Attribute - Deallocate bit @nows: Namespace Optimal Write Size indicates the size in logical blocks for optimal write performance for this namespace. This is a 0’s based value. @mssrl: Maximum Single Source Range Length indicates the maximum number of logical blocks that may be specified in each valid Source Range field of a Copy command. @mcl: Maximum Copy Length indicates the maximum number of logical blocks that may be specified in a Copy command. @msrc: Maximum Source Range Count indicates the maximum number of Source Range entries that may be used to specify source data in a Copy command. This is a 0’s based value. @kpios: Key Per I/O Status indicates namespace Key Per I/O capability status. @nulbaf: Number of Unique Capability LBA Formats defines the number of supported user data size and metadata size combinations supported by the namespace that may not share the same capabilities. LBA formats shall be allocated in order and packed sequentially. @rsvd83: Reserved @kpiodaag: Key Per I/O Data Access Alignment and Granularity indicates the alignment and granularity in logical blocks that is required for commands that support a KPIOTAG value in the CETYPE field. @rsvd88: Reserved @anagrpid: ANA Group Identifier indicates the ANA Group Identifier of the ANA group of which the namespace is a member. @rsvd96: Reserved @nsattr: Namespace Attributes, see &enum nvme_id_ns_attr. @nvmsetid: NVM Set Identifier indicates the NVM Set with which this namespace is associated. @endgid: Endurance Group Identifier indicates the Endurance Group with which this namespace is associated. @nguid: Namespace Globally Unique Identifier contains a 128-bit value that is globally unique and assigned to the namespace when the namespace is created. This field remains fixed throughout the life of the namespace and is preserved across namespace and controller operations @eui64: IEEE Extended Unique Identifier contains a 64-bit IEEE Extended Unique Identifier (EUI-64) that is globally unique and assigned to the namespace when the namespace is created. This field remains fixed throughout the life of the namespace and is preserved across namespace and controller operations @lbaf: LBA Format, see &struct nvme_lbaf. @vs: Vendor Specific

Fields§

§nsze: __le64§ncap: __le64§nuse: __le64§nsfeat: __u8§nlbaf: __u8§flbas: __u8§mc: __u8§dpc: __u8§dps: __u8§nmic: __u8§rescap: __u8§fpi: __u8§dlfeat: __u8§nawun: __le16§nawupf: __le16§nacwu: __le16§nabsn: __le16§nabo: __le16§nabspf: __le16§noiob: __le16§nvmcap: [__u8; 16]§npwg: __le16§npwa: __le16§npdg: __le16§npda: __le16§nows: __le16§mssrl: __le16§mcl: __le32§msrc: __u8§kpios: __u8§nulbaf: __u8§rsvd83: __u8§kpiodaag: __le32§rsvd88: [__u8; 4]§anagrpid: __le32§rsvd96: [__u8; 3]§nsattr: __u8§nvmsetid: __le16§endgid: __le16§nguid: [__u8; 16]§eui64: [__u8; 8]§lbaf: [nvme_lbaf; 64]§vs: [__u8; 3712]

Trait Implementations§

Source§

impl Clone for nvme_id_ns

Source§

fn clone(&self) -> nvme_id_ns

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_ns

Source§

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

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

impl Default for nvme_id_ns

Source§

fn default() -> Self

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

impl Copy for nvme_id_ns

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.