]> git.proxmox.com Git - mirror_qemu.git/blame - include/sysemu/hvf_int.h
Merge remote-tracking branch 'remotes/kraxel/tags/audio-20210617-pull-request' into...
[mirror_qemu.git] / include / sysemu / hvf_int.h
CommitLineData
d57bc3c1
AG
1/*
2 * QEMU Hypervisor.framework (HVF) support
3 *
4 * This work is licensed under the terms of the GNU GPL, version 2 or later.
5 * See the COPYING file in the top-level directory.
6 *
7 */
8
9/* header to be included in HVF-specific code */
10
11#ifndef HVF_INT_H
12#define HVF_INT_H
13
14#include <Hypervisor/hv.h>
15
861457ce
AG
16/* hvf_slot flags */
17#define HVF_SLOT_LOG (1 << 0)
18
19typedef struct hvf_slot {
20 uint64_t start;
21 uint64_t size;
22 uint8_t *mem;
23 int slot_id;
24 uint32_t flags;
25 MemoryRegion *region;
26} hvf_slot;
27
28typedef struct hvf_vcpu_caps {
29 uint64_t vmx_cap_pinbased;
30 uint64_t vmx_cap_procbased;
31 uint64_t vmx_cap_procbased2;
32 uint64_t vmx_cap_entry;
33 uint64_t vmx_cap_exit;
34 uint64_t vmx_cap_preemption_timer;
35} hvf_vcpu_caps;
36
37struct HVFState {
38 AccelState parent;
39 hvf_slot slots[32];
40 int num_slots;
41
42 hvf_vcpu_caps *hvf_caps;
43};
44extern HVFState *hvf_state;
45
b533450e
AG
46struct hvf_vcpu_state {
47 int fd;
48};
49
d57bc3c1 50void assert_hvf_ok(hv_return_t ret);
cfe58455
AG
51int hvf_arch_init_vcpu(CPUState *cpu);
52void hvf_arch_vcpu_destroy(CPUState *cpu);
d662ede2 53int hvf_vcpu_exec(CPUState *);
358e7505
AG
54hvf_slot *hvf_find_overlap_slot(uint64_t, uint64_t);
55int hvf_put_registers(CPUState *);
56int hvf_get_registers(CPUState *);
d57bc3c1
AG
57
58#endif