Skip to content

Commit aa3d6a7

Browse files
committed
example: provide an example of both the full and partial identify commands
This change adds a --partial argument to the mi-mctp command, so we have an example of both the full and partial identify APIs. Signed-off-by: Jeremy Kerr <[email protected]>
1 parent 7cdcafd commit aa3d6a7

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

examples/mi-mctp.c

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -182,9 +182,10 @@ int do_identify(nvme_mi_ep_t ep, int argc, char **argv)
182182
struct nvme_id_ctrl id;
183183
uint16_t ctrl_id;
184184
char buf[41];
185+
bool partial;
185186
int rc, tmp;
186187

187-
if (argc != 2) {
188+
if (argc < 2) {
188189
fprintf(stderr, "no controller ID specified\n");
189190
return -1;
190191
}
@@ -197,6 +198,8 @@ int do_identify(nvme_mi_ep_t ep, int argc, char **argv)
197198

198199
ctrl_id = tmp & 0xffff;
199200

201+
partial = argc > 2 && !strcmp(argv[2], "--partial");
202+
200203
ctrl = nvme_mi_init_ctrl(ep, tmp);
201204
if (!ctrl) {
202205
warn("can't create controller");
@@ -210,9 +213,18 @@ int do_identify(nvme_mi_ep_t ep, int argc, char **argv)
210213
id_args.cntid = ctrl_id;
211214
id_args.csi = NVME_CSI_NVM;
212215

213-
/* we only use the fields before rab; just request partial ID data */
214-
rc = nvme_mi_admin_identify_partial(ctrl, &id_args, 0,
216+
/* for this example code, we can either do a full or partial identify;
217+
* since we're only printing the fields before the 'rab' member,
218+
* these will be equivalent, aside from the size of the MI
219+
* response.
220+
*/
221+
if (partial) {
222+
rc = nvme_mi_admin_identify_partial(ctrl, &id_args, 0,
215223
offsetof(struct nvme_id_ctrl, rab));
224+
} else {
225+
rc = nvme_mi_admin_identify(ctrl, &id_args);
226+
}
227+
216228
if (rc) {
217229
warn("can't perform Admin Identify command");
218230
return -1;
@@ -249,7 +261,7 @@ int main(int argc, char **argv)
249261
fprintf(stderr, "where action is:\n"
250262
" info\n"
251263
" controllers\n"
252-
" identify <controller-id>\n");
264+
" identify <controller-id> [--partial]\n");
253265
return EXIT_FAILURE;
254266
}
255267

0 commit comments

Comments
 (0)