From d2b5931756fdb9f839180e33898cd1e3e4fbdc90 Mon Sep 17 00:00:00 2001 From: pbrook Date: Sun, 24 Sep 2006 00:16:34 +0000 Subject: PCI shared IRQ fix (original patch by andrzej zaborowski). git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2165 c046a42c-6fe2-441c-8c8c-71466251a162 --- vl.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'vl.h') diff --git a/vl.h b/vl.h index fef2ef8c21..3f654f2f4a 100644 --- a/vl.h +++ b/vl.h @@ -733,6 +733,9 @@ struct PCIDevice { PCIConfigWriteFunc *config_write; /* ??? This is a PC-specific hack, and should be removed. */ int irq_index; + + /* Current IRQ levels. Used internally by the generic PCI code. */ + int irq_state[4]; }; PCIDevice *pci_register_device(PCIBus *bus, const char *name, @@ -753,9 +756,10 @@ void pci_default_write_config(PCIDevice *d, void pci_device_save(PCIDevice *s, QEMUFile *f); int pci_device_load(PCIDevice *s, QEMUFile *f); -typedef void (*pci_set_irq_fn)(PCIDevice *pci_dev, void *pic, - int irq_num, int level); -PCIBus *pci_register_bus(pci_set_irq_fn set_irq, void *pic, int devfn_min); +typedef void (*pci_set_irq_fn)(void *pic, int irq_num, int level); +typedef int (*pci_map_irq_fn)(PCIDevice *pci_dev, int irq_num); +PCIBus *pci_register_bus(pci_set_irq_fn set_irq, pci_map_irq_fn map_irq, + void *pic, int devfn_min); void pci_nic_init(PCIBus *bus, NICInfo *nd); void pci_data_write(void *opaque, uint32_t addr, uint32_t val, int len); -- cgit v1.2.3-55-g7522