nvme_mi_admin_xfer - Raw admin transfer interface.
Contents
Arguments
ctrl controller to send the admin command to
admin_req request data
req_data_size
size of request data payload
admin_resp buffer for response data
resp_data_offset
offset into request data to retrieve from controller
resp_data_size
size of response data buffer, updated to received size
Description
Performs an arbitrary NVMe Admin command, using the provided request data, in admin_req. The size of the
request data *payload* is specified in req_data_size - this does not include the standard header length
(so a header-only request would have a size of 0).
On success, response data is stored in admin_resp, which has an optional appended payload buffer of
resp_data_size bytes. The actual payload transferred will be stored in resp_data_size. These sizes do not
include the Admin request header, so 0 represents no payload.
As with all Admin commands, we can request partial data from the Admin Response payload, offset by
resp_data_offset.
See: structnvme_mi_admin_req_hdr and structnvme_mi_admin_resp_hdr.
Name
nvme_mi_admin_xfer - Raw admin transfer interface.
Return
The nvme command status if a response was received (see enumnvme_status_field) or -1 with errno set
otherwise..
August 2025 nvme_mi_admin_xfer nvme_mi_admin_xfer(2)
Synopsis
intnvme_mi_admin_xfer(nvme_mi_ctrl_tctrl,structnvme_mi_admin_req_hdr*admin_req,size_treq_data_size,structnvme_mi_admin_resp_hdr*admin_resp,off_tresp_data_offset,size_t*resp_data_size);
