Skip to main content

nvme_io_args

Struct nvme_io_args 

Source
#[repr(C)]
pub struct nvme_io_args {
Show 22 fields pub slba: __u64, pub storage_tag: __u64, pub result: *mut __u32, pub data: *mut c_void, pub metadata: *mut c_void, pub args_size: c_int, pub fd: c_int, pub timeout: __u32, pub nsid: __u32, pub reftag: __u32, pub data_len: __u32, pub metadata_len: __u32, pub nlb: __u16, pub control: __u16, pub apptag: __u16, pub appmask: __u16, pub dspec: __u16, pub dsm: __u8, pub rsvd1: [__u8; 1], pub reftag_u64: __u64, pub sts: __u8, pub pif: __u8,
}
Expand description

struct nvme_io_args - Arguments for NVMe I/O commands @slba: Starting logical block @storage_tag: This filed specifies Variable Sized Expected Logical Block Storage Tag (ELBST) or Logical Block Storage Tag (LBST) @result: The command completion result from CQE dword0 @data: Pointer to user address of the data buffer @metadata: Pointer to user address of the metadata buffer @args_size: Size of &struct nvme_io_args @fd: File descriptor of nvme device @timeout: Timeout in ms @nsid: Namespace ID @data_len: Length of user buffer, @data, in bytes @metadata_len:Length of user buffer, @metadata, in bytes @nlb: Number of logical blocks to send (0’s based value) @control: Command control flags, see &enum nvme_io_control_flags. @apptag: This field specifies the Application Tag Mask expected value. Used only if the namespace is formatted to use end-to-end protection information. @appmask: This field specifies the Application Tag expected value. Used only if the namespace is formatted to use end-to-end protection information. @reftag: This field specifies the variable sized Expected Initial Logical Block Reference Tag (EILBRT) or Initial Logical Block Reference Tag (ILBRT). Used only if the namespace is formatted to use end-to-end protection information. @dspec: Directive specific value @dsm: Data set management attributes, see &enum nvme_io_dsm_flags @rsvd1: Reserved @reftag_u64: This field specifies the variable sized Expected Initial Logical Block Reference Tag (EILBRT) or Initial Logical Block Reference Tag (ILBRT). It is the 8 byte version required for enhanced protection information. Used only if the namespace is formatted to use end-to-end protection information. @sts: Storage tag size in bits, set by namespace Extended LBA Format @pif: Protection information format, determines how variable sized storage_tag and reftag are put into dwords 2, 3, and 14. Set by namespace Extended LBA Format.

Fields§

§slba: __u64§storage_tag: __u64§result: *mut __u32§data: *mut c_void§metadata: *mut c_void§args_size: c_int§fd: c_int§timeout: __u32§nsid: __u32§reftag: __u32§data_len: __u32§metadata_len: __u32§nlb: __u16§control: __u16§apptag: __u16§appmask: __u16§dspec: __u16§dsm: __u8§rsvd1: [__u8; 1]§reftag_u64: __u64§sts: __u8§pif: __u8

Trait Implementations§

Source§

impl Clone for nvme_io_args

Source§

fn clone(&self) -> nvme_io_args

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_io_args

Source§

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

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

impl Default for nvme_io_args

Source§

fn default() -> Self

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

impl Copy for nvme_io_args

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.