aboutsummaryrefslogtreecommitdiffstats
path: root/target-i386/hax-windows.c
diff options
context:
space:
mode:
authorJiang, Yunhong <yunhong.jiang@intel.com>2012-03-23 13:47:38 +0800
committerJiang, Yunhong <yunhong.jiang@intel.com>2012-04-07 22:36:08 +0800
commit8a539eaab40dc7a8047dbf97c081467029e6c518 (patch)
treef429032dc6e26dfd4af5ffb27a5ddbb1bffae45f /target-i386/hax-windows.c
parentf597bde4b03c8732013c673ca920599d1ee3160d (diff)
downloadexternal_qemu-8a539eaab40dc7a8047dbf97c081467029e6c518.zip
external_qemu-8a539eaab40dc7a8047dbf97c081467029e6c518.tar.gz
external_qemu-8a539eaab40dc7a8047dbf97c081467029e6c518.tar.bz2
Add a HAXM interface for QEMU API version
Add a HAXM interface so that QEMU can communicate its API version to HAXM. With this, HAXM can keep better backward compatibility, for example, masking of the new features if qemu does not support new features. Change-Id: I24c7c8d353653978f507739f6e53a9d389d06e43 Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
Diffstat (limited to 'target-i386/hax-windows.c')
-rw-r--r--target-i386/hax-windows.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/target-i386/hax-windows.c b/target-i386/hax-windows.c
index 0035d21..6c52388 100644
--- a/target-i386/hax-windows.c
+++ b/target-i386/hax-windows.c
@@ -279,6 +279,29 @@ hax_fd hax_host_open_vm(struct hax_state *hax, int vm_id)
return hDeviceVM;
}
+int hax_notify_qemu_version(hax_fd vm_fd, struct hax_qemu_version *qversion)
+{
+ int ret;
+ DWORD dSize = 0;
+
+ if (hax_invalid_fd(vm_fd))
+ return -EINVAL;
+
+ ret = DeviceIoControl(vm_fd,
+ HAX_VM_IOCTL_NOTIFY_QEMU_VERSION,
+ qversion, sizeof(struct hax_qemu_version),
+ NULL, 0,
+ &dSize,
+ (LPOVERLAPPED) NULL);
+ if (!ret)
+ {
+ dprint("Failed to notify qemu API version\n");
+ return -1;
+ }
+
+ return 0;
+}
+
int hax_host_create_vcpu(hax_fd vm_fd, int vcpuid)
{
int ret;