*/
#undef NAME
-#define NAME(n, d)
+#define NAME(n, d, v)
#undef ENTRY
#define ENTRY(n, h, f, ...) \
*/
#undef NAME
-#define NAME(n, d)
+#define NAME(n, d, v)
#undef ENTRY_W_ALIAS
#define ENTRY_W_ALIAS(n, h, f, a) \
*/
#undef NAME
-#define NAME(n, d)
+#define NAME(n, d, v)
#undef ENTRY
#define ENTRY(n, h, f, ...) &f ## _cmd,
*/
#undef NAME
-#define NAME(n, d) .name = n, .desc = d,
+#define NAME(n, d, v) .name = n, .desc = d, .version = v,
#undef COMMAND_LIST
#define COMMAND_LIST(args...)
struct program *prog = plugin->parent;
if (plugin->name)
- printf("%s %s version %s\n", prog->name, plugin->name, prog->version);
+ printf("%s %s version %s\n", prog->name, plugin->name, plugin->version);
else
printf("%s version %s\n", prog->name, prog->version);
return 0;
struct plugin {
const char *name;
const char *desc;
+ const char *version;
struct command **commands;
struct program *parent;
struct plugin *next;
#include "cmd.h"
-PLUGIN(NAME("amzn", "Amazon vendor specific extensions"),
+PLUGIN(NAME("amzn", "Amazon vendor specific extensions", NVME_VERSION),
COMMAND_LIST(
ENTRY("id-ctrl", "Send NVMe Identify Controller", id_ctrl)
)
#include "cmd.h"
-PLUGIN(NAME("dera", "Dera vendor specific extensions"),
+PLUGIN(NAME("dera", "Dera vendor specific extensions", NVME_VERSION),
COMMAND_LIST(
ENTRY("smart-log-add", "Retrieve Dera SMART Log, show it", get_status, "stat")
)
#include "cmd.h"
-PLUGIN(NAME("huawei", "Huawei vendor specific extensions"),
+PLUGIN(NAME("huawei", "Huawei vendor specific extensions", NVME_VERSION),
COMMAND_LIST(
ENTRY("list", "List all Huawei NVMe devices and namespaces on machine", huawei_list)
ENTRY("id-ctrl", "Huawei identify controller", huawei_id_ctrl)
#include "cmd.h"
-PLUGIN(NAME("intel", "Intel vendor specific extensions"),
+PLUGIN(NAME("intel", "Intel vendor specific extensions", NVME_VERSION),
COMMAND_LIST(
ENTRY("id-ctrl", "Send NVMe Identify Controller", id_ctrl)
ENTRY("internal-log", "Retrieve Intel internal firmware log, save it", get_internal_log)
#include "cmd.h"
-PLUGIN(NAME("lnvm", "LightNVM specific extensions"),
+PLUGIN(NAME("lnvm", "LightNVM specific extensions", NVME_VERSION),
COMMAND_LIST(
ENTRY("list", "List available LightNVM devices", lnvm_list)
ENTRY("info", "List general information and available target engines", lnvm_info)
#include <sys/types.h>
#include <sys/stat.h>
-PLUGIN(NAME("memblaze", "Memblaze vendor specific extensions"),
+PLUGIN(NAME("memblaze", "Memblaze vendor specific extensions", NVME_VERSION),
COMMAND_LIST(
ENTRY("smart-log-add", "Retrieve Memblaze SMART Log, show it", mb_get_additional_smart_log)
ENTRY("get-pm-status", "Get Memblaze Power Manager Status", mb_get_powermanager_status)
#include "cmd.h"
-PLUGIN(NAME("micron", "Micron vendor specific extensions"),
+PLUGIN(NAME("micron", "Micron vendor specific extensions", NVME_VERSION),
COMMAND_LIST(ENTRY("select-download", "Selective Firmware Download", micron_selective_download)
ENTRY("vs-temperature-stats", "Retrieve Micron temperature statistics ", micron_temp_stats)
ENTRY("vs-pcie-stats", "Retrieve Micron PCIe error stats", micron_pcie_stats)
#include "cmd.h"
-PLUGIN(NAME("netapp", "NetApp vendor specific extensions"),
+PLUGIN(NAME("netapp", "NetApp vendor specific extensions", NVME_VERSION),
COMMAND_LIST(
ENTRY("smdevices", "NetApp SMdevices", netapp_smdevices)
ENTRY("ontapdevices", "NetApp ONTAPdevices", netapp_ontapdevices)
#include "cmd.h"
-PLUGIN(NAME("nvidia", "NVIDIA vendor specific extensions"),
+PLUGIN(NAME("nvidia", "NVIDIA vendor specific extensions", NVME_VERSION),
COMMAND_LIST(
ENTRY("id-ctrl", "Send NVMe Identify Controller", id_ctrl)
)
#include "cmd.h"
-PLUGIN(NAME("sfx", "ScaleFlux vendor specific extensions"),
+PLUGIN(NAME("sfx", "ScaleFlux vendor specific extensions", NVME_VERSION),
COMMAND_LIST(
ENTRY("smart-log-add", "Retrieve ScaleFlux SMART Log, show it", get_additional_smart_log)
ENTRY("lat-stats", "Retrieve ScaleFlux IO Latency Statistics log, show it", get_lat_stats_log)
#include "cmd.h"
-PLUGIN(NAME("seagate", "Seagate vendor specific extensions"),
+PLUGIN(NAME("seagate", "Seagate vendor specific extensions", NVME_VERSION),
COMMAND_LIST(
ENTRY("vs-temperature-stats", "Retrieve Seagate temperature statistics ", temp_stats)
ENTRY("vs-log-page-sup", "Retrieve Seagate Supported Log-pages Information ", log_pages_supp)
#include "cmd.h"
-PLUGIN(NAME("shannon", "Shannon vendor specific extensions"),
+PLUGIN(NAME("shannon", "Shannon vendor specific extensions", NVME_VERSION),
COMMAND_LIST(
ENTRY("smart-log-add", "Retrieve Shannon SMART Log, show it", get_additional_smart_log)
ENTRY("get-feature-add", "Get Shannon feature and show the resulting value", get_additional_feature)
#include "cmd.h"
#include "plugin.h"
-PLUGIN(NAME("toshiba", "Toshiba NVME plugin"),
+PLUGIN(NAME("toshiba", "Toshiba NVME plugin", NVME_VERSION),
COMMAND_LIST(
ENTRY("vs-smart-add-log", "Extended SMART information", vendor_log)
ENTRY("vs-internal-log", "Get Internal Log", internal_log)
#include "cmd.h"
-PLUGIN(NAME("transcend", "Transcend vendor specific extensions"),
+PLUGIN(NAME("transcend", "Transcend vendor specific extensions", NVME_VERSION),
COMMAND_LIST(
ENTRY("healthvalue", "NVME health percentage", getHealthValue)
ENTRY("badblock", "Get NVME bad block number", getBadblock)
#include "cmd.h"
#include "plugin.h"
-PLUGIN(NAME("virtium", "Virtium vendor specific extensions"),
+PLUGIN(NAME("virtium", "Virtium vendor specific extensions", NVME_VERSION),
COMMAND_LIST(
ENTRY("save-smart-to-vtview-log", "Periodically save smart attributes into a log file.\n\
The data in this log file can be analyzed using excel or using Virtium’s vtView.\n\
#if !defined(WDC_NVME) || defined(CMD_HEADER_MULTI_READ)
#define WDC_NVME
+#define WDC_PLUGIN_VERSION "1.14.1"
#include "cmd.h"
-PLUGIN(NAME("wdc", "Western Digital vendor specific extensions"),
+PLUGIN(NAME("wdc", "Western Digital vendor specific extensions", WDC_PLUGIN_VERSION),
COMMAND_LIST(
ENTRY("cap-diag", "WDC Capture-Diagnostics", wdc_cap_diag)
ENTRY("drive-log", "WDC Drive Log", wdc_drive_log)
#include <sys/types.h>
#include <sys/stat.h>
-PLUGIN(NAME("ymtc", "Ymtc vendor specific extensions"),
+PLUGIN(NAME("ymtc", "Ymtc vendor specific extensions", NVME_VERSION),
COMMAND_LIST(
ENTRY("smart-log-add", "Retrieve Ymtc SMART Log, show it", get_additional_smart_log)
)
#include "cmd.h"
-PLUGIN(NAME("zns", "Zoned Namespace Command Set"),
+PLUGIN(NAME("zns", "Zoned Namespace Command Set", NVME_VERSION),
COMMAND_LIST(
ENTRY("id-ctrl", "Retrieve ZNS controller identification", id_ctrl)
ENTRY("id-ns", "Retrieve ZNS namespace identification", id_ns)