+ last_br = &host_bridge.chain;
+
+ /* Build list of top level domain bridges */
+
+ for (d=first_dev; d; d=d->next)
+ {
+ for (b=host_bridge.chain; b; b=b->chain)
+ if (b->domain == (unsigned)d->dev->domain)
+ break;
+ if (b)
+ continue;
+ b = xmalloc(sizeof(struct bridge));
+ b->domain = d->dev->domain;
+ b->primary = ~0;
+ b->secondary = 0;
+ b->subordinate = ~0;
+ *last_br = b;
+ last_br = &b->chain;
+ b->prev = b->next = b->child = NULL;
+ b->first_bus = NULL;
+ b->last_bus = NULL;
+ b->br_dev = NULL;
+ b->chain = NULL;
+ pacc->debug("Tree: domain %04x\n", b->domain);
+ }
+