nvme_io_args(2)

libnvme(9) API Manual libnvme(9)

NAME

struct nvme_io_args - Arguments for NVMe I/O commands

SYNOPSIS

struct nvme_io_args {
__u64 slba;
__u64 storage_tag;
__u32 *result;
void *data;
void *metadata;
int args_size;
int fd;
__u32 timeout;
__u32 nsid;
__u32 reftag;
__u32 data_len;
__u32 metadata_len;
__u16 nlb;
__u16 control;
__u16 apptag;
__u16 appmask;
__u16 dspec;
__u8 dsm;
__u8 rsvd1[1];
__u64 reftag_u64;
__u8 sts;
__u8 pif;
};

Members

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
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.
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.
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.
struct nvme_io_args July 2026