|
37 | 37 | #include <stdio.h> |
38 | 38 | #include <stdlib.h> |
39 | 39 | #include <string.h> |
| 40 | +#include <time.h> |
40 | 41 | #include <unistd.h> |
41 | 42 |
|
42 | 43 | #include <linux/fs.h> |
|
65 | 66 | #include "util/suffix.h" |
66 | 67 | #include "logging.h" |
67 | 68 | #include "util/sighdl.h" |
| 69 | +#include "util/delay.h" |
68 | 70 | #include "fabrics.h" |
69 | 71 | #define CREATE_CMD |
70 | 72 | #include "nvme-builtin.h" |
@@ -185,6 +187,7 @@ static struct program nvme = { |
185 | 187 | }; |
186 | 188 |
|
187 | 189 | const char *uuid_index = "UUID index"; |
| 190 | +const char *delay = "iterative delay as SECS [.TENTHS]"; |
188 | 191 |
|
189 | 192 | static const char *app_tag = "app tag for end-to-end PI"; |
190 | 193 | static const char *app_tag_mask = "app tag mask for end-to-end PI"; |
@@ -370,7 +373,7 @@ static int parse_args(int argc, char *argv[], const char *desc, |
370 | 373 |
|
371 | 374 | log_level = map_log_level(nvme_args.verbose, false); |
372 | 375 |
|
373 | | - return 0; |
| 376 | + return ret = delay_set_stdout_file(&nvme_args.delay); |
374 | 377 | } |
375 | 378 |
|
376 | 379 | int parse_and_open(struct nvme_global_ctx **ctx, |
@@ -10367,9 +10370,10 @@ static int show_topology_cmd(int argc, char **argv, struct command *acmd, struct |
10367 | 10370 | }; |
10368 | 10371 |
|
10369 | 10372 | NVME_ARGS(opts, |
10370 | | - OPT_FMT("ranking", 'r', &cfg.ranking, ranking)); |
| 10373 | + OPT_FMT("ranking", 'r', &cfg.ranking, ranking), |
| 10374 | + OPT_DOUBLE("delay", 'd', &nvme_args.delay.time, delay)); |
10371 | 10375 |
|
10372 | | - err = argconfig_parse(argc, argv, desc, opts); |
| 10376 | + err = parse_args(argc, argv, desc, opts); |
10373 | 10377 | if (err) |
10374 | 10378 | return err; |
10375 | 10379 |
|
@@ -11300,9 +11304,11 @@ int main(int argc, char **argv) |
11300 | 11304 | if (err) |
11301 | 11305 | return err; |
11302 | 11306 |
|
11303 | | - err = handle_plugin(argc - 1, &argv[1], nvme.extensions); |
11304 | | - if (err == -ENOTTY) |
11305 | | - general_help(&builtin, NULL); |
| 11307 | + do { |
| 11308 | + err = handle_plugin(argc - 1, &argv[1], nvme.extensions); |
| 11309 | + if (err == -ENOTTY) |
| 11310 | + general_help(&builtin, NULL); |
| 11311 | + } while (!err && delay_handle(&nvme_args.delay)); |
11306 | 11312 |
|
11307 | 11313 | return err ? 1 : 0; |
11308 | 11314 | } |
0 commit comments