diff options
| -rw-r--r-- | hardinfo/udisks2_util.c | 16 | ||||
| -rw-r--r-- | modules/devices.c | 10 | ||||
| -rw-r--r-- | modules/devices/storage.c | 9 | 
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); | 
