nvme_io_passthru - Man Page
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.