前言:
Nvme cli命令之get-log:根据nvme 协议要求和各厂商自己的需求存有不同的日志,get-log命令通过不同logid,用于读取不同的log日志。
源码开始:
我们从源码中的nvme-builtin.h文件可以看到所有的nvme command,在23行找到get-log命令,以及它指向的函数get_log。
ENTRY("get-log", "Generic NVMe get log, returns log in raw format", get_log)
我们打开get-log函数,可以看到以下为get-log的一些参数定义:
int err, fd; struct config { __u32 namespace_id; __u32 log_id; __u32 log_len; __u32 aen; __u64 lpo; __u8 lsp; int rae; int raw_binary; }; struct config cfg = { .namespace_id = NVME_NSID_ALL, .log_id = 0xffffffff, .log_len = 0, .lpo = NVME_NO_LOG_LPO, .lsp = NVME_NO_LOG_LSP, .rae = 0, }; const struct argconfig_commandline_options command_line_options[] = { {"namespace-id", 'n', "NUM", CFG_POSITIVE, &cfg.namespace_id, required_argument, namespace_id}, {"log-id", 'i', "NUM", CFG_POSITIVE, &cfg.log_id, required_argument, l