summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/hw/pci/pci_bridge.h18
-rw-r--r--include/qemu/error-report.h35
2 files changed, 28 insertions, 25 deletions
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/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);