1 /*
2  * QEMU HAXM support
3  *
4  * Copyright IBM, Corp. 2008
5  *
6  * Authors:
7  *  Anthony Liguori   <aliguori@us.ibm.com>
8  *
9  * Copyright (c) 2011 Intel Corporation
10  *  Written by:
11  *  Jiang Yunhong<yunhong.jiang@intel.com>
12  *  Xin Xiaohui<xiaohui.xin@intel.com>
13  *  Zhang Xiantao<xiantao.zhang@intel.com>
14  *
15  * Copyright 2016 Google, Inc.
16  *
17  * This work is licensed under the terms of the GNU GPL, version 2 or later.
18  * See the COPYING file in the top-level directory.
19  *
20  */
21 
22 #ifndef QEMU_HAX_H
23 #define QEMU_HAX_H
24 
25 
26 int hax_sync_vcpus(void);
27 int hax_init_vcpu(CPUState *cpu);
28 int hax_smp_cpu_exec(CPUState *cpu);
29 int hax_populate_ram(uint64_t va, uint64_t size);
30 
31 void hax_cpu_synchronize_state(CPUState *cpu);
32 void hax_cpu_synchronize_post_reset(CPUState *cpu);
33 void hax_cpu_synchronize_post_init(CPUState *cpu);
34 void hax_cpu_synchronize_pre_loadvm(CPUState *cpu);
35 
36 #ifdef CONFIG_HAX
37 
38 int hax_enabled(void);
39 
40 #include "qemu/bitops.h"
41 #include "exec/memory.h"
42 int hax_vcpu_destroy(CPUState *cpu);
43 void hax_raise_event(CPUState *cpu);
44 void hax_reset_vcpu_state(void *opaque);
45 #include "target/i386/hax-interface.h"
46 #include "target/i386/hax-i386.h"
47 
48 #else /* CONFIG_HAX */
49 
50 #define hax_enabled() (0)
51 
52 #endif /* CONFIG_HAX */
53 
54 #endif /* QEMU_HAX_H */
55