- printf ("%04x:%02x:%02x.%x PCI device %04x:%04x\n",
- 0, bus, dev, func, vendor_id, dev_id);
- for (line = 0; line < 4; line++)
+ /* We have a valid PCI device, set it up */
+ new_pci_dev = malloc (sizeof *new_pci_dev);
+ if (!new_pci_dev)
+ PANIC ("couldn't allocate memory for PCI device");
+
+ new_pci_dev->bus_id = bus;
+ new_pci_dev->devfn = (dev << 4) | func;
+ new_pci_dev->ven_id = vendor_id;
+ new_pci_dev->dev_id = dev_id;
+ new_pci_dev->base_class = byte_cfg[PCI_REG_CLASS_BASE];
+ new_pci_dev->sub_class = byte_cfg[PCI_REG_CLASS_SUB];
+ new_pci_dev->interface = byte_cfg[PCI_REG_CLASS_INTERFACE];
+ list_push_front (&pci_dev_list, &new_pci_dev->elem);
+
+ /* Debugging output */
+ pci_dump_dev(new_pci_dev);
+ for (line = 0; line < 16; line++)