On Sat, Dec 19, 2020 at 1:06 PM Paolo Bonzini <pbonz...@redhat.com> wrote:

> 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.lur...@redhat.com>
> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
>

Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com>

---
>  include/sysemu/whpx.h            | 22 +---------------------
>  target/i386/whpx/whpx-all.c      |  4 ++++
>  target/i386/whpx/whpx-internal.h | 18 ++++++++++++++++++
>  3 files changed, 23 insertions(+), 21 deletions(-)
>
> diff --git a/include/sysemu/whpx.h b/include/sysemu/whpx.h
> index 9346fd92e9..8ca1c1c4ac 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 12f79e2cd6..985ceba8f8 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 e0a9ea1dce..8cfaaef141 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) \
> --
> 2.26.2
>
>

Reply via email to