nvme_init_read(9) libnvme API manual nvme_init_read(9)

nvme_init_read - Initialize passthru command for a user read command

void nvme_init_read (struct libnvme_passthru_cmd *cmd , __u32 nsid , __u64 slba , __u16 nlb , __u16 control , __u8 dsm , __u16 cev , void *data , __u32 data_len , void *metadata , __u32 metadata_len );

Passthru command to use
Namespace ID
Starting logical block
Number of logical blocks (0-based)
Upper 16 bits of cdw12
Data set management attributes (CETYPE is zero), see enum nvme_io_dsm_flags
Command Extension Value (CETYPE is non-zero)
Pointer to user address of the data buffer
Length of user buffer, data, in bytes
Pointer to user address of the metadata buffer
Length of user buffer, metadata, in bytes

Initializes the passthru command buffer for the Read command.

Assumes a macro or separate function exists to translate the combined NLB/control/prinfo fields into cdw12/cdw13. This transformation assumes the parameters are used for a generic nvme_init_io wrapper.

nvme_init_read October 2026