diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/exec/poison.h | 1 | ||||
| -rw-r--r-- | include/hw/misc/macio/macio.h | 37 | ||||
| -rw-r--r-- | include/hw/pci-host/uninorth.h | 1 | ||||
| -rw-r--r-- | include/hw/pci/pci_bridge.h | 18 | ||||
| -rw-r--r-- | include/hw/riscv/sifive_plic.h | 1 | ||||
| -rw-r--r-- | include/qemu/error-report.h | 35 |
6 files changed, 66 insertions, 27 deletions
diff --git a/include/exec/poison.h b/include/exec/poison.h index 41cd2eb1d8..97d3b56640 100644 --- a/include/exec/poison.h +++ b/include/exec/poison.h @@ -24,7 +24,6 @@ #pragma GCC poison TARGET_NIOS2 #pragma GCC poison TARGET_OPENRISC #pragma GCC poison TARGET_PPC -#pragma GCC poison TARGET_PPCEMB #pragma GCC poison TARGET_PPC64 #pragma GCC poison TARGET_ABI32 #pragma GCC poison TARGET_S390X diff --git a/include/hw/misc/macio/macio.h b/include/hw/misc/macio/macio.h index cfaa145500..970058b6ed 100644 --- a/include/hw/misc/macio/macio.h +++ b/include/hw/misc/macio/macio.h @@ -34,6 +34,42 @@ #include "hw/ppc/mac_dbdma.h" #include "hw/ppc/openpic.h" +/* MacIO virtual bus */ +#define TYPE_MACIO_BUS "macio-bus" +#define MACIO_BUS(obj) OBJECT_CHECK(MacIOBusState, (obj), TYPE_MACIO_BUS) + +typedef struct MacIOBusState { + /*< private >*/ + BusState parent_obj; +} MacIOBusState; + +/* MacIO IDE */ +#define TYPE_MACIO_IDE "macio-ide" +#define MACIO_IDE(obj) OBJECT_CHECK(MACIOIDEState, (obj), TYPE_MACIO_IDE) + +typedef struct MACIOIDEState { + /*< private >*/ + SysBusDevice parent_obj; + /*< public >*/ + uint32_t addr; + uint32_t channel; + qemu_irq real_ide_irq; + qemu_irq real_dma_irq; + qemu_irq ide_irq; + qemu_irq dma_irq; + + MemoryRegion mem; + IDEBus bus; + IDEDMA dma; + void *dbdma; + bool dma_active; + uint32_t timing_reg; + uint32_t irq_reg; +} MACIOIDEState; + +void macio_ide_init_drives(MACIOIDEState *ide, DriveInfo **hd_table); +void macio_ide_register_dma(MACIOIDEState *ide); + #define TYPE_MACIO "macio" #define MACIO(obj) OBJECT_CHECK(MacIOState, (obj), TYPE_MACIO) @@ -42,6 +78,7 @@ typedef struct MacIOState { PCIDevice parent; /*< public >*/ + MacIOBusState macio_bus; MemoryRegion bar; CUDAState cuda; PMUState pmu; diff --git a/include/hw/pci-host/uninorth.h b/include/hw/pci-host/uninorth.h index 2a1cf9f284..060324536a 100644 --- a/include/hw/pci-host/uninorth.h +++ b/include/hw/pci-host/uninorth.h @@ -49,6 +49,7 @@ typedef struct UNINHostState { PCIHostState parent_obj; + uint32_t ofw_addr; OpenPICState *pic; qemu_irq irqs[4]; MemoryRegion pci_mmio; diff --git a/include/hw/pci/pci_bridge.h b/include/hw/pci/pci_bridge.h index 0347da52d2..cdff7edfd1 100644 --- a/include/hw/pci/pci_bridge.h +++ b/include/hw/pci/pci_bridge.h @@ -133,11 +133,19 @@ typedef struct PCIBridgeQemuCap { #define REDHAT_PCI_CAP_RESOURCE_RESERVE 1 +/* + * PCI BUS/IO/MEM/PREFMEM additional resources recorded as a + * capability in PCI configuration space to reserve on firmware init. + */ +typedef struct PCIResReserve { + uint32_t bus; + uint64_t io; + uint64_t mem_non_pref; + uint64_t mem_pref_32; + uint64_t mem_pref_64; +} PCIResReserve; + int pci_bridge_qemu_reserve_cap_init(PCIDevice *dev, int cap_offset, - uint32_t bus_reserve, uint64_t io_reserve, - uint64_t mem_non_pref_reserve, - uint64_t mem_pref_32_reserve, - uint64_t mem_pref_64_reserve, - Error **errp); + PCIResReserve res_reserve, Error **errp); #endif /* QEMU_PCI_BRIDGE_H */ diff --git a/include/hw/riscv/sifive_plic.h b/include/hw/riscv/sifive_plic.h index 2f2af7e686..688cd97f82 100644 --- a/include/hw/riscv/sifive_plic.h +++ b/include/hw/riscv/sifive_plic.h @@ -55,7 +55,6 @@ typedef struct SiFivePLICState { uint32_t *pending; uint32_t *claimed; uint32_t *enable; - QemuMutex lock; /* config */ char *hart_config; diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h index 72fab2b031..0a8d9cc9ea 100644 --- a/include/qemu/error-report.h +++ b/include/qemu/error-report.h @@ -44,36 +44,31 @@ void error_report(const char *fmt, ...) GCC_FMT_ATTR(1, 2); void warn_report(const char *fmt, ...) GCC_FMT_ATTR(1, 2); void info_report(const char *fmt, ...) GCC_FMT_ATTR(1, 2); +bool error_report_once_cond(bool *printed, const char *fmt, ...) + GCC_FMT_ATTR(2, 3); +bool warn_report_once_cond(bool *printed, const char *fmt, ...) + GCC_FMT_ATTR(2, 3); + /* * Similar to error_report(), except it prints the message just once. * Return true when it prints, false otherwise. */ -#define error_report_once(fmt, ...) \ - ({ \ - static bool print_once_; \ - bool ret_print_once_ = !print_once_; \ - \ - if (!print_once_) { \ - print_once_ = true; \ - error_report(fmt, ##__VA_ARGS__); \ - } \ - unlikely(ret_print_once_); \ +#define error_report_once(fmt, ...) \ + ({ \ + static bool print_once_; \ + error_report_once_cond(&print_once_, \ + fmt, ##__VA_ARGS__); \ }) /* * Similar to warn_report(), except it prints the message just once. * Return true when it prints, false otherwise. */ -#define warn_report_once(fmt, ...) \ - ({ \ - static bool print_once_; \ - bool ret_print_once_ = !print_once_; \ - \ - if (!print_once_) { \ - print_once_ = true; \ - warn_report(fmt, ##__VA_ARGS__); \ - } \ - unlikely(ret_print_once_); \ +#define warn_report_once(fmt, ...) \ + ({ \ + static bool print_once_; \ + warn_report_once_cond(&print_once_, \ + fmt, ##__VA_ARGS__); \ }) const char *error_get_progname(void); |