Skip to content

Commit 0fa051c

Browse files
MaisenbacherDigaw
authored andcommitted
nvme: nvme_identify use nvme_passthru_cmd directly
Move nvme_identify_args to this repository as it was dropped in libnvme. Signed-off-by: Dennis Maisenbacher <[email protected]>
1 parent 6dfbacd commit 0fa051c

2 files changed

Lines changed: 41 additions & 8 deletions

File tree

nvme.c

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
#include "nvme.h"
6060
#include "nvme-print.h"
6161
#include "plugin.h"
62+
#include "types.h"
6263
#include "util/base64.h"
6364
#include "util/crc32.h"
6465
#include "util/argconfig.h"
@@ -2717,11 +2718,12 @@ static int list_ns(int argc, char **argv, struct command *cmd, struct plugin *pl
27172718
return -ENOMEM;
27182719

27192720
struct nvme_identify_args args = {
2720-
.args_size = sizeof(args),
2721-
.timeout = nvme_cfg.timeout,
2721+
.nsid = cfg.namespace_id - 1,
2722+
.uidx = NVME_UUID_NONE,
27222723
.data = ns_list,
2723-
.nsid = cfg.namespace_id - 1.
2724+
.result = NULL,
27242725
};
2726+
27252727
if (cfg.csi < 0) {
27262728
args.cns = cfg.all ? NVME_IDENTIFY_CNS_ALLOCATED_NS_LIST :
27272729
NVME_IDENTIFY_CNS_NS_ACTIVE_LIST;
@@ -2731,7 +2733,8 @@ static int list_ns(int argc, char **argv, struct command *cmd, struct plugin *pl
27312733
args.csi = cfg.csi;
27322734
}
27332735

2734-
err = nvme_identify(l, &args);
2736+
err = nvme_identify(l, args.nsid, args.cntid, args.cns, args.csi, args.cnssid,
2737+
args.uidx, args.data, args.result);
27352738
if (!err)
27362739
nvme_show_list_ns(ns_list, flags);
27372740
else if (err > 0)
@@ -3054,10 +3057,10 @@ static int parse_lba_num_si(nvme_link_t l, const char *opt,
30543057
int lbas;
30553058

30563059
struct nvme_identify_args args = {
3057-
.args_size = sizeof(args),
3058-
.timeout = nvme_cfg.timeout,
3060+
.nsid = nsid - 1,
30593061
.cns = NVME_IDENTIFY_CNS_NS_ACTIVE_LIST,
3060-
.nsid = nsid - 1.
3062+
.uidx = NVME_UUID_NONE,
3063+
.result = NULL,
30613064
};
30623065

30633066
if (!val)
@@ -3091,7 +3094,8 @@ static int parse_lba_num_si(nvme_link_t l, const char *opt,
30913094
if ((ctrl->oacs & 0x8) >> 3)
30923095
nsid = NVME_NSID_ALL;
30933096
else {
3094-
err = nvme_identify(l, &args);
3097+
err = nvme_identify(l, args.nsid, args.cntid, args.cns, args.csi, args.cnssid,
3098+
args.uidx, args.data, args.result);
30953099
if (err) {
30963100
if (err < 0)
30973101
nvme_show_error("identify namespace list: %s",

types.h

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/* SPDX-License-Identifier: GPL-2.0-or-later */
2+
#ifndef TYPES_H
3+
#define TYPES_H
4+
5+
#include "nvme/types.h"
6+
7+
/**
8+
* struct nvme_identify_args - Arguments for the NVMe Identify command
9+
* @nsid: Namespace identifier, if applicable
10+
* @cntid: The Controller Identifier, if applicable
11+
* @cns: The Controller or Namespace structure, see @enum nvme_identify_cns
12+
* @csi: Command Set Identifier
13+
* @cnssid: Identifier that is required for a particular CNS value
14+
* @uidx: UUID Index if controller supports this id selection method
15+
* @data: User space destination address to transfer the data
16+
* @result: The command completion result from CQE dword0
17+
*/
18+
struct nvme_identify_args {
19+
__u32 nsid;
20+
__u16 cntid;
21+
enum nvme_identify_cns cns;
22+
enum nvme_csi csi;
23+
__u16 cnssid;
24+
__u8 uidx;
25+
void *data;
26+
__u32 *result;
27+
};
28+
29+
#endif

0 commit comments

Comments
 (0)