.TH "nvme_init_read" 9 "nvme_init_read" "October 2026" "libnvme API manual" LINUX .SH NAME nvme_init_read \- Initialize passthru command for a user read command .SH SYNOPSIS .B "void" nvme_init_read .BI "(struct libnvme_passthru_cmd *cmd " "," .BI "__u32 nsid " "," .BI "__u64 slba " "," .BI "__u16 nlb " "," .BI "__u16 control " "," .BI "__u8 dsm " "," .BI "__u16 cev " "," .BI "void *data " "," .BI "__u32 data_len " "," .BI "void *metadata " "," .BI "__u32 metadata_len " ");" .SH ARGUMENTS .IP "cmd" 12 Passthru command to use .IP "nsid" 12 Namespace ID .IP "slba" 12 Starting logical block .IP "nlb" 12 Number of logical blocks (0-based) .IP "control" 12 Upper 16 bits of cdw12 .IP "dsm" 12 Data set management attributes (CETYPE is zero), see \fIenum nvme_io_dsm_flags\fP .IP "cev" 12 Command Extension Value (CETYPE is non-zero) .IP "data" 12 Pointer to user address of the data buffer .IP "data_len" 12 Length of user buffer, \fIdata\fP, in bytes .IP "metadata" 12 Pointer to user address of the metadata buffer .IP "metadata_len" 12 Length of user buffer, \fImetadata\fP, in bytes .SH "DESCRIPTION" Initializes the passthru command buffer for the Read command. .SH "NOTE" 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.