return do_admin_op(ns_mgmt_delete, dev, nsid);
}
+int nvme_cli_ns_attach(struct nvme_dev *dev, struct nvme_ns_attach_args *args)
+{
+ return do_admin_args_op(ns_attach, dev, args);
+}
+
+int nvme_cli_ns_attach_ctrls(struct nvme_dev *dev, __u32 nsid,
+ struct nvme_ctrl_list *ctrlist)
+{
+ return do_admin_op(ns_attach_ctrls, dev, nsid, ctrlist);
+}
+
+int nvme_cli_ns_detach_ctrls(struct nvme_dev *dev, __u32 nsid,
+ struct nvme_ctrl_list *ctrlist)
+{
+ return do_admin_op(ns_detach_ctrls, dev, nsid, ctrlist);
+}
/* The MI & direct interfaces don't have an exactly-matching API for
* ns_mgmt_create, as we don't support a timeout for MI.
int nvme_cli_ns_mgmt_create(struct nvme_dev *dev, struct nvme_id_ns *ns,
__u32 *nsid, __u32 timeout, __u8 csi);
+int nvme_cli_ns_attach(struct nvme_dev *dev, struct nvme_ns_attach_args *args);
+
+int nvme_cli_ns_attach_ctrls(struct nvme_dev *dev, __u32 nsid,
+ struct nvme_ctrl_list *ctrlist);
+int nvme_cli_ns_detach_ctrls(struct nvme_dev *dev, __u32 nsid,
+ struct nvme_ctrl_list *ctrlist);
+
int nvme_cli_get_features(struct nvme_dev *dev,
struct nvme_get_features_args *args);
nvme_init_ctrl_list(&cntlist, num, ctrlist);
if (attach)
- err = nvme_ns_attach_ctrls(dev_fd(dev), cfg.namespace_id,
- &cntlist);
+ err = nvme_cli_ns_attach_ctrls(dev, cfg.namespace_id,
+ &cntlist);
else
- err = nvme_ns_detach_ctrls(dev_fd(dev), cfg.namespace_id,
- &cntlist);
+ err = nvme_cli_ns_detach_ctrls(dev, cfg.namespace_id,
+ &cntlist);
if (!err)
printf("%s: Success, nsid:%d\n", cmd->name, cfg.namespace_id);