That's a forward port of the core HAX interface code from the
emu-2.2-release branch in the external/qemu-android repository as used by
the Android emulator.
The original commit was "target/i386: Add Intel HAX to android emulator"
saying:
"""
  Backport of 2b3098ff27bab079caab9b46b58546b5036f5c0c
  from studio-1.4-dev into emu-master-dev
    Intel HAX (harware acceleration) will enhance android emulator performance
    in Windows and Mac OS X in the systems powered by Intel processors with
    "Intel Hardware Accelerated Execution Manager" package installed when
    user runs android emulator with Intel target.
    Signed-off-by: David Chou <david.j.chou@intel.com>
"""
It has been modified to build and run along with the current code base.
The formatting has been fixed to go through scripts/checkpatch.pl,
and the DPRINTF macros have been updated to get the instanciations checked by
the compiler.
The FPU registers saving/restoring has been updated to match the current
QEMU registers layout.
The implementation has been simplified by doing the following modifications:
- removing the code for supporting the hardware without Unrestricted Guest (UG)
  mode (including all the code to fallback on TCG emulation).
- not including the Darwin support (which is not yet debugged/tested).
- simplifying the initialization by removing the leftovers from the Android
  specific code, then trimming down the remaining logic.
- removing the unused MemoryListener callbacks.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Message-Id: <e1023837f8d0e4c470f6c4a3bf643971b2bca5be.1484045952.git.vpalatin@chromium.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
		
	
			
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * QEMU HAXM support
 | 
						|
 *
 | 
						|
 * Copyright IBM, Corp. 2008
 | 
						|
 *
 | 
						|
 * Authors:
 | 
						|
 *  Anthony Liguori   <aliguori@us.ibm.com>
 | 
						|
 *
 | 
						|
 * Copyright (c) 2011 Intel Corporation
 | 
						|
 *  Written by:
 | 
						|
 *  Jiang Yunhong<yunhong.jiang@intel.com>
 | 
						|
 *  Xin Xiaohui<xiaohui.xin@intel.com>
 | 
						|
 *  Zhang Xiantao<xiantao.zhang@intel.com>
 | 
						|
 *
 | 
						|
 * Copyright 2016 Google, Inc.
 | 
						|
 *
 | 
						|
 * 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_HAX_H
 | 
						|
#define QEMU_HAX_H
 | 
						|
 | 
						|
#include "config-host.h"
 | 
						|
#include "qemu-common.h"
 | 
						|
 | 
						|
int hax_sync_vcpus(void);
 | 
						|
int hax_init_vcpu(CPUState *cpu);
 | 
						|
int hax_smp_cpu_exec(CPUState *cpu);
 | 
						|
int hax_populate_ram(uint64_t va, uint32_t size);
 | 
						|
 | 
						|
void hax_cpu_synchronize_state(CPUState *cpu);
 | 
						|
void hax_cpu_synchronize_post_reset(CPUState *cpu);
 | 
						|
void hax_cpu_synchronize_post_init(CPUState *cpu);
 | 
						|
 | 
						|
#ifdef CONFIG_HAX
 | 
						|
 | 
						|
int hax_enabled(void);
 | 
						|
 | 
						|
#include "hw/hw.h"
 | 
						|
#include "qemu/bitops.h"
 | 
						|
#include "exec/memory.h"
 | 
						|
int hax_vcpu_destroy(CPUState *cpu);
 | 
						|
void hax_raise_event(CPUState *cpu);
 | 
						|
void hax_reset_vcpu_state(void *opaque);
 | 
						|
#include "target/i386/hax-interface.h"
 | 
						|
#include "target/i386/hax-i386.h"
 | 
						|
 | 
						|
#else /* CONFIG_HAX */
 | 
						|
 | 
						|
#define hax_enabled() (0)
 | 
						|
 | 
						|
#endif /* CONFIG_HAX */
 | 
						|
 | 
						|
#endif /* QEMU_HAX_H */
 |