]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
nvme: Add wrappers for basic NS identify
authorJeremy Kerr <jk@codeconstruct.com.au>
Thu, 14 Jul 2022 07:44:05 +0000 (15:44 +0800)
committerJeremy Kerr <jk@codeconstruct.com.au>
Wed, 17 Aug 2022 05:10:39 +0000 (13:10 +0800)
Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
nvme-wrap.c
nvme-wrap.h
nvme.c

index a3bf8697707684b42bb8a69591b3fbfa811b014c..6ef7da462001eb4848b67e8dd91f2cddc287c575 100644 (file)
@@ -58,6 +58,30 @@ int nvme_cli_identify_ctrl(struct nvme_dev *dev, struct nvme_id_ctrl *ctrl)
        return do_admin_op(identify_ctrl, dev, ctrl);
 }
 
+int nvme_cli_identify_ns(struct nvme_dev *dev, __u32 nsid,
+                        struct nvme_id_ns *ns)
+{
+       return do_admin_op(identify_ns, dev, nsid, ns);
+}
+
+int nvme_cli_identify_allocated_ns(struct nvme_dev *dev, __u32 nsid,
+                        struct nvme_id_ns *ns)
+{
+       return do_admin_op(identify_allocated_ns, dev, nsid, ns);
+}
+
+int nvme_cli_identify_active_ns_list(struct nvme_dev *dev, __u32 nsid,
+                                    struct nvme_ns_list *list)
+{
+       return do_admin_op(identify_active_ns_list, dev, nsid, list);
+}
+
+int nvme_cli_identify_allocated_ns_list(struct nvme_dev *dev, __u32 nsid,
+                                       struct nvme_ns_list *list)
+{
+       return do_admin_op(identify_allocated_ns_list, dev, nsid, list);
+}
+
 int nvme_cli_get_features(struct nvme_dev *dev,
                          struct nvme_get_features_args *args)
 {
index 31e2b919d0250984461cf4f3a609204e67a5e396..93da48aa4b23b0288924923732aaa52f5b437ef7 100644 (file)
 
 int nvme_cli_identify(struct nvme_dev *dev, struct nvme_identify_args *args);
 int nvme_cli_identify_ctrl(struct nvme_dev *dev, struct nvme_id_ctrl *ctrl);
+int nvme_cli_identify_ns(struct nvme_dev *dev, __u32 nsid,
+                        struct nvme_id_ns *ns);
+int nvme_cli_identify_allocated_ns(struct nvme_dev *dev, __u32 nsid,
+                                  struct nvme_id_ns *ns);
+int nvme_cli_identify_active_ns_list(struct nvme_dev *dev, __u32 nsid,
+                                    struct nvme_ns_list *list);
+int nvme_cli_identify_allocated_ns_list(struct nvme_dev *dev, __u32 nsid,
+                                       struct nvme_ns_list *list);
 
 int nvme_cli_get_features(struct nvme_dev *dev,
                          struct nvme_get_features_args *args);
diff --git a/nvme.c b/nvme.c
index bdd990cd0e577f8041d5a89aaf242b5839273eb1..66baa0c3b5593809cff4c84cc14ac0861c1bc507 100644 (file)
--- a/nvme.c
+++ b/nvme.c
@@ -2581,7 +2581,7 @@ static int create_ns(int argc, char **argv, struct command *cmd, struct plugin *
                        err = -EINVAL;
                        goto close_dev;
                }
-               err = nvme_identify_ns(dev_fd(dev), NVME_NSID_ALL, &ns);
+               err = nvme_cli_identify_ns(dev, NVME_NSID_ALL, &ns);
                if (err) {
                        if (err < 0)
                                fprintf(stderr, "identify-namespace: %s",
@@ -2985,7 +2985,7 @@ static int nvm_id_ns(int argc, char **argv, struct command *cmd,
                }
        }
 
-       err = nvme_identify_ns(dev_fd(dev), cfg.namespace_id, &ns);
+       err = nvme_cli_identify_ns(dev, cfg.namespace_id, &ns);
        if (err) {
                nvme_show_status(err);
                goto close_dev;
@@ -3055,7 +3055,7 @@ static int nvm_id_ns_lba_format(int argc, char **argv, struct command *cmd, stru
        if (cfg.verbose)
                flags |= VERBOSE;
 
-       err = nvme_identify_ns(dev_fd(dev), NVME_NSID_ALL, &ns);
+       err = nvme_cli_identify_ns(dev, NVME_NSID_ALL, &ns);
        if (err) {
                ns.nlbaf = NVME_FEAT_LBA_RANGE_MAX - 1;
                ns.nulbaf = 0;
@@ -3212,10 +3212,10 @@ static int id_ns(int argc, char **argv, struct command *cmd, struct plugin *plug
        }
 
        if (cfg.force)
-               err = nvme_identify_allocated_ns(dev_fd(dev),
-                                                cfg.namespace_id, &ns);
+               err = nvme_cli_identify_allocated_ns(dev,
+                                                    cfg.namespace_id, &ns);
        else
-               err = nvme_identify_ns(dev_fd(dev), cfg.namespace_id, &ns);
+               err = nvme_cli_identify_ns(dev, cfg.namespace_id, &ns);
 
        if (!err)
                nvme_show_id_ns(&ns, cfg.namespace_id, 0, false, flags);
@@ -4914,7 +4914,7 @@ static int format(int argc, char **argv, struct command *cmd, struct plugin *plu
        }
 
        if (cfg.namespace_id != NVME_NSID_ALL) {
-               err = nvme_identify_ns(dev_fd(dev), cfg.namespace_id, &ns);
+               err = nvme_cli_identify_ns(dev, cfg.namespace_id, &ns);
                if (err) {
                        if (err < 0)
                                fprintf(stderr, "identify-namespace: %s\n", nvme_strerror(errno));
@@ -5718,7 +5718,7 @@ static int write_zeroes(int argc, char **argv, struct command *cmd, struct plugi
                }
        }
 
-       err = nvme_identify_ns(dev_fd(dev), cfg.namespace_id, &ns);
+       err = nvme_cli_identify_ns(dev, cfg.namespace_id, &ns);
        if (err) {
                nvme_show_status(err);
                goto close_dev;
@@ -6695,7 +6695,7 @@ static int submit_io(int opcode, char *command, const char *desc,
        }
 
        if (cfg.metadata_size) {
-               err = nvme_identify_ns(dev_fd(dev), cfg.namespace_id, &ns);
+               err = nvme_cli_identify_ns(dev, cfg.namespace_id, &ns);
                if (err > 0) {
                        nvme_show_status(err);
                        goto free_buffer;
@@ -6950,7 +6950,7 @@ static int verify_cmd(int argc, char **argv, struct command *cmd, struct plugin
                }
        }
 
-       err = nvme_identify_ns(dev_fd(dev), cfg.namespace_id, &ns);
+       err = nvme_cli_identify_ns(dev, cfg.namespace_id, &ns);
        if (err) {
                nvme_show_status(err);
                goto close_dev;