diff options
author | Burt P <pburt0@gmail.com> | 2020-01-10 11:07:39 -0600 |
---|---|---|
committer | Leandro A. F. Pereira <leandro@hardinfo.org> | 2020-01-17 16:14:30 -0800 |
commit | 29f8126a0112c2125aa8b150314521cbc5c7d9fd (patch) | |
tree | fac2a5301b804d3977f88d6d75aa2be3630366a4 | |
parent | 7114175cdb6ff611dfb164959c5aec2099f9e887 (diff) |
pci: sort list of devices
Signed-off-by: Burt P <pburt0@gmail.com>
-rw-r--r-- | hardinfo/pci_util.c | 5 | ||||
-rw-r--r-- | includes/pci_util.h | 1 | ||||
-rw-r--r-- | modules/devices/pci.c | 1 |
3 files changed, 7 insertions, 0 deletions
diff --git a/hardinfo/pci_util.c b/hardinfo/pci_util.c index 9502b23b..69150732 100644 --- a/hardinfo/pci_util.c +++ b/hardinfo/pci_util.c @@ -151,6 +151,11 @@ static gboolean pci_lookup_ids(pcid *d) { return ret; } +gint pcid_cmp_by_addy(const pcid* a, const pcid* b) { + if (!a || !b) return (!!a - !!b); + return g_strcmp0(a->slot_str, b->slot_str); +} + void pcid_free(pcid *s) { if (s) { g_free(s->slot_str); diff --git a/includes/pci_util.h b/includes/pci_util.h index 6178be21..88a8b236 100644 --- a/includes/pci_util.h +++ b/includes/pci_util.h @@ -58,6 +58,7 @@ typedef struct pcid { pcid *pci_get_device(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func); pcid *pci_get_device_str(const char *addy); #define pcid_new() g_new0(pcid, 1) +gint pcid_cmp_by_addy(const pcid* a, const pcid* b); void pcid_free(pcid *); typedef GSList* pcid_list; diff --git a/modules/devices/pci.c b/modules/devices/pci.c index 04a8a0cf..9ca1b847 100644 --- a/modules/devices/pci.c +++ b/modules/devices/pci.c @@ -177,6 +177,7 @@ void scan_pci_do(void) { gchar *pci_icons = g_strdup(""); pcid_list list = pci_get_device_list(0,0); + list = g_slist_sort(list, pcid_cmp_by_addy); GSList *l = list; int c = 0; |