Skip to content

Commit 9048056

Browse files
committed
nvme: add get and set feature commands symbolic names
The feature-id parameter can be set the symbolic names also. Signed-off-by: Tokunori Ikegami <ikegami.t@gmail.com>
1 parent d16e8d8 commit 9048056

File tree

1 file changed

+50
-2
lines changed

1 file changed

+50
-2
lines changed

nvme.c

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,54 @@ struct nvme_config nvme_cfg = {
265265

266266
static void *mmap_registers(struct nvme_dev *dev, bool writable);
267267

268+
static OPT_VALS(feature_name) = {
269+
VAL_BYTE("arbitration", NVME_FEAT_FID_ARBITRATION),
270+
VAL_BYTE("power-mgmt", NVME_FEAT_FID_POWER_MGMT),
271+
VAL_BYTE("lba-range", NVME_FEAT_FID_LBA_RANGE),
272+
VAL_BYTE("temp-thresh", NVME_FEAT_FID_TEMP_THRESH),
273+
VAL_BYTE("err-recovery", NVME_FEAT_FID_ERR_RECOVERY),
274+
VAL_BYTE("volatile-wc", NVME_FEAT_FID_VOLATILE_WC),
275+
VAL_BYTE("num-queues", NVME_FEAT_FID_NUM_QUEUES),
276+
VAL_BYTE("irq-coalesce", NVME_FEAT_FID_IRQ_COALESCE),
277+
VAL_BYTE("irq-config", NVME_FEAT_FID_IRQ_CONFIG),
278+
VAL_BYTE("write-atomic", NVME_FEAT_FID_WRITE_ATOMIC),
279+
VAL_BYTE("async-event", NVME_FEAT_FID_ASYNC_EVENT),
280+
VAL_BYTE("auto-pst", NVME_FEAT_FID_AUTO_PST),
281+
VAL_BYTE("host-mem-buf", NVME_FEAT_FID_HOST_MEM_BUF),
282+
VAL_BYTE("timestamp", NVME_FEAT_FID_TIMESTAMP),
283+
VAL_BYTE("kato", NVME_FEAT_FID_KATO),
284+
VAL_BYTE("hctm", NVME_FEAT_FID_HCTM),
285+
VAL_BYTE("nopsc", NVME_FEAT_FID_NOPSC),
286+
VAL_BYTE("rrl", NVME_FEAT_FID_RRL),
287+
VAL_BYTE("plm-config", NVME_FEAT_FID_PLM_CONFIG),
288+
VAL_BYTE("plm-window", NVME_FEAT_FID_PLM_WINDOW),
289+
VAL_BYTE("lba-sts-interval", NVME_FEAT_FID_LBA_STS_INTERVAL),
290+
VAL_BYTE("host-behavior", NVME_FEAT_FID_HOST_BEHAVIOR),
291+
VAL_BYTE("sanitize", NVME_FEAT_FID_SANITIZE),
292+
VAL_BYTE("endurance-evt-cfg", NVME_FEAT_FID_ENDURANCE_EVT_CFG),
293+
VAL_BYTE("iocs-profile", NVME_FEAT_FID_IOCS_PROFILE),
294+
VAL_BYTE("spinup-control", NVME_FEAT_FID_SPINUP_CONTROL),
295+
VAL_BYTE("power-loss-signal", NVME_FEAT_FID_POWER_LOSS_SIGNAL),
296+
VAL_BYTE("perf-characteristics", NVME_FEAT_FID_PERF_CHARACTERISTICS),
297+
VAL_BYTE("fdp", NVME_FEAT_FID_FDP),
298+
VAL_BYTE("fdp-events", NVME_FEAT_FID_FDP_EVENTS),
299+
VAL_BYTE("ns-admin-label", NVME_FEAT_FID_NS_ADMIN_LABEL),
300+
VAL_BYTE("key-value", NVME_FEAT_FID_KEY_VALUE),
301+
VAL_BYTE("ctrl-data-queue", NVME_FEAT_FID_CTRL_DATA_QUEUE),
302+
VAL_BYTE("emb-mgmt-ctrl-addr", NVME_FEAT_FID_EMB_MGMT_CTRL_ADDR),
303+
VAL_BYTE("host-mgmt-agent-addr", NVME_FEAT_FID_HOST_MGMT_AGENT_ADDR),
304+
VAL_BYTE("enh-ctrl-metadata", NVME_FEAT_FID_ENH_CTRL_METADATA),
305+
VAL_BYTE("ctrl-metadata", NVME_FEAT_FID_CTRL_METADATA),
306+
VAL_BYTE("ns-metadata", NVME_FEAT_FID_NS_METADATA),
307+
VAL_BYTE("sw-progress", NVME_FEAT_FID_SW_PROGRESS),
308+
VAL_BYTE("host-id", NVME_FEAT_FID_HOST_ID),
309+
VAL_BYTE("resv-mask", NVME_FEAT_FID_RESV_MASK),
310+
VAL_BYTE("resv-persist", NVME_FEAT_FID_RESV_PERSIST),
311+
VAL_BYTE("write-protect", NVME_FEAT_FID_WRITE_PROTECT),
312+
VAL_BYTE("bp-write-protect", NVME_FEAT_FID_BP_WRITE_PROTECT),
313+
VAL_END()
314+
};
315+
268316
const char *nvme_strerror(int errnum)
269317
{
270318
if (errnum >= ENVME_CONNECT_RESOLVE)
@@ -4874,7 +4922,7 @@ static int get_feature(int argc, char **argv, struct command *cmd,
48744922
};
48754923

48764924
NVME_ARGS(opts,
4877-
OPT_BYTE("feature-id", 'f', &cfg.feature_id, feature_id),
4925+
OPT_BYTE("feature-id", 'f', &cfg.feature_id, feature_id, feature_name),
48784926
OPT_UINT("namespace-id", 'n', &cfg.namespace_id, namespace_id_desired),
48794927
OPT_BYTE("sel", 's', &cfg.sel, sel),
48804928
OPT_UINT("data-len", 'l', &cfg.data_len, buf_len),
@@ -6658,7 +6706,7 @@ static int set_feature(int argc, char **argv, struct command *cmd, struct plugin
66586706

66596707
NVME_ARGS(opts,
66606708
OPT_UINT("namespace-id", 'n', &cfg.namespace_id, namespace_desired),
6661-
OPT_BYTE("feature-id", 'f', &cfg.feature_id, feature_id),
6709+
OPT_BYTE("feature-id", 'f', &cfg.feature_id, feature_id, feature_name),
66626710
OPT_SUFFIX("value", 'V', &cfg.value, value),
66636711
OPT_UINT("cdw12", 'c', &cfg.cdw12, cdw12),
66646712
OPT_BYTE("uuid-index", 'U', &cfg.uuid_index, uuid_index_specify),

0 commit comments

Comments
 (0)