summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hardinfo/udisks2_util.c16
-rw-r--r--modules/devices.c10
-rw-r--r--modules/devices/storage.c9
3 files changed, 29 insertions, 6 deletions
diff --git a/hardinfo/udisks2_util.c b/hardinfo/udisks2_util.c
index 11e091b9..dfb0b20f 100644
--- a/hardinfo/udisks2_util.c
+++ b/hardinfo/udisks2_util.c
@@ -2,6 +2,7 @@
#include "udisks2_util.h"
#include "hardinfo.h"
#include "util_ids.h"
+#include "pci_util.h"
#define UDISKS2_INTERFACE "org.freedesktop.UDisks2"
#define UDISKS2_MANAGER_INTERFACE "org.freedesktop.UDisks2.Manager"
@@ -677,6 +678,21 @@ gpointer get_udisks2_drive_info(const char *blockdev, GDBusProxy *block,
g_variant_unref(v);
}
+ /* NVMe vendor from PCI device */
+ if (strstr(u->block_dev, "nvme")
+ && (!u->vendor || !*u->vendor)
+ ) {
+ gchar *file = g_strdup_printf("/sys/block/%s/device/device/vendor", u->block_dev);
+ gchar *val = NULL;
+ if (g_file_get_contents(file, &val, NULL, NULL) ) {
+ unsigned long int id = strtoul(val, NULL, 16);
+ if (id)
+ u->vendor = pci_lookup_ids_vendor_str(id);
+ }
+ g_free(file);
+ g_free(val);
+ }
+
check_sdcard_vendor(u);
if (!u->vendors) {
diff --git a/modules/devices.c b/modules/devices.c
index a13213ba..77f5562e 100644
--- a/modules/devices.c
+++ b/modules/devices.c
@@ -739,9 +739,13 @@ gchar *callback_printers()
gchar *callback_storage()
{
return g_strdup_printf("%s\n"
- "[$ShellParam$]\n"
- "ReloadInterval=5000\n"
- "ViewType=1\n%s", storage_list, storage_icons);
+ "[$ShellParam$]\n"
+ "ReloadInterval=5000\n"
+ "ColumnTitle$TextValue=%s\n"
+ "ColumnTitle$Value=%s\n"
+ "ColumnTitle$Extra1=%s\n"
+ "ShowColumnHeaders=true\n"
+ "ViewType=1\n%s", storage_list, _("Model"), _("Vendor"), _("Size"), storage_icons);
}
gchar *callback_input()
diff --git a/modules/devices/storage.c b/modules/devices/storage.c
index 72d924ce..753246f6 100644
--- a/modules/devices/storage.c
+++ b/modules/devices/storage.c
@@ -32,7 +32,7 @@ gboolean __scan_udisks2_devices(void) {
udisksa *attrib;
gchar *udisks2_storage_list = NULL, *features = NULL, *moreinfo = NULL;
gchar *devid, *label, *size, *tmp = NULL, *media_comp = NULL;
- const gchar *url, *vendor_str, *media_label, *alabel, *icon, *media_curr = NULL;
+ const gchar *url, *vendor_str, *ven_tag, *media_label, *alabel, *icon, *media_curr = NULL;
int n = 0, i, j;
// http://storaged.org/doc/udisks2-api/latest/gdbus-org.freedesktop.UDisks2.Drive.html#gdbus-property-org-freedesktop-UDisks2-Drive.MediaCompatibility
@@ -196,7 +196,10 @@ gboolean __scan_udisks2_devices(void) {
icon = "hdd";
}
- udisks2_storage_list = h_strdup_cprintf("$%s$%s=\n", udisks2_storage_list, devid, label);
+ size = size_human_readable((gfloat) disk->size);
+ ven_tag = vendor_match_tag(vendor_str, params.fmt_opts);
+
+ udisks2_storage_list = h_strdup_cprintf("$%s$%s=%s|%s\n", udisks2_storage_list, devid, label, ven_tag ? ven_tag : "", size);
storage_icons = h_strdup_cprintf("Icon$%s$%s=%s.png\n", storage_icons, devid, label, icon);
features = h_strdup_cprintf("%s", features, disk->removable ? _("Removable"): _("Fixed"));
@@ -224,7 +227,6 @@ gboolean __scan_udisks2_devices(void) {
moreinfo,
_("Vendor"), vendor_str);
- size = size_human_readable((gfloat) disk->size);
moreinfo = h_strdup_cprintf(_("Revision=%s\n"
"Block Device=%s\n"
"Serial=%s\n"
@@ -237,6 +239,7 @@ gboolean __scan_udisks2_devices(void) {
size,
features);
g_free(size);
+ g_free(ven_tag);
if (disk->rotation_rate > 0) {
moreinfo = h_strdup_cprintf(_("Rotation Rate=%d RPM\n"), moreinfo, disk->rotation_rate);