Scroll to navigation

nvme_mi_mi_xfer(2) libnvme API manual nvme_mi_mi_xfer(2)

NAME

nvme_mi_mi_xfer - Raw mi transfer interface.

SYNOPSIS

int nvme_mi_mi_xfer (nvme_mi_ep_t ep , struct nvme_mi_mi_req_hdr *mi_req , size_t req_data_size , struct nvme_mi_mi_resp_hdr *mi_resp , size_t *resp_data_size );

ARGUMENTS

endpoint to send the MI command to
request data
size of request data payload
buffer for response data
size of response data buffer, updated to received size

DESCRIPTION

Performs an arbitrary NVMe MI command, using the provided request data, in mi_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). Note that the Management Request Doublewords are considered part of the header data.

On success, response data is stored in mi_resp, which has an optional appended payload buffer of resp_data_size bytes. The actual payload size transferred will be stored in resp_data_size. This size does not include the MI response header, so 0 represents no payload.

See: struct nvme_mi_mi_req_hdr and struct nvme_mi_mi_resp_hdr.

RETURN

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

nvme_mi_mi_xfer March 2025