aboutsummaryrefslogtreecommitdiff
path: root/include/sysemu/whpx.h
blob: 9346fd92e93bf9ee7d6be8134424a7b52e3229aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*
 * QEMU Windows Hypervisor Platform accelerator (WHPX) support
 *
 * Copyright Microsoft, Corp. 2017
 *
 * Authors:
 *
 * 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 QEMU_WHPX_H
#define QEMU_WHPX_H

#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)

#else /* CONFIG_WHPX */

#define whpx_enabled() (0)
#define whpx_apic_in_platform() (0)

#endif /* CONFIG_WHPX */

#endif /* QEMU_WHPX_H */