aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2020-12-19 04:06:37 -0500
committerPaolo Bonzini <pbonzini@redhat.com>2021-01-12 12:38:03 +0100
commit84f4ef17ae9933e27699077a2840a9ea251ca38f (patch)
treefe9fbc35c72b3eae9aed12333f7e32fef366d608
parent9102c968216460c27be1c476938c3e2d508f5fc7 (diff)
downloadqemu-84f4ef17ae9933e27699077a2840a9ea251ca38f.zip
qemu-84f4ef17ae9933e27699077a2840a9ea251ca38f.tar.gz
qemu-84f4ef17ae9933e27699077a2840a9ea251ca38f.tar.bz2
whpx: move internal definitions to whpx-internal.h
Only leave the external interface in sysemu/whpx.h. whpx_apic_in_platform is moved to a .c file because it needs whpx_state. Reported-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20201219090637.1700900-3-pbonzini@redhat.com>
-rw-r--r--include/sysemu/whpx.h22
-rw-r--r--target/i386/whpx/whpx-all.c4
-rw-r--r--target/i386/whpx/whpx-internal.h18
3 files changed, 23 insertions, 21 deletions
diff --git a/include/sysemu/whpx.h b/include/sysemu/whpx.h
index 9346fd9..8ca1c1c 100644
--- a/include/sysemu/whpx.h
+++ b/include/sysemu/whpx.h
@@ -15,28 +15,8 @@
#ifdef CONFIG_WHPX
-#include "whp-dispatch.h"
-
-struct whpx_state {
- uint64_t mem_quota;
- WHV_PARTITION_HANDLE partition;
- bool kernel_irqchip_allowed;
- bool kernel_irqchip_required;
- bool apic_in_platform;
-};
-
-struct whpx_lapic_state {
- struct {
- uint32_t data;
- uint32_t padding[3];
- } fields[256];
-};
-
-extern struct whpx_state whpx_global;
int whpx_enabled(void);
-
-void whpx_apic_get(DeviceState *s);
-#define whpx_apic_in_platform() (whpx_global.apic_in_platform)
+bool whpx_apic_in_platform(void);
#else /* CONFIG_WHPX */
diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c
index 12f79e2..985ceba 100644
--- a/target/i386/whpx/whpx-all.c
+++ b/target/i386/whpx/whpx-all.c
@@ -1866,6 +1866,10 @@ int whpx_enabled(void)
return whpx_allowed;
}
+bool whpx_apic_in_platform(void) {
+ return whpx_global.apic_in_platform;
+}
+
static void whpx_accel_class_init(ObjectClass *oc, void *data)
{
AccelClass *ac = ACCEL_CLASS(oc);
diff --git a/target/i386/whpx/whpx-internal.h b/target/i386/whpx/whpx-internal.h
index e0a9ea1..8cfaaef 100644
--- a/target/i386/whpx/whpx-internal.h
+++ b/target/i386/whpx/whpx-internal.h
@@ -5,6 +5,24 @@
#include <WinHvPlatform.h>
#include <WinHvEmulation.h>
+struct whpx_state {
+ uint64_t mem_quota;
+ WHV_PARTITION_HANDLE partition;
+ bool kernel_irqchip_allowed;
+ bool kernel_irqchip_required;
+ bool apic_in_platform;
+};
+
+struct whpx_lapic_state {
+ struct {
+ uint32_t data;
+ uint32_t padding[3];
+ } fields[256];
+};
+
+extern struct whpx_state whpx_global;
+void whpx_apic_get(DeviceState *s);
+
#define WHV_E_UNKNOWN_CAPABILITY 0x80370300L
#define LIST_WINHVPLATFORM_FUNCTIONS(X) \