summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPali Rohár <pali@kernel.org>2023-04-22 11:48:55 +0200
committerPali Rohár <pali@kernel.org>2023-04-29 14:28:09 +0200
commit6662052f2343710a829ab659608df27994edabb8 (patch)
tree230a9beb3c50e01f94669bc4d0fe7c48843d11a2
parent7eb8744984a8b7ed52d35a291ff5ed6373e93499 (diff)
downloadpciutils-6662052f2343710a829ab659608df27994edabb8.tar.gz
ls-tree: Print PCI domains in ascending order
-rw-r--r--ls-tree.c10
-rw-r--r--lspci.h2
2 files changed, 7 insertions, 5 deletions
diff --git a/ls-tree.c b/ls-tree.c
index 43ff9b1..e21e44c 100644
--- a/ls-tree.c
+++ b/ls-tree.c
@@ -12,7 +12,7 @@
#include "lspci.h"
-struct bridge host_bridge = { NULL, NULL, NULL, NULL, NULL, 0, ~0, 0, ~0, NULL };
+struct bridge host_bridge = { NULL, NULL, NULL, NULL, NULL, NULL, ~0, ~0, ~0, ~0, NULL };
static struct bus *
find_bus(struct bridge *b, unsigned int domain, unsigned int n)
@@ -127,7 +127,7 @@ grow_tree(void)
b->subordinate = ~0;
*last_br = b;
last_br = &b->chain;
- b->prev = b->child = NULL;
+ b->prev = b->next = b->child = NULL;
b->first_bus = NULL;
b->last_bus = NULL;
b->br_dev = NULL;
@@ -160,7 +160,7 @@ grow_tree(void)
}
*last_br = b;
last_br = &b->chain;
- b->prev = b->child = NULL;
+ b->prev = b->next = b->child = NULL;
b->first_bus = NULL;
b->last_bus = NULL;
b->br_dev = d;
@@ -188,7 +188,7 @@ grow_tree(void)
b->subordinate = b->secondary;
*last_br = b;
last_br = &b->chain;
- b->prev = b->child = NULL;
+ b->prev = b->next = b->child = NULL;
b->first_bus = NULL;
b->last_bus = NULL;
b->br_dev = parent;
@@ -459,6 +459,8 @@ show_forest(struct pci_filter *filter)
if (host_bridge.child)
{
for (b=host_bridge.child; b->prev; b=b->prev)
+ b->prev->next = b;
+ for (; b; b=b->next)
show_tree_bridge(filter, b, line, line);
}
}
diff --git a/lspci.h b/lspci.h
index d6a27a2..160c65a 100644
--- a/lspci.h
+++ b/lspci.h
@@ -88,7 +88,7 @@ void show_kernel_cleanup(void);
struct bridge {
struct bridge *chain; /* Single-linked list of bridges */
- struct bridge *prev, *child; /* Tree of bridges */
+ struct bridge *next, *prev, *child; /* Tree of bridges */
struct bus *first_bus, *last_bus; /* List of buses connected to this bridge */
unsigned int domain;
unsigned int primary, secondary, subordinate; /* Bus numbers */