diff options
author | Blue Swirl <blauwirbel@gmail.com> | 2010-02-07 19:28:32 +0000 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2010-02-07 19:28:32 +0000 |
commit | d55380bb9c9a5b1f4c7aa919e77f9bfb72023c3a (patch) | |
tree | 8c1410d20f748f184d17d73ec31856ed67a86d00 | |
parent | ff9868ecaa9293781780c757db529dac0cc48fee (diff) |
dec: actually implement PCI bridging
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
-rw-r--r-- | hw/dec_pci.c | 20 | ||||
-rw-r--r-- | hw/dec_pci.h | 8 |
2 files changed, 28 insertions, 0 deletions
diff --git a/hw/dec_pci.c b/hw/dec_pci.c index 2bf4f71b4..8d059f131 100644 --- a/hw/dec_pci.c +++ b/hw/dec_pci.c @@ -23,6 +23,7 @@ * THE SOFTWARE. */ +#include "dec_pci.h" #include "sysbus.h" #include "pci.h" #include "pci_host.h" @@ -42,6 +43,25 @@ typedef struct DECState { PCIHostState host_state; } DECState; +static int dec_map_irq(PCIDevice *pci_dev, int irq_num) +{ + return irq_num; +} + +PCIBus *pci_dec_21154_init(PCIBus *parent_bus, int devfn) +{ + DeviceState *dev; + PCIBus *ret; + + dev = qdev_create(NULL, "dec-21154"); + qdev_init_nofail(dev); + ret = pci_bridge_init(parent_bus, devfn, + PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21154, + dec_map_irq, "DEC 21154 PCI-PCI bridge"); + + return ret; +} + static int pci_dec_21154_init_device(SysBusDevice *dev) { DECState *s; diff --git a/hw/dec_pci.h b/hw/dec_pci.h new file mode 100644 index 000000000..79264bac8 --- /dev/null +++ b/hw/dec_pci.h @@ -0,0 +1,8 @@ +#ifndef DEC_PCI_H +#define DEC_PCI_H + +#include "qemu-common.h" + +PCIBus *pci_dec_21154_init(PCIBus *parent_bus, int devfn); + +#endif |