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