#[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: __u8Trait Implementations§
Source§impl Clone for nvme_io_args
impl Clone for nvme_io_args
Source§fn clone(&self) -> nvme_io_args
fn clone(&self) -> nvme_io_args
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more