Skip to content

Commit ba361b2

Browse files
committed
mi: add nvme_abort() function
This is support for the abort command. Signed-off-by: Tokunori Ikegami <[email protected]>
1 parent 34b8d86 commit ba361b2

3 files changed

Lines changed: 35 additions & 0 deletions

File tree

src/libnvme-mi.map

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# SPDX-License-Identifier: LGPL-2.1-or-later
22
LIBNVME_MI_UNRELEASED {
3+
global:
4+
nvme_mi_admin_abort;
35
};
46

57
LIBNVME_MI_1_14 {

src/nvme/mi.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2668,4 +2668,29 @@ int nvme_mi_aem_process(nvme_mi_ep_t ep, void *userdata)
26682668
return rc;
26692669
}
26702670

2671+
int nvme_mi_admin_abort(nvme_mi_ctrl_t ctrl, struct nvme_abort_args *args)
2672+
{
2673+
struct nvme_mi_admin_resp_hdr resp_hdr;
2674+
struct nvme_mi_admin_req_hdr req_hdr;
2675+
struct nvme_mi_resp resp;
2676+
struct nvme_mi_req req;
2677+
int rc;
2678+
2679+
if (args->args_size < sizeof(*args)) {
2680+
errno = EINVAL;
2681+
return -1;
2682+
}
26712683

2684+
nvme_mi_admin_init_req(ctrl->ep, &req, &req_hdr, ctrl->id, nvme_admin_abort_cmd);
2685+
2686+
req_hdr.cdw10 = NVME_SET(args->sqid, ABORT_CDW10_SQID) |
2687+
NVME_SET(args->cid, ABORT_CDW10_CID),
2688+
2689+
nvme_mi_admin_init_resp(&resp, &resp_hdr);
2690+
2691+
rc = nvme_mi_submit(ctrl->ep, &req, &resp);
2692+
if (rc)
2693+
return rc;
2694+
2695+
return nvme_mi_admin_parse_status(&resp, NULL);
2696+
}

src/nvme/mi.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3559,4 +3559,12 @@ int nvme_mi_aem_disable(nvme_mi_ep_t ep);
35593559
*/
35603560
int nvme_mi_aem_process(nvme_mi_ep_t ep, void *userdata);
35613561

3562+
/**
3563+
* nvme_mi_admin_abort() - Submit an abort command
3564+
* @ctrl: Controller to send abort command to
3565+
* @args: &struct nvme_abort_args argument structure
3566+
*
3567+
* Return: 0 on success, non-zero on failure
3568+
*/
3569+
int nvme_mi_admin_abort(nvme_mi_ctrl_t ctrl, struct nvme_abort_args *args);
35623570
#endif /* _LIBNVME_MI_MI_H */

0 commit comments

Comments
 (0)