/* * libqos PCI bindings for SPAPR * * This work is licensed under the terms of the GNU GPL, version 2 or later. * See the COPYING file in the top-level directory. */ #ifndef LIBQOS_PCI_SPAPR_H #define LIBQOS_PCI_SPAPR_H #include "libqos-malloc.h" #include "pci.h" #include "qgraph.h" /* From include/hw/pci-host/spapr.h */ typedef struct QPCIWindow { uint64_t pci_base; /* window address in PCI space */ uint64_t size; /* window size */ } QPCIWindow; typedef struct QPCIBusSPAPR { QOSGraphObject obj; QPCIBus bus; QGuestAllocator *alloc; uint64_t buid; uint64_t pio_cpu_base; QPCIWindow pio; uint64_t mmio32_cpu_base; QPCIWindow mmio32; } QPCIBusSPAPR; void qpci_init_spapr(QPCIBusSPAPR *ret, QTestState *qts, QGuestAllocator *alloc); QPCIBus *qpci_new_spapr(QTestState *qts, QGuestAllocator *alloc); void qpci_free_spapr(QPCIBus *bus); #endif