nvme_io_passthru(2)

NAME
nvme_io_passthru - Submit an nvme io passthrough command

SYNOPSIS
int nvme_io_passthru (int fd , __u8 opcode , __u8 flags , __u16 rsvd , __u32 nsid , __u32 cdw2 , __u32 cdw3 , __u32 cdw10 , __u32 cdw11 , __u32 cdw12 , __u32 cdw13 , __u32 cdw14 , __u32 cdw15 , __u32 data_len , void *data , __u32 metadata_len , void *metadata , __u32 timeout_ms , __u32 *result );

ARGUMENTS

fd  File descriptor of nvme device

opcode
    The nvme io command to send

flags
    NVMe command flags (not used)

rsvd
    Reserved for future use

nsid
    Namespace identifier

cdw2
    Command dword 2

cdw3
    Command dword 3

cdw10
    Command dword 10

cdw11
    Command dword 11

cdw12
    Command dword 12

cdw13
    Command dword 13

cdw14
    Command dword 14

cdw15
    Command dword 15

data_len
    Length of the data transferred in this command in bytes

data
    Pointer to user address of the data buffer

metadata_len
    Length of metadata transferred in this command

metadata
    Pointer to user address of the metadata buffer

timeout_ms
    How long the kernel waits for the command to complete

result
    Optional field to return the result from the CQE dword 0

DESCRIPTION
Parameterized form of nvme_submit_io_passthru. This sets up and submits a struct nvme_passthru_cmd.

Known values for opcode are defined in enum nvme_io_opcode.

RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.