| libnvme(2) | API Manual | libnvme(2) |
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 | December 2025 |