42 lines
1.7 KiB
Groff
42 lines
1.7 KiB
Groff
.TH "nvme_mi_admin_xfer" 9 "nvme_mi_admin_xfer" "November 2024" "libnvme API manual" LINUX
|
|
.SH NAME
|
|
nvme_mi_admin_xfer \- Raw admin transfer interface.
|
|
.SH SYNOPSIS
|
|
.B "int" nvme_mi_admin_xfer
|
|
.BI "(nvme_mi_ctrl_t ctrl " ","
|
|
.BI "struct nvme_mi_admin_req_hdr *admin_req " ","
|
|
.BI "size_t req_data_size " ","
|
|
.BI "struct nvme_mi_admin_resp_hdr *admin_resp " ","
|
|
.BI "off_t resp_data_offset " ","
|
|
.BI "size_t *resp_data_size " ");"
|
|
.SH ARGUMENTS
|
|
.IP "ctrl" 12
|
|
controller to send the admin command to
|
|
.IP "admin_req" 12
|
|
request data
|
|
.IP "req_data_size" 12
|
|
size of request data payload
|
|
.IP "admin_resp" 12
|
|
buffer for response data
|
|
.IP "resp_data_offset" 12
|
|
offset into request data to retrieve from controller
|
|
.IP "resp_data_size" 12
|
|
size of response data buffer, updated to received size
|
|
.SH "DESCRIPTION"
|
|
Performs an arbitrary NVMe Admin command, using the provided request data,
|
|
in \fIadmin_req\fP. The size of the request data *payload* is specified in
|
|
\fIreq_data_size\fP - 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 \fIadmin_resp\fP, which has an optional
|
|
appended payload buffer of \fIresp_data_size\fP bytes. The actual payload
|
|
transferred will be stored in \fIresp_data_size\fP. 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 \fIresp_data_offset\fP.
|
|
|
|
See: \fIstruct nvme_mi_admin_req_hdr\fP and \fIstruct nvme_mi_admin_resp_hdr\fP.
|
|
.SH "RETURN"
|
|
The nvme command status if a response was received (see
|
|
\fIenum nvme_status_field\fP) or -1 with errno set otherwise..
|