more_printf("SubProduct ID : %04x\n",pci_device->sub_product);
more_printf("Class ID : %02x.%02x.%02x\n",pci_device->class[2], pci_device->class[1],pci_device->class[0]);
more_printf("Revision : %02x\n",pci_device->revision);
- if ((pci_device->irq>0) && (pci_device->irq<255))
- more_printf("IRQ : %0d\n",pci_device->irq);
+ if ((pci_device->dev_info->irq>0) && (pci_device->dev_info->irq<255))
+ more_printf("IRQ : %0d\n",pci_device->dev_info->irq);
more_printf("PCI Bus : %02d\n",bus);
more_printf("PCI Slot : %02d\n",slot);
more_printf("PCI Func : %02d\n",func);
/* For every detected pci device, compute its submenu */
for_each_pci_func(pci_device, hardware->pci_domain) {
/* Only display valid IRQs*/
- if ((pci_device->irq>0) && (pci_device->irq<255)) {
+ if ((pci_device->dev_info->irq>0) && (pci_device->dev_info->irq<255)) {
if (nopciids == false) {
more_printf("%02d : %s %s \n",
- pci_device->irq,pci_device->dev_info->vendor_name,
+ pci_device->dev_info->irq,pci_device->dev_info->vendor_name,
pci_device->dev_info->product_name);
} else {
more_printf("%02d : %04x:%04x [%04x:%04x] \n",
- pci_device->irq, pci_device->vendor, pci_device->product,
+ pci_device->dev_info->irq, pci_device->vendor, pci_device->product,
pci_device->sub_vendor, pci_device->sub_product);
}
}
add_item(buffer,statbuffer,OPT_INACTIVE,NULL,0);
menu->items_count++;
- if ((pci_device->irq>0) && (pci_device->irq<255)) {
- snprintf(buffer,sizeof buffer,"IRQ : %02d",pci_device->irq);
- snprintf(statbuffer,sizeof statbuffer,"IRQ : %02d",pci_device->irq);
+ if ((pci_device->dev_info->irq>0) && (pci_device->dev_info->irq<255)) {
+ snprintf(buffer,sizeof buffer,"IRQ : %02d",pci_device->dev_info->irq);
+ snprintf(statbuffer,sizeof statbuffer,"IRQ : %02d",pci_device->dev_info->irq);
add_item(buffer,statbuffer,OPT_INACTIVE,NULL,0);
menu->items_count++;
}
for (nfunc = 0; nfunc < maxfunc; nfunc++) {
a = pci_mkaddr(nbus, ndev, nfunc, 0);
- domain->bus[nbus]->slot[ndev]->func[nfunc]->irq = pci_readb(a + 0x3c);
+ struct pci_device *dev = domain->bus[nbus]->slot[ndev]->func[nfunc];
+ if (! dev->dev_info) {
+ dev->dev_info = zalloc(sizeof *dev->dev_info);
+ if (!dev->dev_info)
+ return;
+ }
+ dev->dev_info->irq = pci_readb(a + 0x3c);
}
}
}