aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-01-31 11:49:51 +0100
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-01-31 11:49:51 +0100
commitd1bd157fbc9b15d811c3888a38c48f4b70eba16e (patch)
tree3332c77d81e184ee9e8cb4250654727da6cf4629 /tools
parentbd0e34a1736601c468931c37bb480a9f88b7766f (diff)
downloadxen-d1bd157fbc9b15d811c3888a38c48f4b70eba16e.tar.gz
xen-d1bd157fbc9b15d811c3888a38c48f4b70eba16e.tar.bz2
xen-d1bd157fbc9b15d811c3888a38c48f4b70eba16e.zip
Big merge the HVM full-virtualisation abstractions.
This changeset contains all differences between xen-unstable.hg and xen-unstable-hvm.hg. All information and comments for changesets unique to xen-unstable-hvm.hg are included below. Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> Signed-off-by: Keir Fraser <keir@xensource.com> > user: leendert@eserver2.watson.ibm.com > date: Tue Jan 31 04:29:51 2006 -0400 > files: xen/include/asm-ia64/mm.h > description: > Fix ia64 compile. > > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Tue Jan 31 02:21:49 2006 -0400 > files: xen/include/xen/domain_page.h > description: > Eliminate unused fields (pfn,va) warnings. > > Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Fri Jan 27 04:31:44 2006 -0400 > files: tools/python/xen/xend/image.py > description: > Name cleanup. vmx refers to VT-x specific code, HVM is used for all others. > > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: root@xen-trw1.amd.com > date: Sun Jan 22 18:39:58 2006 -0500 > files: xen/arch/x86/hvm/platform.c > description: > support prefix 0x67 in hvm decode logic, gfxboot patch causes 0x67 prefix. > > > user: twoller@xen-trw1.amd.com > date: Sun Jan 22 18:35:59 2006 -0500 > files: xen/arch/x86/hvm/svm/svm.c xen/arch/x86/hvm/svm/vmcb.c xen/include/asm-x86/hvm/svm/svm.h > description: > check for valid shared_page_va/vmcb before deallocating in SVM. > > > user: leendert@eserver2.watson.ibm.com > date: Sun Jan 22 02:56:20 2006 -0400 > files: xen/include/asm-x86/hvm/svm/svm.h xen/include/asm-x86/hvm/svm/vmmcall.h > description: > Some SVM header file cleanups. > > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Fri Jan 20 11:50:23 2006 -0400 > files: xen/arch/x86/domain.c > description: > Need to be more diligent about when to call into the HVM abstraction layer > and when not. > > Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Wed Jan 18 15:14:56 2006 -0400 > files: xen/arch/x86/hvm/svm/svm.c xen/arch/x86/hvm/svm/x86_32/exits.S xen/arch/x86/hvm/svm/x86_64/exits.S xen/arch/x86/hvm/vmx/x86_32/exits.S xen/arch/x86/hvm/vmx/x86_64/exits.S > description: > Added missing copyright statements and updated svm.c's copyright to properly > reflect that it was derived from vmx.c. > > Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Tue Jan 17 09:42:11 2006 -0400 > files: xen/arch/ia64/Makefile xen/arch/ia64/vmx/vlsapic.c xen/arch/ia64/vmx/vmx_init.c xen/include/asm-ia64/vmx_platform.h > description: > Make sure ia64 builds again with the new directory structure. > > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@localhost.localdomain > date: Tue Jan 17 08:28:51 2006 -0400 > files: xen/arch/x86/Makefile xen/arch/x86/hvm/i8259.c xen/arch/x86/hvm/vioapic.c > description: > The device models now belong in hvm. > > Signed-ff-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Sun Jan 15 16:40:58 2006 -0400 > files: xen/arch/x86/Makefile xen/arch/x86/cpu/amd.c xen/arch/x86/cpu/intel.c xen/arch/x86/dm/hvm_vioapic.c xen/arch/x86/dm/i8259.c xen/arch/x86/dom0_ops.c xen/arch/x86/domain.c xen/arch/x86/hvm/hvm.c xen/arch/x86/hvm/intercept.c xen/arch/x86/hvm/io.c xen/arch/x86/hvm/platform.c xen/arch/x86/hvm/svm/emulate.c xen/arch/x86/hvm/svm/instrlen.c xen/arch/x86/hvm/svm/intr.c xen/arch/x86/hvm/svm/svm.c xen/arch/x86/hvm/svm/vmcb.c xen/arch/x86/hvm/svm/x86_32/exits.S xen/arch/x86/hvm/svm/x86_64/exits.S xen/arch/x86/hvm/vlapic.c xen/arch/x86/hvm/vmx/io.c xen/arch/x86/hvm/vmx/vmcs.c xen/arch/x86/hvm/vmx/vmx.c xen/arch/x86/hvm/vmx/x86_32/exits.S xen/arch/x86/hvm/vmx/x86_64/exits.S xen/arch/x86/i387.c xen/arch/x86/x86_32/entry.S xen/arch/x86/x86_32/traps.c xen/arch/x86/x86_64/entry.S xen/arch/x86/x86_64/traps.c xen/include/asm-x86/domain.h xen/include/asm-x86/hvm/domain.h xen/include/asm-x86/hvm/hvm.h xen/include/asm-x86/hvm/io.h xen/include/asm-x86/hvm/support.h xen/include/asm-x86/hvm/svm/emulate.h xen/include/asm-x86/hvm/svm/intr.h xen/include/asm-x86/hvm/svm/svm.h xen/include/asm-x86/hvm/svm/vmcb.h xen/include/asm-x86/hvm/svm/vmmcall.h xen/include/asm-x86/hvm/vcpu.h xen/include/asm-x86/hvm/vioapic.h xen/include/asm-x86/hvm/vlapic.h xen/include/asm-x86/hvm/vmx/cpu.h xen/include/asm-x86/hvm/vmx/vmcs.h xen/include/asm-x86/hvm/vmx/vmx.h xen/include/asm-x86/hvm/vpic.h xen/include/asm-x86/hvm/vpit.h xen/include/asm-x86/shadow.h > description: > As suggested by Keir, I restructured the hvm/vmx/svm tree. The new > directory structure looks like: > > xen/arch/hvm/ > xen/arch/hvm/vmx > xen/arch/hvm/vmx/x86_32 > xen/arch/hvm/vmx/x86_64 > xen/arch/hvm/svm > xen/arch/hvm/svm/x86_32 > xen/arch/hvm/svm/x86_64 > > xen/include/hvm/ > xen/include/hvm/vmx > xen/include/hvm/svm > > Many files have been renamed and had their hvm_/vmx_/svm_ suffix removed > because this is now clear from the directory where the file resides. > > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Sat Jan 14 17:03:28 2006 -0400 > files: xen/arch/ia64/vmx/vlsapic.c xen/include/asm-ia64/vmx_platform.h > description: > Name change fix for ia64. > > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Sat Jan 14 15:12:59 2006 -0400 > files: xen/arch/x86/dm/hvm_vioapic.c xen/arch/x86/dm/i8259.c xen/arch/x86/hvm.c xen/arch/x86/hvm_intercept.c xen/arch/x86/svm.c xen/arch/x86/svm_intr.c xen/arch/x86/svm_vmcb.c xen/arch/x86/vmx.c xen/arch/x86/vmx_io.c xen/arch/x86/vmx_vmcs.c xen/include/asm-x86/hvm_domain.h xen/include/asm-x86/hvm_vcpu.h > description: > Move VMX/SVM print buffer to hvm_domain. > > Cleanup variable names. The suffix hvm_ is redundant in hvm_domain. > > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: twoller@xen-trw1.site > date: Fri Jan 13 17:03:18 2006 -0500 > files: xen/arch/x86/svm.c > description: > remove unnecessary spin_unlock in asid_fetch code for svm. > > > user: twoller@xen-trw1.site > date: Wed Jan 11 20:00:36 2006 -0500 > files: xen/arch/x86/svm.c > description: > remove unneeded update_pagetables() during svm PF handling (resolved with ASID code rework). > > > user: leendert@eserver2.watson.ibm.com > date: Tue Jan 10 02:45:32 2006 -0400 > files: xen/arch/x86/hvm.c xen/arch/x86/vmx_io.c > description: > Factor out cpu_get_interrupt(). It is used by VMX and SVM. > > Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Mon Jan 9 00:03:30 2006 -0400 > files: xen/arch/x86/hvm.c xen/arch/x86/svm.c xen/arch/x86/vmx.c xen/include/asm-x86/hvm_support.h xen/include/asm-x86/hvm_vcpu.h > description: > Introduce small print buffer per domain rather than a single global one. > > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Sun Jan 8 23:07:12 2006 -0400 > files: xen/arch/x86/dom0_ops.c xen/include/asm-x86/hvm_support.h xen/include/public/arch-x86_32.h xen/include/public/arch-x86_64.h > description: > More cleanup. There is no point in distinguishing between SVM and VMX, > a single HVM flag bit suffices. > > Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Sun Jan 8 12:05:59 2006 -0400 > files: xen/arch/x86/svm.c xen/arch/x86/vmx.c > description: > Both VMX & SVM now print writes to the debug port (0xE9) on the console. > > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Sat Jan 7 13:55:27 2006 -0400 > files: xen/arch/x86/svm.c xen/arch/x86/svm_intr.c xen/arch/x86/svm_vmcb.c xen/arch/x86/vmx.c xen/arch/x86/vmx_io.c xen/arch/x86/vmx_vmcs.c xen/arch/x86/x86_32/asm-offsets.c xen/arch/x86/x86_64/asm-offsets.c xen/include/asm-x86/domain.h xen/include/asm-x86/vmx.h > description: > Introduce shorthands to improve code legibility. > > Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Wed Jan 4 06:12:10 2006 -0400 > files: tools/examples/xmexample.hvm > description: > Minor spelling mistakes. > > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Wed Jan 4 03:37:55 2006 -0400 > files: xen/include/public/hvm/hvm_info_table.h xen/include/public/hvm/ioreq.h xen/include/public/hvm/vmx_assist.h > description: > Missed adding new files. > > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Mon Jan 2 01:23:54 2006 -0400 > files: tools/debugger/libxendebug/xendebug.c tools/libxc/xc_hvm_build.c > description: > Finalize Xin Li's patch: vmx/svm_identify is no longer necessary. > Xen debug should test for HVM instead of VMX. > > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: twoller@xen-trw1.site > date: Sun Jan 1 03:22:39 2006 -0500 > files: tools/ioemu/vl.c > description: > change hardcoded VTXEN to HVMXEN. > > > user: leendert@eserver2.watson.ibm.com > date: Sun Jan 1 02:22:47 2006 -0400 > files: tools/libxc/xc_hvm_build.c tools/python/xen/xend/image.py xen/arch/x86/domain.c > description: > Avoid xen crash if there is no VMX support. If a platform > doesn't support VMX, creating VMX domain will crash xen > HV. > > Signed-off-by: Xin Li <xin.b.li@intel.com> > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > [ vmx/svm_identify are still needed in hvm builder, but this may not > really be necessary. I need to check this. - lvd ] > > > user: twoller@xen-trw1.site > date: Fri Dec 30 21:38:56 2005 -0500 > files: xen/arch/x86/svm.c xen/arch/x86/svm_vmcb.c xen/arch/x86/x86_32/entry.S xen/include/asm-x86/svm.h xen/include/asm-x86/svm_vmcb.h > description: > add multi-core support for guest ASIDs for SVM partitions. > > > user: leendert@eserver2.watson.ibm.com > date: Sun Dec 25 20:44:43 2005 -0400 > files: tools/firmware/vmxassist/head.S > description: > Make sure vmxassist still works in its debug environment. > > Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Fri Dec 23 18:27:57 2005 -0400 > files: tools/libxc/xc_ia64_stubs.c > description: > Fixed libxc ia64, xend uses xc_hvm_build instead of xc_vmx_build. > > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: twoller@xen-trw1.site > date: Wed Dec 21 21:39:17 2005 -0500 > files: xen/arch/x86/svm_intr.c xen/arch/x86/svm_vmcb.c > description: > cleanup of svm specific code. > > > user: leendert@eserver2.watson.ibm.com > date: Wed Dec 21 17:18:25 2005 -0400 > files: tools/python/xen/xm/tests/test_create.py tools/xm-test/README > description: > Minor name cleanups. xm-test isn't VMX specific. Instead use HVM. > > > user: twoller@xen-trw1.site > date: Tue Dec 20 20:01:38 2005 -0500 > files: xen/arch/x86/svm_vmcb.c > description: > reword comments. > > > user: twoller@xen-trw1.site > date: Tue Dec 20 20:01:07 2005 -0500 > files: xen/arch/x86/svm_intr.c > description: > add additional VLAPIC delivery modes. > > > user: twoller@xen-trw1.site > date: Tue Dec 20 20:00:22 2005 -0500 > files: xen/arch/x86/svm.c > description: > reformat misaligned code. > > > user: twoller@xen-trw1.site > date: Tue Dec 20 19:59:37 2005 -0500 > files: xen/arch/x86/svm.c > description: > Add additional AMD SVM specific CPUID logic. > > > user: leendert@eserver2.watson.ibm.com > date: Thu Dec 15 03:06:15 2005 -0400 > files: tools/xm-test/tests/block-create/01_block_attach_device_pos.py tools/xm-test/tests/block-create/02_block_attach_file_device_pos.py tools/xm-test/tests/block-create/04_block_attach_device_repeatedly_pos.py tools/xm-test/tests/block-create/05_block_attach_and_dettach_device_repeatedly_pos.py tools/xm-test/tests/block-create/06_block_attach_baddomain_neg.py tools/xm-test/tests/block-create/07_block_attach_baddevice_neg.py tools/xm-test/tests/block-create/08_block_attach_bad_filedevice_neg.py tools/xm-test/tests/block-create/09_block_attach_and_dettach_device_check_data_pos.py tools/xm-test/tests/block-create/10_block_attach_dettach_multiple_devices.py tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py tools/xm-test/tests/block-create/12_block_attach_shared_domU.py tools/xm-test/tests/block-destroy/01_block-destroy_btblock_pos.py tools/xm-test/tests/block-destroy/02_block-destroy_rtblock_pos.py tools/xm-test/tests/block-destroy/04_block-destroy_nonattached_neg.py tools/xm-test/tests/block-destroy/05_block-destroy_byname_pos.py tools/xm-test/tests/block-destroy/06_block-destroy_check_list_pos.py tools/xm-test/tests/block-list/01_block-list_pos.py tools/xm-test/tests/block-list/02_block-list_attachbd_pos.py tools/xm-test/tests/block-list/03_block-list_anotherbd_pos.py tools/xm-test/tests/block-list/04_block-list_nodb_pos.py tools/xm-test/tests/block-list/06_block-list_checkremove_pos.py tools/xm-test/tests/memmax/01_memmax_badparm_neg.py tools/xm-test/tests/memset/01_memset_basic_pos.py tools/xm-test/tests/memset/02_memset_badparm_neg.py tools/xm-test/tests/memset/03_memset_random_pos.py tools/xm-test/tests/memset/04_memset_smallmem_pos.py tools/xm-test/tests/migrate/01_migrate_localhost_pos.py tools/xm-test/tests/network-attach/01_network_attach_pos.py tools/xm-test/tests/network-attach/02_network_attach_detach_pos.py tools/xm-test/tests/network-attach/03_network_attach_detach_multiple_pos.py tools/xm-test/tests/restore/01_restore_basic_pos.py tools/xm-test/tests/restore/02_restore_badparm_neg.py tools/xm-test/tests/restore/03_restore_badfilename_neg.py tools/xm-test/tests/restore/04_restore_withdevices_pos.py tools/xm-test/tests/save/01_save_basic_pos.py tools/xm-test/tests/save/02_save_badparm_neg.py tools/xm-test/tests/save/03_save_bogusfile_neg.py tools/xm-test/tests/sysrq/01_sysrq_basic_neg.py tools/xm-test/tests/sysrq/02_sysrq_sync_pos.py tools/xm-test/tests/sysrq/03_sysrq_withreboot_pos.py > description: > Adding SKIP() to tests that aren't supported for VMX domains. > > Signed-off-by: Dan Stekloff <dsteklof@us.ibm.com> > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Tue Dec 13 22:43:47 2005 -0400 > files: xen/arch/x86/svm.c xen/arch/x86/vmx.c xen/arch/x86/vmx_io.c xen/include/asm-x86/hvm_vpit.h xen/include/asm-x86/msr.h > description: > Support VMX guest accesses to IA32_TIME_STAMP_COUNTER MSR. > > Signed-off-by: Haifeng Xue <haifeng.xue@intel.com> > Signed-off-by: Leendert van Doorn <leendert@us.ibm.com> > > > user: twoller@xen-trw1.site > date: Tue Dec 13 19:49:53 2005 -0500 > files: xen/arch/x86/svm.c xen/arch/x86/svm_emulate.c xen/arch/x86/svm_instrlen.c xen/arch/x86/svm_intr.c xen/arch/x86/svm_vmcb.c xen/include/asm-x86/svm.h xen/include/asm-x86/svm_emulate.h xen/include/asm-x86/svm_intr.h xen/include/asm-x86/svm_vmcb.h xen/include/asm-x86/svm_vmmcall.h > description: > Add SVM base files to repository. > > > user: twoller@xen-trw1.site > date: Tue Dec 13 19:49:02 2005 -0500 > files: xen/arch/x86/x86_32/entry.S xen/arch/x86/x86_64/entry.S > description: > Add SVM entry points for launch/resume. > > > user: twoller@xen-trw1.site > date: Tue Dec 13 19:47:38 2005 -0500 > files: .hgignore > description: > Add hvmloader files to ignore list. > > > user: leendert@eserver2.watson.ibm.com > date: Mon Dec 12 22:58:54 2005 -0400 > files: docs/src/user.tex tools/firmware/README xen/include/asm-x86/hvm.h > description: > Removed dirty words (by request). > > > user: leendert@eserver2.watson.ibm.com > date: Mon Dec 12 05:48:22 2005 -0400 > files: tools/firmware/hvmloader/mkhex > description: > Fix file mode. > > Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com> > > > user: leendert@eserver2.watson.ibm.com > date: Mon Dec 12 04:50:42 2005 -0400 > files: xen/Rules.mk xen/arch/x86/cpu/amd.c xen/arch/x86/cpu/intel.c xen/arch/x86/dm/hvm_vioapic.c xen/arch/x86/dm/i8259.c xen/arch/x86/dom0_ops.c xen/arch/x86/domain.c xen/arch/x86/hvm.c xen/arch/x86/hvm_intercept.c xen/arch/x86/hvm_io.c xen/arch/x86/hvm_platform.c xen/arch/x86/hvm_vlapic.c xen/arch/x86/mpparse.c xen/arch/x86/shadow.c xen/arch/x86/vmx.c xen/arch/x86/vmx_io.c xen/arch/x86/vmx_vmcs.c xen/arch/x86/x86_32/asm-offsets.c xen/arch/x86/x86_32/entry.S xen/arch/x86/x86_64/asm-offsets.c xen/arch/x86/x86_64/entry.S xen/arch/x86/x86_64/mm.c xen/include/asm-x86/config.h xen/include/asm-x86/cpufeature.h xen/include/asm-x86/domain.h xen/include/asm-x86/hvm_domain.h xen/include/asm-x86/hvm_io.h xen/include/asm-x86/hvm_support.h xen/include/asm-x86/hvm_vcpu.h xen/include/asm-x86/hvm_vioapic.h xen/include/asm-x86/hvm_vlapic.h xen/include/asm-x86/hvm_vpic.h xen/include/asm-x86/hvm_vpit.h xen/include/asm-x86/mpspec.h xen/include/asm-x86/msr.h xen/include/asm-x86/processor.h xen/include/asm-x86/vmx.h xen/include/asm-x86/vmx_cpu.h xen/include/asm-x86/vmx_vmcs.h > description: > Phase 3 of HVM integration: This patchset introduces the refactoring of > virtualization architecture independent functions from specific ones. > > > user: leendert@eserver2.watson.ibm.com > date: Sun Dec 11 07:02:51 2005 -0400 > files: xen/arch/x86/dom0_ops.c xen/arch/x86/domain.c xen/arch/x86/i387.c xen/arch/x86/shadow.c xen/arch/x86/vmx.c xen/arch/x86/x86_32/traps.c xen/arch/x86/x86_64/traps.c xen/include/asm-x86/hvm.h xen/include/asm-x86/hvm_support.h xen/include/asm-x86/regs.h xen/include/asm-x86/shadow.h xen/include/asm-x86/vmx_vmcs.h > description: > Phase 2 of HVM integration: This patchset introduces the hvm interface > to the hypervisor and modifies all the non-vmx specific files to use it. > > > user: leendert@eserver2.watson.ibm.com > date: Sun Dec 11 01:10:00 2005 -0400 > files: tools/examples/Makefile tools/examples/README tools/examples/xmexample.hvm tools/ioemu/exec-all.h tools/ioemu/hw/i8254.c tools/ioemu/hw/i8259.c tools/ioemu/monitor.c tools/ioemu/target-i386-dm/helper2.c tools/ioemu/vl.c tools/libxc/Makefile tools/libxc/xc_hvm_build.c tools/libxc/xc_ptrace.c tools/libxc/xc_ptrace_core.c tools/libxc/xenguest.h tools/python/xen/lowlevel/xc/xc.c tools/python/xen/xend/image.py tools/python/xen/xm/create.py tools/xm-test/configure.ac tools/xm-test/lib/XmTestLib/XenDomain.py tools/xm-test/lib/XmTestLib/config.py.in tools/xm-test/ramdisk/Makefile.am tools/xm-test/ramdisk/bin/create_disk_image tools/xm-test/tests/block-list/04_block-list_nodb_pos.py xen/include/public/arch-x86_32.h xen/include/public/arch-x86_64.h > description: > Phase 1 of HVM integration: This patchset updates the tools. Most of the > tools are machine independent except for some detection code in the hvm > domain builder.
Diffstat (limited to 'tools')
-rw-r--r--tools/debugger/libxendebug/xendebug.c4
-rw-r--r--tools/examples/Makefile2
-rw-r--r--tools/examples/README2
-rw-r--r--tools/examples/xmexample.hvm (renamed from tools/examples/xmexample.vmx)14
-rw-r--r--tools/firmware/Makefile5
-rw-r--r--tools/firmware/README10
-rw-r--r--tools/firmware/hvmloader/Makefile56
-rw-r--r--tools/firmware/hvmloader/acpi_madt.c (renamed from tools/firmware/vmxassist/acpi_madt.c)1
-rw-r--r--tools/firmware/hvmloader/hvmloader.c (renamed from tools/firmware/vmxassist/vmxloader.c)105
-rw-r--r--[-rwxr-xr-x]tools/firmware/hvmloader/mkhex (renamed from tools/firmware/vmxassist/mkhex)0
-rw-r--r--tools/firmware/rombios/rombios.c36
-rw-r--r--tools/firmware/rombios/rombios.diffs206
-rw-r--r--tools/firmware/vmxassist/Makefile21
-rw-r--r--tools/firmware/vmxassist/head.S3
-rw-r--r--tools/firmware/vmxassist/setup.c13
-rw-r--r--tools/firmware/vmxassist/vm86.c97
-rw-r--r--tools/firmware/vmxassist/vmxassist.ld1
-rw-r--r--tools/ioemu/exec-all.h2
-rw-r--r--tools/ioemu/hw/i8254.c32
-rw-r--r--tools/ioemu/hw/i8259.c4
-rw-r--r--tools/ioemu/monitor.c14
-rw-r--r--tools/ioemu/target-i386-dm/helper2.c10
-rw-r--r--tools/ioemu/vl.c8
-rw-r--r--tools/libxc/Makefile2
-rw-r--r--tools/libxc/xc_hvm_build.c (renamed from tools/libxc/xc_vmx_build.c)25
-rw-r--r--tools/libxc/xc_ia64_stubs.c2
-rw-r--r--tools/libxc/xc_linux_build.c2
-rw-r--r--tools/libxc/xc_ptrace.c4
-rw-r--r--tools/libxc/xc_ptrace_core.c4
-rw-r--r--tools/libxc/xenguest.h2
-rw-r--r--tools/python/xen/lowlevel/xc/xc.c21
-rw-r--r--tools/python/xen/xend/image.py32
-rw-r--r--tools/python/xen/xm/create.py12
-rw-r--r--tools/python/xen/xm/tests/test_create.py14
-rw-r--r--tools/xm-test/README24
-rw-r--r--tools/xm-test/configure.ac28
-rw-r--r--tools/xm-test/lib/XmTestLib/XenDomain.py14
-rw-r--r--tools/xm-test/lib/XmTestLib/config.py.in2
-rw-r--r--tools/xm-test/ramdisk/Makefile.am20
-rw-r--r--tools/xm-test/ramdisk/bin/create_disk_image2
-rw-r--r--tools/xm-test/tests/block-create/01_block_attach_device_pos.py4
-rw-r--r--tools/xm-test/tests/block-create/02_block_attach_file_device_pos.py4
-rw-r--r--tools/xm-test/tests/block-create/04_block_attach_device_repeatedly_pos.py4
-rw-r--r--tools/xm-test/tests/block-create/05_block_attach_and_dettach_device_repeatedly_pos.py4
-rw-r--r--tools/xm-test/tests/block-create/06_block_attach_baddomain_neg.py4
-rw-r--r--tools/xm-test/tests/block-create/07_block_attach_baddevice_neg.py4
-rw-r--r--tools/xm-test/tests/block-create/08_block_attach_bad_filedevice_neg.py4
-rw-r--r--tools/xm-test/tests/block-create/09_block_attach_and_dettach_device_check_data_pos.py4
-rw-r--r--tools/xm-test/tests/block-create/10_block_attach_dettach_multiple_devices.py4
-rw-r--r--tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py4
-rw-r--r--tools/xm-test/tests/block-create/12_block_attach_shared_domU.py4
-rw-r--r--tools/xm-test/tests/block-destroy/01_block-destroy_btblock_pos.py4
-rw-r--r--tools/xm-test/tests/block-destroy/02_block-destroy_rtblock_pos.py4
-rw-r--r--tools/xm-test/tests/block-destroy/04_block-destroy_nonattached_neg.py4
-rw-r--r--tools/xm-test/tests/block-destroy/05_block-destroy_byname_pos.py4
-rw-r--r--tools/xm-test/tests/block-destroy/06_block-destroy_check_list_pos.py4
-rw-r--r--tools/xm-test/tests/block-list/01_block-list_pos.py4
-rw-r--r--tools/xm-test/tests/block-list/02_block-list_attachbd_pos.py4
-rw-r--r--tools/xm-test/tests/block-list/03_block-list_anotherbd_pos.py4
-rw-r--r--tools/xm-test/tests/block-list/04_block-list_nodb_pos.py4
-rw-r--r--tools/xm-test/tests/block-list/06_block-list_checkremove_pos.py4
-rw-r--r--tools/xm-test/tests/create/14_create_blockroot_pos.py2
-rw-r--r--tools/xm-test/tests/memmax/01_memmax_badparm_neg.py4
-rw-r--r--tools/xm-test/tests/memset/01_memset_basic_pos.py4
-rw-r--r--tools/xm-test/tests/memset/02_memset_badparm_neg.py4
-rw-r--r--tools/xm-test/tests/memset/03_memset_random_pos.py4
-rw-r--r--tools/xm-test/tests/memset/04_memset_smallmem_pos.py4
-rw-r--r--tools/xm-test/tests/migrate/01_migrate_localhost_pos.py4
-rw-r--r--tools/xm-test/tests/network-attach/01_network_attach_pos.py4
-rw-r--r--tools/xm-test/tests/network-attach/02_network_attach_detach_pos.py4
-rw-r--r--tools/xm-test/tests/network-attach/03_network_attach_detach_multiple_pos.py4
-rw-r--r--tools/xm-test/tests/restore/01_restore_basic_pos.py4
-rw-r--r--tools/xm-test/tests/restore/02_restore_badparm_neg.py4
-rw-r--r--tools/xm-test/tests/restore/03_restore_badfilename_neg.py4
-rw-r--r--tools/xm-test/tests/restore/04_restore_withdevices_pos.py4
-rw-r--r--tools/xm-test/tests/save/01_save_basic_pos.py4
-rw-r--r--tools/xm-test/tests/save/02_save_badparm_neg.py4
-rw-r--r--tools/xm-test/tests/save/03_save_bogusfile_neg.py4
-rw-r--r--tools/xm-test/tests/sysrq/01_sysrq_basic_neg.py4
-rw-r--r--tools/xm-test/tests/sysrq/02_sysrq_sync_pos.py4
-rw-r--r--tools/xm-test/tests/sysrq/03_sysrq_withreboot_pos.py4
81 files changed, 513 insertions, 505 deletions
diff --git a/tools/debugger/libxendebug/xendebug.c b/tools/debugger/libxendebug/xendebug.c
index 7a9deaa07f..8a4160637c 100644
--- a/tools/debugger/libxendebug/xendebug.c
+++ b/tools/debugger/libxendebug/xendebug.c
@@ -355,7 +355,7 @@ xendebug_memory_page (domain_context_p ctxt, int xc_handle, uint32_t vcpu,
if ( (pde = ctxt->cr3_virt[vcpu][vtopdi(va)]) == 0) /* logical address */
return 0;
- if (ctxt->context[vcpu].flags & VGCF_VMX_GUEST)
+ if (ctxt->context[vcpu].flags & VGCF_HVM_GUEST)
pde = ctxt->page_array[pde >> PAGE_SHIFT] << PAGE_SHIFT;
if (pde != ctxt->pde_phys[vcpu])
{
@@ -370,7 +370,7 @@ xendebug_memory_page (domain_context_p ctxt, int xc_handle, uint32_t vcpu,
if ((page = ctxt->pde_virt[vcpu][vtopti(va)]) == 0) /* logical address */
return 0;
- if (ctxt->context[vcpu].flags & VGCF_VMX_GUEST)
+ if (ctxt->context[vcpu].flags & VGCF_HVM_GUEST)
page = ctxt->page_array[page >> PAGE_SHIFT] << PAGE_SHIFT;
if (page != ctxt->page_phys[vcpu] || protection != ctxt->page_perm[vcpu])
{
diff --git a/tools/examples/Makefile b/tools/examples/Makefile
index 6c542aeae3..a94ea7aa0a 100644
--- a/tools/examples/Makefile
+++ b/tools/examples/Makefile
@@ -16,7 +16,7 @@ XEN_CONFIG_DIR = /etc/xen
XEN_CONFIGS = xend-config.sxp
XEN_CONFIGS += xmexample1
XEN_CONFIGS += xmexample2
-XEN_CONFIGS += xmexample.vmx
+XEN_CONFIGS += xmexample.hvm
XEN_CONFIGS += xmexample.vti
# Xen script dir and scripts to go there.
diff --git a/tools/examples/README b/tools/examples/README
index 889333ab63..a51ec758c4 100644
--- a/tools/examples/README
+++ b/tools/examples/README
@@ -32,6 +32,6 @@ xmexample2 - a more complex configuration script for 'xm create'
xmexample3 - an advanced configuration script for 'xm create'
that utilizes the vmid
xmexample.nbd - configuration script that uses NBD filesystems
-xmexample.vmx - a configuration script for creating a vmx domain with
+xmexample.hvm - a configuration script for creating a hvm domain with
'xm create'
xmexample.vti - a configuration script for creating a domain on vti
diff --git a/tools/examples/xmexample.vmx b/tools/examples/xmexample.hvm
index cdd7863912..a1b893b0d5 100644
--- a/tools/examples/xmexample.vmx
+++ b/tools/examples/xmexample.hvm
@@ -15,25 +15,25 @@ else:
#----------------------------------------------------------------------------
# Kernel image file.
-kernel = "/usr/lib/xen/boot/vmxloader"
+kernel = "/usr/lib/xen/boot/hvmloader"
-# The domain build function. VMX domain uses 'vmx'.
-builder='vmx'
+# The domain build function. HVM domain uses 'hvm'.
+builder='hvm'
# Initial memory allocation (in megabytes) for the new domain.
memory = 128
# A name for your domain. All domains must have different names.
-name = "ExampleVMXDomain"
+name = "ExampleHVMDomain"
#-----------------------------------------------------------------------------
# the number of cpus guest platform has, default=1
#vcpus=1
-# enable/disalbe vmx guest ACPI, default=0 (disabled)
+# enable/disable HVM guest ACPI, default=0 (disabled)
#acpi=0
-# enable/disalbe vmx guest APIC, default=0 (disabled)
+# enable/disable HVM guest APIC, default=0 (disabled)
#apic=0
# List of which CPUS this domain is allowed to use, default Xen picks
@@ -46,8 +46,6 @@ name = "ExampleVMXDomain"
#vif = [ 'type=ioemu, mac=00:16:3e:00:00:11, bridge=xenbr0' ]
# type=ioemu specify the NIC is an ioemu device not netfront
vif = [ 'type=ioemu, bridge=xenbr0' ]
-# for multiple NICs in device model, 3 in this example
-#vif = [ 'type=ioemu, bridge=xenbr0', 'type=ioemu', 'type=ioemu']
#----------------------------------------------------------------------------
# Define the disk devices you want the domain to have access to, and
diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile
index 86918f5443..d0c738a41d 100644
--- a/tools/firmware/Makefile
+++ b/tools/firmware/Makefile
@@ -1,9 +1,9 @@
XEN_ROOT = ../..
include $(XEN_ROOT)/tools/Rules.mk
-# vmxloader is a 32-bit protected mode binary.
+# hvmloader is a 32-bit protected mode binary.
# It belongs in /usr/lib, not /usr/lib64.
-TARGET := vmxassist/vmxloader
+TARGET := hvmloader/hvmloader
INSTALL_DIR := $(DESTDIR)/usr/lib/xen/boot
SUBDIRS :=
@@ -11,6 +11,7 @@ SUBDIRS += rombios
SUBDIRS += vgabios
SUBDIRS += acpi
SUBDIRS += vmxassist
+SUBDIRS += hvmloader
.PHONY: all install clean
diff --git a/tools/firmware/README b/tools/firmware/README
index 0339fa679f..be796000f6 100644
--- a/tools/firmware/README
+++ b/tools/firmware/README
@@ -1,11 +1,11 @@
-Domain FirmWare support
+Domain firmware support
-----------------------
One of the key advantages of full virtualization hardware support (such
-as Intel's VT or AMD's Pacifica) is the ability to run unmodified guest
-operating systems. However, since most OSes rely on BIOS support during
-their early bringup, we need to provide a surrogate ROMBIOS and VGABIOS
-firmware layer.
+as Intel's VT or AMD's SVM extensions) is the ability to run unmodified
+guest operating systems. However, since most OSes rely on BIOS support
+during their early bringup, we need to provide a surrogate ROMBIOS and
+VGABIOS firmware layer.
What's more, we need to support real-mode which is required by
the firmware and bootstrap loaders. Real-mode support is especially
diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
new file mode 100644
index 0000000000..c23698e775
--- /dev/null
+++ b/tools/firmware/hvmloader/Makefile
@@ -0,0 +1,56 @@
+#
+# Makefile
+#
+# Leendert van Doorn, leendert@watson.ibm.com
+# Copyright (c) 2005, International Business Machines Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+
+XEN_ROOT = ../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+# The HVM loader is started in 32-bit mode at the address below:
+LOADADDR = 0x100000
+
+DEFINES =-DDEBUG
+XENINC =-I$(XEN_ROOT)/tools/libxc
+
+OBJECTS = hvmloader.o acpi_madt.o
+
+CC = gcc
+OBJCOPY = objcopy
+CFLAGS = $(DEFINES) -I. $(XENINC) -Wall -fno-builtin -O2 -msoft-float
+CFLAGS += -m32 -march=i686
+LDFLAGS = -m32 -nostdlib -Wl,-N -Wl,-Ttext -Wl,$(LOADADDR)
+
+all: hvmloader
+
+hvmloader: roms.h hvmloader.c acpi_madt.c
+ $(CC) $(CFLAGS) -c hvmloader.c acpi_madt.c
+ $(CC) $(LDFLAGS) -o hvmloader.tmp hvmloader.o acpi_madt.o
+ $(OBJCOPY) hvmloader.tmp hvmloader
+ rm -f hvmloader.tmp
+
+roms.h: ../rombios/BIOS-bochs-latest ../vgabios/VGABIOS-lgpl-latest.bin ../vgabios/VGABIOS-lgpl-latest.cirrus.bin ../vmxassist/vmxassist.bin
+ ./mkhex rombios ../rombios/BIOS-bochs-latest > roms.h
+ ./mkhex vgabios_stdvga ../vgabios/VGABIOS-lgpl-latest.bin >> roms.h
+ ./mkhex vgabios_cirrusvga ../vgabios/VGABIOS-lgpl-latest.cirrus.bin >> roms.h
+ ./mkhex vmxassist ../vmxassist/vmxassist.bin >> roms.h
+ ./mkhex acpi ../acpi/acpi.bin >> roms.h
+
+clean:
+ rm -f roms.h acpi.h
+ rm -f hvmloader hvmloader.tmp hvmloader.o $(OBJECTS)
+
diff --git a/tools/firmware/vmxassist/acpi_madt.c b/tools/firmware/hvmloader/acpi_madt.c
index 59e47b71c7..2e6d8d79e2 100644
--- a/tools/firmware/vmxassist/acpi_madt.c
+++ b/tools/firmware/hvmloader/acpi_madt.c
@@ -85,6 +85,7 @@ get_acpi_enabled(void)
return (t ? t->acpi_enabled : 0); /* default no acpi */
}
+
static void *
acpi_madt_get_madt(unsigned char *acpi_start)
{
diff --git a/tools/firmware/vmxassist/vmxloader.c b/tools/firmware/hvmloader/hvmloader.c
index 2a20715bfc..9700dfbb08 100644
--- a/tools/firmware/vmxassist/vmxloader.c
+++ b/tools/firmware/hvmloader/hvmloader.c
@@ -1,5 +1,5 @@
/*
- * vmxloader.c: ROM/VMXAssist image loader.
+ * hvmloader.c: HVM ROMBIOS/VGABIOS/ACPI/VMXAssist image loader.
*
* A quicky so that we can boot rom images as if they were a Linux kernel.
* This code will copy the rom images (ROMBIOS/VGABIOS/VM86) into their
@@ -21,13 +21,16 @@
* this program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place - Suite 330, Boston, MA 02111-1307 USA.
*/
-#include "machine.h"
#include "roms.h"
+#include "../acpi/acpi2_0.h" /* for ACPI_PHYSICAL_ADDRESS */
-#include "acpi.h"
-#include "../acpi/acpi2_0.h" // for ACPI_PHYSICAL_ADDRESS
-int acpi_madt_update(unsigned char* acpi_start);
-int get_acpi_enabled(void);
+/* memory map */
+#define VGABIOS_PHYSICAL_ADDRESS 0x000C0000
+#define VMXASSIST_PHYSICAL_ADDRESS 0x000D0000
+#define ROMBIOS_PHYSICAL_ADDRESS 0x000F0000
+
+/* invoke SVM's paged realmode support */
+#define SVM_VMMCALL_RESET_TO_REALMODE 0x00000001
/*
* C runtime start off
@@ -66,6 +69,30 @@ asm(
"stack_top: \n"
);
+extern int get_acpi_enabled(void);
+extern int acpi_madt_update(unsigned char* acpi_start);
+
+static inline void
+outw(unsigned short addr, unsigned short val)
+{
+ __asm__ __volatile__ ("outw %%ax, %%dx" :: "d"(addr), "a"(val));
+}
+
+static inline void
+outb(unsigned short addr, unsigned char val)
+{
+ __asm__ __volatile__ ("outb %%al, %%dx" :: "d"(addr), "a"(val));
+}
+
+static inline unsigned char
+inb(unsigned short addr)
+{
+ unsigned char val;
+
+ __asm__ __volatile__ ("inb %w1,%0" : "=a" (val) : "Nd" (addr));
+ return val;
+}
+
void *
memcpy(void *dest, const void *src, unsigned n)
{
@@ -103,38 +130,82 @@ cirrus_check(void)
return inb(0x3C5) == 0x12;
}
+int
+vmmcall(int edi, int esi, int edx, int ecx, int ebx)
+{
+ int eax;
+
+ __asm__ __volatile__(
+ ".byte 0x0F,0x01,0xD9"
+ : "=a" (eax)
+ : "a"(0x58454E00), /* XEN\0 key */
+ "b"(ebx), "c"(ecx), "d"(edx), "D"(edi), "S"(esi)
+ );
+ return eax;
+}
+
+int
+check_amd(void)
+{
+ char id[12];
+
+ __asm__ __volatile__(
+ "cpuid"
+ : "=b" (*(int *)(&id[0])),
+ "=c" (*(int *)(&id[8])),
+ "=d" (*(int *)(&id[4]))
+ : "a" (0)
+ );
+ return __builtin_memcmp(id, "AuthenticAMD", 12) == 0;
+}
+
int
main(void)
{
- puts("VMXAssist Loader\n");
+ puts("HVM Loader\n");
+
puts("Loading ROMBIOS ...\n");
- memcpy((void *)0xF0000, rombios, sizeof(rombios));
+ memcpy((void *)ROMBIOS_PHYSICAL_ADDRESS, rombios, sizeof(rombios));
if (cirrus_check()) {
puts("Loading Cirrus VGABIOS ...\n");
- memcpy((void *)0xC0000,
+ memcpy((void *)VGABIOS_PHYSICAL_ADDRESS,
vgabios_cirrusvga, sizeof(vgabios_cirrusvga));
} else {
puts("Loading Standard VGABIOS ...\n");
- memcpy((void *)0xC0000,
+ memcpy((void *)VGABIOS_PHYSICAL_ADDRESS,
vgabios_stdvga, sizeof(vgabios_stdvga));
}
if (get_acpi_enabled() != 0) {
puts("Loading ACPI ...\n");
- acpi_madt_update((unsigned char*)acpi);
+ acpi_madt_update((unsigned char *) acpi);
if (ACPI_PHYSICAL_ADDRESS+sizeof(acpi) <= 0xF0000) {
- /* make sure acpi table does not overlap rombios
+ /*
+ * Make sure acpi table does not overlap rombios
* currently acpi less than 8K will be OK.
*/
- memcpy((void *)ACPI_PHYSICAL_ADDRESS, acpi, sizeof(acpi));
+ memcpy((void *)ACPI_PHYSICAL_ADDRESS, acpi,
+ sizeof(acpi));
}
}
- puts("Loading VMXAssist ...\n");
- memcpy((void *)TEXTADDR, vmxassist, sizeof(vmxassist));
+ if (check_amd()) {
+ /* AMD implies this is SVM */
+ puts("SVM go ...\n");
+ vmmcall(SVM_VMMCALL_RESET_TO_REALMODE, 0, 0, 0, 0);
+ } else {
+ puts("Loading VMXAssist ...\n");
+ memcpy((void *)VMXASSIST_PHYSICAL_ADDRESS,
+ vmxassist, sizeof(vmxassist));
- puts("Go ...\n");
- asm volatile ( "jmp *%%eax" : : "a" (TEXTADDR), "d" (0) );
+ puts("VMX go ...\n");
+ __asm__ __volatile__(
+ "jmp *%%eax"
+ : : "a" (VMXASSIST_PHYSICAL_ADDRESS), "d" (0)
+ );
+ }
+ puts("Failed to invoke ROMBIOS\n");
return 0;
}
+
diff --git a/tools/firmware/vmxassist/mkhex b/tools/firmware/hvmloader/mkhex
index 7389d70483..7389d70483 100755..100644
--- a/tools/firmware/vmxassist/mkhex
+++ b/tools/firmware/hvmloader/mkhex
diff --git a/tools/firmware/rombios/rombios.c b/tools/firmware/rombios/rombios.c
index 857e94523a..397b9d8204 100644
--- a/tools/firmware/rombios/rombios.c
+++ b/tools/firmware/rombios/rombios.c
@@ -26,8 +26,8 @@
// ROM BIOS for use with Bochs/Plex x86 emulation environment
-#define VMXASSIST
-#undef VMXTEST
+#define HVMASSIST
+#undef HVMTEST
// Xen full virtualization does not handle unaligned IO with page crossing.
// Disable 32-bit PIO as a workaround.
@@ -177,8 +177,8 @@
#define BASE_MEM_IN_K (640 - EBDA_SIZE)
// Define the application NAME
-#ifdef VMXASSIST
-# define BX_APPNAME "VMXAssist"
+#ifdef HVMASSIST
+# define BX_APPNAME "HVMAssist"
#elif PLEX86
# define BX_APPNAME "Plex86"
#else
@@ -1430,7 +1430,7 @@ ASM_START
ASM_END
}
-#ifdef VMXASSIST
+#ifdef HVMASSIST
void
copy_e820_table()
{
@@ -1440,7 +1440,7 @@ copy_e820_table()
write_word(0xe000, 0x8, nr_entries);
memcpyb(0xe000, 0x10, 0x9000, 0x2d0, nr_entries * 0x14);
}
-#endif /* VMXASSIST */
+#endif /* HVMASSIST */
#if BX_DEBUG_SERIAL
/* serial debug port*/
@@ -1520,7 +1520,7 @@ send(action, c)
if (c == '\n') uart_tx_byte(BX_DEBUG_PORT, '\r');
uart_tx_byte(BX_DEBUG_PORT, c);
#endif
-#ifdef VMXASSIST
+#ifdef HVMASSIST
outb(0xE9, c);
#endif
#if BX_VIRTUAL_PORTS
@@ -4089,7 +4089,7 @@ ASM_END
case 0x20: // coded by osmaker aka K.J.
if(regs.u.r32.edx == 0x534D4150) /* SMAP */
{
-#ifdef VMXASSIST
+#ifdef HVMASSIST
if ((regs.u.r16.bx / 0x14) * 0x14 == regs.u.r16.bx) {
Bit16u e820_table_size = read_word(0xe000, 0x8) * 0x14;
@@ -9595,7 +9595,7 @@ post_default_ints:
;; int 1C already points at dummy_iret_handler (above)
mov al, #0x34 ; timer0: binary count, 16bit count, mode 2
out 0x43, al
-#ifdef VMXASSIST
+#ifdef HVMASSIST
mov al, #0x0b ; #0xe90b = 20 Hz (temporary, until we fix xen/vmx support)
out 0x40, al ; lsb
mov al, #0xe9
@@ -9702,22 +9702,10 @@ post_default_ints:
mov al, #0x11 ; send initialisation commands
out 0x20, al
out 0xa0, al
-#ifdef VMXASSIST
- ;; The vm86 emulator expects interrupts to be mapped beyond the reserved
- ;; vectors (0 through 31). Since rombios fully controls the hardware, we
- ;; map it the way the emulator needs it and expect that it will do the
- ;; proper 8086 interrupt translation (that is, master pic base is at 0x8
- ;; and slave pic base is at 0x70).
- mov al, #0x20
- out 0x21, al
- mov al, #0x28
- out 0xa1, al
-#else
mov al, #0x08
out 0x21, al
mov al, #0x70
out 0xa1, al
-#endif
mov al, #0x04
out 0x21, al
mov al, #0x02
@@ -9734,7 +9722,7 @@ post_default_ints:
#endif
out 0xa1, AL ;slave pic: unmask IRQ 12, 13, 14
-#ifdef VMXASSIST
+#ifdef HVMASSIST
call _copy_e820_table
#endif
@@ -10368,13 +10356,13 @@ dummy_iret_handler:
HALT(__LINE__)
iret
-#ifdef VMXTEST
+#ifdef HVMTEST
.org 0xffe0
jmp 0xf000:post;
#endif
.org 0xfff0 ; Power-up Entry Point
-#ifdef VMXTEST
+#ifdef HVMTEST
jmp 0xd000:0x0003;
#else
jmp 0xf000:post
diff --git a/tools/firmware/rombios/rombios.diffs b/tools/firmware/rombios/rombios.diffs
deleted file mode 100644
index 8ec23ef9de..0000000000
--- a/tools/firmware/rombios/rombios.diffs
+++ /dev/null
@@ -1,206 +0,0 @@
---- /home/leendert/cvs/bochs/bios/rombios.c 2005-05-23 12:18:11.000000000 -0400
-+++ rombios.c 2005-06-01 23:46:45.000000000 -0400
-@@ -26,6 +26,7 @@
-
- // ROM BIOS for use with Bochs/Plex x86 emulation environment
-
-+#define VMXASSIST
-
- // ROM BIOS compatability entry points:
- // ===================================
-@@ -170,7 +171,9 @@
- #define BASE_MEM_IN_K (640 - EBDA_SIZE)
-
- // Define the application NAME
--#ifdef PLEX86
-+#ifdef VMXASSIST
-+# define BX_APPNAME "VMXAssist"
-+#elif PLEX86
- # define BX_APPNAME "Plex86"
- #else
- # define BX_APPNAME "Bochs"
-@@ -314,7 +317,6 @@
- ASM_END
- }
-
--#if 0
- // memcpy of count bytes
- void
- memcpyb(dseg,doffset,sseg,soffset,count)
-@@ -362,6 +364,7 @@
- ASM_END
- }
-
-+#if 0
- // memcpy of count dword
- void
- memcpyd(dseg,doffset,sseg,soffset,count)
-@@ -858,6 +861,7 @@
- static void write_byte();
- static void write_word();
- static void bios_printf();
-+static void copy_e820_table();
-
- static Bit8u inhibit_mouse_int_and_events();
- static void enable_mouse_int_and_events();
-@@ -1420,6 +1424,16 @@
- ASM_END
- }
-
-+#ifdef VMXASSIST
-+void
-+copy_e820_table()
-+{
-+ Bit8u nr_entries = read_byte(0x9000, 0x1e8);
-+ write_word(0xe000, 0x8, nr_entries);
-+ memcpyb(0xe000, 0x10, 0x9000, 0x2d0, nr_entries * 0x14);
-+}
-+#endif /* VMXASSIST */
-+
- #if BX_DEBUG_SERIAL
- /* serial debug port*/
- #define BX_DEBUG_PORT 0x03f8
-@@ -1498,6 +1512,9 @@
- if (c == '\n') uart_tx_byte(BX_DEBUG_PORT, '\r');
- uart_tx_byte(BX_DEBUG_PORT, c);
- #endif
-+#ifdef VMXASSIST
-+ outb(0xE9, c);
-+#endif
- #if BX_VIRTUAL_PORTS
- if (action & BIOS_PRINTF_DEBUG) outb(DEBUG_PORT, c);
- if (action & BIOS_PRINTF_INFO) outb(INFO_PORT, c);
-@@ -4053,6 +4070,66 @@
- case 0x20: // coded by osmaker aka K.J.
- if(regs.u.r32.edx == 0x534D4150)
- {
-+#ifdef VMXASSIST
-+ if ((regs.u.r16.bx / 0x14)* 0x14 == regs.u.r16.bx) {
-+ Bit16u e820_table_size = read_word(0xe000, 0x8) * 0x14;
-+
-+ if (regs.u.r16.bx + 0x14 <= e820_table_size) {
-+ memcpyb(ES, regs.u.r16.di,
-+ 0xe000, 0x10 + regs.u.r16.bx, 0x14);
-+ }
-+ regs.u.r32.ebx += 0x14;
-+ if ((regs.u.r32.ebx + 0x14 - 1) > e820_table_size)
-+ regs.u.r32.ebx = 0;
-+ regs.u.r32.eax = 0x534D4150;
-+ regs.u.r32.ecx = 0x14;
-+ CLEAR_CF();
-+ return;
-+ } else if (regs.u.r16.bx == 1) {
-+ extended_memory_size = inb_cmos(0x35);
-+ extended_memory_size <<= 8;
-+ extended_memory_size |= inb_cmos(0x34);
-+ extended_memory_size *= 64;
-+ if (extended_memory_size > 0x3bc000) // greater than EFF00000???
-+ {
-+ extended_memory_size = 0x3bc000; // everything after this is reserved memory until we get to 0x100000000
-+ }
-+ extended_memory_size *= 1024;
-+ extended_memory_size += 15728640; // make up for the 16mb of memory that is chopped off
-+
-+ if (extended_memory_size <= 15728640)
-+ {
-+ extended_memory_size = inb_cmos(0x31);
-+ extended_memory_size <<= 8;
-+ extended_memory_size |= inb_cmos(0x30);
-+ extended_memory_size *= 1024;
-+ }
-+
-+ write_word(ES, regs.u.r16.di, 0x0000);
-+ write_word(ES, regs.u.r16.di+2, 0x0010);
-+ write_word(ES, regs.u.r16.di+4, 0x0000);
-+ write_word(ES, regs.u.r16.di+6, 0x0000);
-+
-+ write_word(ES, regs.u.r16.di+8, extended_memory_size);
-+ extended_memory_size >>= 16;
-+ write_word(ES, regs.u.r16.di+10, extended_memory_size);
-+ extended_memory_size >>= 16;
-+ write_word(ES, regs.u.r16.di+12, extended_memory_size);
-+ extended_memory_size >>= 16;
-+ write_word(ES, regs.u.r16.di+14, extended_memory_size);
-+
-+ write_word(ES, regs.u.r16.di+16, 0x1);
-+ write_word(ES, regs.u.r16.di+18, 0x0);
-+
-+ regs.u.r32.ebx = 0;
-+ regs.u.r32.eax = 0x534D4150;
-+ regs.u.r32.ecx = 0x14;
-+ CLEAR_CF();
-+ return;
-+ } else { /* AX=E820, DX=534D4150, BX unrecognized */
-+ goto int15_unimplemented;
-+ }
-+#else
- switch(regs.u.r16.bx)
- {
- case 0:
-@@ -4070,6 +4147,7 @@
- write_word(ES, regs.u.r16.di+18, 0x0);
-
- regs.u.r32.ebx = 1;
-+
- regs.u.r32.eax = 0x534D4150;
- regs.u.r32.ecx = 0x14;
- CLEAR_CF();
-@@ -4121,6 +4199,7 @@
- goto int15_unimplemented;
- break;
- }
-+#endif
- } else {
- // if DX != 0x534D4150)
- goto int15_unimplemented;
-@@ -9497,9 +9576,16 @@
- ;; int 1C already points at dummy_iret_handler (above)
- mov al, #0x34 ; timer0: binary count, 16bit count, mode 2
- out 0x43, al
-+#ifdef VMXASSIST
-+ mov al, #0x0b ; #0xe90b = 20 Hz (temporary, until we fix xen/vmx support)
-+ out 0x40, al ; lsb
-+ mov al, #0xe9
-+ out 0x40, al ; msb
-+#else
- mov al, #0x00 ; maximum count of 0000H = 18.2Hz
- out 0x40, al
- out 0x40, al
-+#endif
-
- ;; Keyboard
- SET_INT_VECTOR(0x09, #0xF000, #int09_handler)
-@@ -9597,10 +9683,22 @@
- mov al, #0x11 ; send initialisation commands
- out 0x20, al
- out 0xa0, al
-+#ifdef VMXASSIST
-+ ;; The vm86 emulator expects interrupts to be mapped beyond the reserved
-+ ;; vectors (0 through 31). Since rombios fully controls the hardware, we
-+ ;; map it the way the emulator needs it and expect that it will do the
-+ ;; proper 8086 interrupt translation (that is, master pic base is at 0x8
-+ ;; and slave pic base is at 0x70).
-+ mov al, #0x20
-+ out 0x21, al
-+ mov al, #0x28
-+ out 0xa1, al
-+#else
- mov al, #0x08
- out 0x21, al
- mov al, #0x70
- out 0xa1, al
-+#endif
- mov al, #0x04
- out 0x21, al
- mov al, #0x02
-@@ -9617,6 +9715,10 @@
- #endif
- out 0xa1, AL ;slave pic: unmask IRQ 12, 13, 14
-
-+#ifdef VMXASSIST
-+ call _copy_e820_table
-+#endif
-+
- call pcibios_init
-
- call rom_scan
diff --git a/tools/firmware/vmxassist/Makefile b/tools/firmware/vmxassist/Makefile
index e64473716b..4f84410132 100644
--- a/tools/firmware/vmxassist/Makefile
+++ b/tools/firmware/vmxassist/Makefile
@@ -37,13 +37,7 @@ LDFLAGS = -m elf_i386
OBJECTS = head.o trap.o vm86.o setup.o util.o
-all: vmxloader
-
-vmxloader: roms.h vmxloader.c acpi.h acpi_madt.c
- $(CC) $(CFLAGS) $(DEFINES) -c vmxloader.c -c acpi_madt.c
- $(CC) -o vmxloader.tmp -m32 -nostdlib -Wl,-N -Wl,-Ttext -Wl,0x100000 vmxloader.o acpi_madt.o
- objcopy vmxloader.tmp vmxloader
- rm -f vmxloader.tmp
+all: vmxassist.bin
vmxassist.bin: vmxassist.ld $(OBJECTS)
$(CPP) $(DEFINES) vmxassist.ld > vmxassist.tmp
@@ -68,15 +62,6 @@ setup.o: machine.h setup.c
util.o: machine.h util.c
$(CC) $(CFLAGS) -c util.c
-roms.h: ../rombios/BIOS-bochs-latest ../vgabios/VGABIOS-lgpl-latest.bin ../vgabios/VGABIOS-lgpl-latest.cirrus.bin vmxassist.bin
- ./mkhex rombios ../rombios/BIOS-bochs-latest > roms.h
- ./mkhex vgabios_stdvga ../vgabios/VGABIOS-lgpl-latest.bin >> roms.h
- ./mkhex vgabios_cirrusvga ../vgabios/VGABIOS-lgpl-latest.cirrus.bin >> roms.h
- ./mkhex vmxassist vmxassist.bin >> roms.h
-
-acpi.h: ../acpi/acpi.bin
- ./mkhex acpi ../acpi/acpi.bin > acpi.h
-
offsets.h: gen
./gen > offsets.h
@@ -84,7 +69,7 @@ gen: gen.c
$(HOSTCC) $(HOSTCFLAGS) -I. $(XENINC) -o gen gen.c
clean:
- rm -f vmxassist vmxassist.tmp vmxassist.bin vmxassist.run vmxassist.sym head.s roms.h acpi.h
- rm -f vmxloader vmxloader.tmp vmxloader.o $(OBJECTS)
+ rm -f vmxassist vmxassist.tmp vmxassist.bin vmxassist.run vmxassist.sym head.s
+ rm -f $(OBJECTS)
rm -f gen gen.o offsets.h
diff --git a/tools/firmware/vmxassist/head.S b/tools/firmware/vmxassist/head.S
index 1410a730f0..129f69274f 100644
--- a/tools/firmware/vmxassist/head.S
+++ b/tools/firmware/vmxassist/head.S
@@ -111,6 +111,9 @@ _start:
cli
/* save register parameters to C land */
+#ifdef TEST
+ xorl %edx, %edx
+#endif
movl %edx, booting_cpu
movl %ebx, booting_vector
diff --git a/tools/firmware/vmxassist/setup.c b/tools/firmware/vmxassist/setup.c
index dc253afec0..c4fcbb6846 100644
--- a/tools/firmware/vmxassist/setup.c
+++ b/tools/firmware/vmxassist/setup.c
@@ -194,6 +194,12 @@ setup_pic(void)
}
void
+setiomap(int port)
+{
+ tss.iomap[port >> 3] |= 1 << (port & 7);
+}
+
+void
enter_real_mode(struct regs *regs)
{
/* mask off TSS busy bit */
@@ -217,6 +223,13 @@ enter_real_mode(struct regs *regs)
}
regs->uesp = 0;
regs->uss = 0;
+
+ /* intercept accesses to the PIC */
+ setiomap(PIC_MASTER+PIC_CMD);
+ setiomap(PIC_MASTER+PIC_IMR);
+ setiomap(PIC_SLAVE+PIC_CMD);
+ setiomap(PIC_SLAVE+PIC_IMR);
+
printf("Starting emulated 16-bit real-mode: ip=%04x:%04x\n",
regs->cs, regs->eip);
diff --git a/tools/firmware/vmxassist/vm86.c b/tools/firmware/vmxassist/vm86.c
index c9a5311405..eb3ee3992c 100644
--- a/tools/firmware/vmxassist/vm86.c
+++ b/tools/firmware/vmxassist/vm86.c
@@ -738,6 +738,83 @@ interrupt(struct regs *regs, int n)
regs->cs = read16(address(regs, 0, n * 4 + 2));
}
+/*
+ * Most port I/O operations are passed unmodified. We do have to be
+ * careful and make sure the emulated program isn't remapping the
+ * interrupt vectors. The following simple state machine catches
+ * these attempts and rewrites them.
+ */
+int
+outbyte(struct regs *regs, unsigned prefix, unsigned opc)
+{
+ static char icw2[2] = { 0 };
+ int al, port;
+
+ switch (opc) {
+ case 0xE6: /* outb port, al */
+ port = fetch8(regs);
+ break;
+ case 0xEE: /* outb (%dx), al */
+ port = MASK16(regs->edx);
+ break;
+ default:
+ return 0;
+ }
+
+ al = regs->eax & 0xFF;
+
+ switch (port) {
+ case PIC_MASTER + PIC_CMD:
+ if (al & (1 << 4)) /* A0=0,D4=1 -> ICW1 */
+ icw2[0] = 1;
+ break;
+ case PIC_MASTER + PIC_IMR:
+ if (icw2[0]) {
+ icw2[0] = 0;
+ printf("Remapping master: ICW2 0x%x -> 0x%x\n",
+ al, NR_EXCEPTION_HANDLER);
+ al = NR_EXCEPTION_HANDLER;
+ }
+ break;
+
+ case PIC_SLAVE + PIC_CMD:
+ if (al & (1 << 4)) /* A0=0,D4=1 -> ICW1 */
+ icw2[1] = 1;
+ break;
+ case PIC_SLAVE + PIC_IMR:
+ if (icw2[1]) {
+ icw2[1] = 0;
+ printf("Remapping slave: ICW2 0x%x -> 0x%x\n",
+ al, NR_EXCEPTION_HANDLER+8);
+ al = NR_EXCEPTION_HANDLER+8;
+ }
+ break;
+ }
+
+ outb(port, al);
+ return 1;
+}
+
+int
+inbyte(struct regs *regs, unsigned prefix, unsigned opc)
+{
+ int port;
+
+ switch (opc) {
+ case 0xE4: /* inb al, port */
+ port = fetch8(regs);
+ break;
+ case 0xEC: /* inb al, (%dx) */
+ port = MASK16(regs->edx);
+ break;
+ default:
+ return 0;
+ }
+
+ regs->eax = (regs->eax & ~0xFF) | inb(port);
+ return 1;
+}
+
enum { OPC_INVALID, OPC_EMULATED };
/*
@@ -885,6 +962,16 @@ opcode(struct regs *regs)
}
return OPC_EMULATED;
+ case 0xE4: /* inb al, port */
+ if (!inbyte(regs, prefix, opc))
+ goto invalid;
+ return OPC_EMULATED;
+
+ case 0xE6: /* outb port, al */
+ if (!outbyte(regs, prefix, opc))
+ goto invalid;
+ return OPC_EMULATED;
+
case 0xEA: /* jmpl */
if ((mode == VM86_REAL_TO_PROTECTED) ||
(mode == VM86_PROTECTED_TO_REAL)) {
@@ -903,6 +990,16 @@ opcode(struct regs *regs)
}
goto invalid;
+ case 0xEC: /* inb al, (%dx) */
+ if (!inbyte(regs, prefix, opc))
+ goto invalid;
+ return OPC_EMULATED;
+
+ case 0xEE: /* outb (%dx), al */
+ if (!outbyte(regs, prefix, opc))
+ goto invalid;
+ return OPC_EMULATED;
+
case 0xF0: /* lock */
TRACE((regs, regs->eip - eip, "lock"));
continue;
diff --git a/tools/firmware/vmxassist/vmxassist.ld b/tools/firmware/vmxassist/vmxassist.ld
index c9807c63f6..5bcc491075 100644
--- a/tools/firmware/vmxassist/vmxassist.ld
+++ b/tools/firmware/vmxassist/vmxassist.ld
@@ -2,7 +2,6 @@
* vmxassist.ld
*/
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
-/*OUTPUT_ARCH(i386)*/
ENTRY(_start)
SECTIONS
diff --git a/tools/ioemu/exec-all.h b/tools/ioemu/exec-all.h
index 0e5ab710d6..97d591bcf6 100644
--- a/tools/ioemu/exec-all.h
+++ b/tools/ioemu/exec-all.h
@@ -584,5 +584,5 @@ static inline target_ulong get_phys_addr_code(CPUState *env, target_ulong addr)
//#define DEBUG_UNUSED_IOPORT
//#define DEBUG_IOPORT
-#define TARGET_VMX
+#define TARGET_HVM
diff --git a/tools/ioemu/hw/i8254.c b/tools/ioemu/hw/i8254.c
index 226db96962..1d98bd72a5 100644
--- a/tools/ioemu/hw/i8254.c
+++ b/tools/ioemu/hw/i8254.c
@@ -50,7 +50,7 @@ typedef struct PITChannelState {
int64_t next_transition_time;
QEMUTimer *irq_timer;
int irq;
- int vmx_channel; /* Is this accelerated by VMX ? */
+ int hvm_channel; /* Is this accelerated by HVM ? */
} PITChannelState;
struct PITState {
@@ -61,8 +61,8 @@ static PITState pit_state;
static void pit_irq_timer_update(PITChannelState *s, int64_t current_time);
-/* currently operate which channel for vmx use */
-int vmx_channel = -1;
+/* currently operate which channel for hvm use */
+int hvm_channel = -1;
extern FILE *logfile;
static int pit_get_count(PITChannelState *s)
{
@@ -215,7 +215,7 @@ int pit_get_gate(PITState *pit, int channel)
return s->gate;
}
-void pit_reset_vmx_vectors()
+void pit_reset_hvm_vectors()
{
extern shared_iopage_t *shared_page;
ioreq_t *req;
@@ -225,18 +225,18 @@ void pit_reset_vmx_vectors()
irq = 0;
for(i = 0; i < 3; i++) {
- if (pit_state.channels[i].vmx_channel)
+ if (pit_state.channels[i].hvm_channel)
break;
}
if (i == 3)
return;
- /* Assumes just one VMX accelerated channel */
- vmx_channel = i;
- s = &pit_state.channels[vmx_channel];
+ /* Assumes just one HVM accelerated channel */
+ hvm_channel = i;
+ s = &pit_state.channels[hvm_channel];
fprintf(logfile,
- "VMX_PIT:guest init pit channel %d!\n", vmx_channel);
+ "HVM_PIT:guest init pit channel %d!\n", hvm_channel);
req = &shared_page->vcpu_iodata[0].vp_ioreq;
req->state = STATE_IORESP_HOOK;
@@ -247,9 +247,9 @@ void pit_reset_vmx_vectors()
*/
req->u.data = s->count;
req->u.data |= (irq << 16);
- req->u.data |= (vmx_channel << 24);
+ req->u.data |= (hvm_channel << 24);
req->u.data |= ((s->rw_mode) << 26);
- fprintf(logfile, "VMX_PIT:pass info 0x%llx to HV!\n", req->u.data);
+ fprintf(logfile, "HVM_PIT:pass info 0x%llx to HV!\n", req->u.data);
}
static inline void pit_load_count(PITChannelState *s, int val)
@@ -261,9 +261,9 @@ static inline void pit_load_count(PITChannelState *s, int val)
/* guest init this pit channel for periodic mode. we do not update related
* timer so the channel never send intr from device model*/
- if (vmx_channel != -1 && s->mode == 2) {
- pit_reset_vmx_vectors();
- vmx_channel = -1;
+ if (hvm_channel != -1 && s->mode == 2) {
+ pit_reset_hvm_vectors();
+ hvm_channel = -1;
}
/* pit_irq_timer_update(s, s->count_load_time);*/
@@ -323,8 +323,8 @@ static void pit_ioport_write(void *opaque, uint32_t addr, uint32_t val)
}
} else {
s = &pit->channels[addr];
- s->vmx_channel = 1;
- vmx_channel = addr;
+ s->hvm_channel = 1;
+ hvm_channel = addr;
switch(s->write_state) {
default:
case RW_STATE_LSB:
diff --git a/tools/ioemu/hw/i8259.c b/tools/ioemu/hw/i8259.c
index 6385bca28f..4964076041 100644
--- a/tools/ioemu/hw/i8259.c
+++ b/tools/ioemu/hw/i8259.c
@@ -31,7 +31,7 @@
//#define DEBUG_IRQ_LATENCY
//#define DEBUG_IRQ_COUNT
-extern void pit_reset_vmx_vectors();
+extern void pit_reset_hvm_vectors();
typedef struct PicState {
uint8_t last_irr; /* edge detection */
@@ -368,7 +368,7 @@ static void pic_ioport_write(void *opaque, uint32_t addr, uint32_t val)
case 1:
s->irq_base = val & 0xf8;
s->init_state = 2;
- pit_reset_vmx_vectors();
+ pit_reset_hvm_vectors();
break;
case 2:
if (s->init4) {
diff --git a/tools/ioemu/monitor.c b/tools/ioemu/monitor.c
index 643313197d..3280dc0169 100644
--- a/tools/ioemu/monitor.c
+++ b/tools/ioemu/monitor.c
@@ -225,10 +225,10 @@ static void do_info_history (void)
}
}
-extern void destroy_vmx_domain(void);
+extern void destroy_hvm_domain(void);
static void do_quit(void)
{
- destroy_vmx_domain();
+ destroy_hvm_domain();
exit(0);
}
@@ -506,8 +506,8 @@ static term_cmd_t info_cmds[] = {
"", "show i8259 (PIC) state", },
{ "pci", "", pci_info,
"", "show PCI info", },
- { "vmxiopage", "", sp_info,
- "", "show VMX device model shared page info", },
+ { "hvmiopage", "", sp_info,
+ "", "show HVM device model shared page info", },
{ NULL, NULL, },
};
@@ -700,7 +700,7 @@ static void monitor_handle_command(const char *cmdline)
args[nb_args++] = (void *)has_option;
}
break;
- /* TODO: add more commands we need here to support vmx device model */
+ /* TODO: add more commands we need here to support hvm device model */
case '/':
case 'i':
default:
@@ -772,14 +772,14 @@ static void monitor_handle_command1(void *opaque, const char *cmdline)
static void monitor_start_input(void)
{
- readline_start("(VTXen) ", 0, monitor_handle_command1, NULL);
+ readline_start("(HVMXen) ", 0, monitor_handle_command1, NULL);
}
void monitor_init(CharDriverState *hd, int show_banner)
{
monitor_hd = hd;
if (show_banner) {
- term_printf("VMX device model. type 'q' to exit\n");
+ term_printf("HVM device model. type 'q' to exit\n");
}
qemu_chr_add_read_handler(hd, term_can_read, term_read, NULL);
monitor_start_input();
diff --git a/tools/ioemu/target-i386-dm/helper2.c b/tools/ioemu/target-i386-dm/helper2.c
index 4d3088ce3b..94f10df4a3 100644
--- a/tools/ioemu/target-i386-dm/helper2.c
+++ b/tools/ioemu/target-i386-dm/helper2.c
@@ -20,7 +20,9 @@
/*
* Main cpu loop for handling I/O requests coming from a virtual machine
+ *
* Copyright © 2004, Intel Corporation.
+ * Copyright © 2005, International Business Machines Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU Lesser General Public License,
@@ -394,7 +396,7 @@ void cpu_handle_ioreq(CPUState *env)
int xc_handle;
void
-destroy_vmx_domain(void)
+destroy_hvm_domain(void)
{
extern FILE* logfile;
char destroy_cmd[32];
@@ -467,11 +469,11 @@ int main_loop(void)
(void)ioctl(evtchn_fd, IOCTL_EVTCHN_NOTIFY, &notify);
}
}
- destroy_vmx_domain();
+ destroy_hvm_domain();
return 0;
}
-static void qemu_vmx_reset(void *unused)
+static void qemu_hvm_reset(void *unused)
{
char cmd[64];
@@ -489,7 +491,7 @@ CPUState * cpu_init()
int rc;
cpu_exec_init();
- qemu_register_reset(qemu_vmx_reset, NULL);
+ qemu_register_reset(qemu_hvm_reset, NULL);
env = malloc(sizeof(CPUX86State));
if (!env)
return NULL;
diff --git a/tools/ioemu/vl.c b/tools/ioemu/vl.c
index 736a762d19..aeed28e1e2 100644
--- a/tools/ioemu/vl.c
+++ b/tools/ioemu/vl.c
@@ -125,7 +125,7 @@ static char network_script[1024];
int pit_min_timer_count = 0;
int nb_nics;
char bridge[16];
-char domain_name[1024] = { 'V', 'T', 'X', 'E', 'N', '-'};
+char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
NetDriverState nd_table[MAX_NICS];
QEMUTimer *gui_timer;
QEMUTimer *polling_timer;
@@ -826,8 +826,8 @@ static void init_timers(void)
{
/* get times() syscall frequency */
timer_freq = sysconf(_SC_CLK_TCK);
-
-#ifndef TARGET_VMX
+
+#ifndef TARGET_HVM
/* timer signal */
sigfillset(&act.sa_mask);
act.sa_flags = 0;
@@ -869,7 +869,7 @@ static void init_timers(void)
pit_min_timer_count = ((uint64_t)itv.it_interval.tv_usec *
PIT_FREQ) / 1000000;
}
-#endif /* TARGET_VMX */
+#endif /* TARGET_HVM */
}
#endif
}
diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
index 44fc9d8160..84d4829ecf 100644
--- a/tools/libxc/Makefile
+++ b/tools/libxc/Makefile
@@ -45,7 +45,7 @@ else
BUILD_SRCS += xc_load_aout9.c
BUILD_SRCS += xc_linux_restore.c
BUILD_SRCS += xc_linux_save.c
-BUILD_SRCS += xc_vmx_build.c
+BUILD_SRCS += xc_hvm_build.c
endif
CFLAGS += -Wall
diff --git a/tools/libxc/xc_vmx_build.c b/tools/libxc/xc_hvm_build.c
index 222ec17207..086adbb181 100644
--- a/tools/libxc/xc_vmx_build.c
+++ b/tools/libxc/xc_hvm_build.c
@@ -1,5 +1,5 @@
/******************************************************************************
- * xc_vmx_build.c
+ * xc_hvm_build.c
*/
#include <stddef.h>
@@ -12,7 +12,7 @@
#include <xen/hvm/hvm_info_table.h>
#include <xen/hvm/ioreq.h>
-#define VMX_LOADER_ENTR_ADDR 0x00100000
+#define HVM_LOADER_ENTR_ADDR 0x00100000
#define L1_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_USER)
#define L2_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_DIRTY|_PAGE_USER)
@@ -133,7 +133,7 @@ set_hvm_info_checksum(struct hvm_info_table *t)
/*
* Use E820 reserved memory 0x9F800 to pass HVM info to vmxloader
- * vmxloader will use this info to set BIOS accordingly
+ * hvmloader will use this info to set BIOS accordingly
*/
static int set_hvm_info(int xc_handle, uint32_t dom,
unsigned long *pfn_list, unsigned int vcpus,
@@ -142,6 +142,7 @@ static int set_hvm_info(int xc_handle, uint32_t dom,
char *va_map;
struct hvm_info_table *va_hvm;
+
va_map = xc_map_foreign_range(
xc_handle,
dom,
@@ -302,7 +303,7 @@ static int setup_guest(int xc_handle,
unsigned long shared_info_frame,
unsigned int control_evtchn,
unsigned int vcpus,
- unsigned int acpi,
+ unsigned int acpi,
unsigned int apic,
unsigned int store_evtchn,
unsigned long *store_mfn)
@@ -357,7 +358,7 @@ static int setup_guest(int xc_handle,
vpt_end = vpt_start + (nr_pt_pages * PAGE_SIZE);
printf("VIRTUAL MEMORY ARRANGEMENT:\n"
- " Loaded VMX loader: %08lx->%08lx\n"
+ " Loaded HVM loader: %08lx->%08lx\n"
" Page tables: %08lx->%08lx\n"
" TOTAL: %08lx->%08lx\n",
dsi.v_kernstart, dsi.v_kernend,
@@ -514,7 +515,7 @@ static int setup_guest(int xc_handle,
}
if ( set_hvm_info(xc_handle, dom, page_array, vcpus, acpi, apic) ) {
- fprintf(stderr, "Couldn't set hvm info for VMX guest.\n");
+ fprintf(stderr, "Couldn't set hvm info for HVM guest.\n");
goto error_out;
}
@@ -595,13 +596,13 @@ static int setup_guest(int xc_handle,
return -1;
}
-int xc_vmx_build(int xc_handle,
+int xc_hvm_build(int xc_handle,
uint32_t domid,
int memsize,
const char *image_name,
unsigned int control_evtchn,
unsigned int vcpus,
- unsigned int acpi,
+ unsigned int acpi,
unsigned int apic,
unsigned int store_evtchn,
unsigned long *store_mfn)
@@ -622,8 +623,8 @@ int xc_vmx_build(int xc_handle,
if ( !strstr(xen_caps, "hvm") )
{
- PERROR("CPU doesn't support VMX Extensions or "
- "CPU VMX Extensions are not turned on");
+ PERROR("CPU doesn't support HVM extensions or "
+ "the extensions are not enabled");
goto error_out;
}
@@ -653,6 +654,7 @@ int xc_vmx_build(int xc_handle,
memset(ctxt, 0, sizeof(*ctxt));
+ ctxt->flags = VGCF_HVM_GUEST;
if ( setup_guest(xc_handle, domid, memsize, image, image_size, nr_pages,
ctxt, op.u.getdomaininfo.shared_info_frame, control_evtchn,
vcpus, acpi, apic, store_evtchn, store_mfn) < 0)
@@ -663,7 +665,6 @@ int xc_vmx_build(int xc_handle,
free(image);
- ctxt->flags = VGCF_VMX_GUEST;
/* FPU is set up to default initial state. */
memset(&ctxt->fpu_ctxt, 0, sizeof(ctxt->fpu_ctxt));
@@ -779,7 +780,7 @@ static int parseelfimage(char *elfbase,
dsi->v_kernstart = kernstart;
dsi->v_kernend = kernend;
- dsi->v_kernentry = VMX_LOADER_ENTR_ADDR;
+ dsi->v_kernentry = HVM_LOADER_ENTR_ADDR;
dsi->v_end = dsi->v_kernend;
diff --git a/tools/libxc/xc_ia64_stubs.c b/tools/libxc/xc_ia64_stubs.c
index e742df3ba0..2a403cd3b6 100644
--- a/tools/libxc/xc_ia64_stubs.c
+++ b/tools/libxc/xc_ia64_stubs.c
@@ -621,7 +621,7 @@ static int setup_guest( int xc_handle,
return -1;
}
-int xc_vmx_build(int xc_handle,
+int xc_hvm_build(int xc_handle,
uint32_t domid,
int memsize,
const char *image_name,
diff --git a/tools/libxc/xc_linux_build.c b/tools/libxc/xc_linux_build.c
index eae62d20ce..f90f509f2c 100644
--- a/tools/libxc/xc_linux_build.c
+++ b/tools/libxc/xc_linux_build.c
@@ -815,7 +815,7 @@ static int setup_guest(int xc_handle,
start_info->mod_len = initrd_len;
}
if ( cmdline != NULL )
- {
+ {
strncpy((char *)start_info->cmd_line, cmdline, MAX_GUEST_CMDLINE);
start_info->cmd_line[MAX_GUEST_CMDLINE-1] = '\0';
}
diff --git a/tools/libxc/xc_ptrace.c b/tools/libxc/xc_ptrace.c
index ac30269cfb..5cea66db82 100644
--- a/tools/libxc/xc_ptrace.c
+++ b/tools/libxc/xc_ptrace.c
@@ -240,7 +240,7 @@ map_domain_va(
}
if ( (pde = cr3_virt[cpu][vtopdi(va)]) == 0 )
goto error_out;
- if ( (ctxt[cpu].flags & VGCF_VMX_GUEST) && paging_enabled(&ctxt[cpu]) )
+ if ( (ctxt[cpu].flags & VGCF_HVM_GUEST) && paging_enabled(&ctxt[cpu]) )
pde = page_array[pde >> PAGE_SHIFT] << PAGE_SHIFT;
if ( pde != pde_phys[cpu] )
{
@@ -255,7 +255,7 @@ map_domain_va(
}
if ( (page = pde_virt[cpu][vtopti(va)]) == 0 )
goto error_out;
- if ( (ctxt[cpu].flags & VGCF_VMX_GUEST) && paging_enabled(&ctxt[cpu]) )
+ if ( (ctxt[cpu].flags & VGCF_HVM_GUEST) && paging_enabled(&ctxt[cpu]) )
page = page_array[page >> PAGE_SHIFT] << PAGE_SHIFT;
if ( (page != page_phys[cpu]) || (perm != prev_perm[cpu]) )
{
diff --git a/tools/libxc/xc_ptrace_core.c b/tools/libxc/xc_ptrace_core.c
index 43463b65a3..3c55b0474b 100644
--- a/tools/libxc/xc_ptrace_core.c
+++ b/tools/libxc/xc_ptrace_core.c
@@ -126,7 +126,7 @@ map_domain_va(unsigned long domfd, int cpu, void * guest_va)
}
if ((pde = cr3_virt[cpu][vtopdi(va)]) == 0) /* logical address */
goto error_out;
- if (ctxt[cpu].flags & VGCF_VMX_GUEST)
+ if (ctxt[cpu].flags & VGCF_HVM_GUEST)
pde = p2m_array[pde >> PAGE_SHIFT] << PAGE_SHIFT;
if (pde != pde_phys[cpu])
{
@@ -142,7 +142,7 @@ map_domain_va(unsigned long domfd, int cpu, void * guest_va)
}
if ((page = pde_virt[cpu][vtopti(va)]) == 0) /* logical address */
goto error_out;
- if (ctxt[cpu].flags & VGCF_VMX_GUEST)
+ if (ctxt[cpu].flags & VGCF_HVM_GUEST)
page = p2m_array[page >> PAGE_SHIFT] << PAGE_SHIFT;
if (page != page_phys[cpu])
{
diff --git a/tools/libxc/xenguest.h b/tools/libxc/xenguest.h
index 5cad964f80..4a11b5ec1b 100644
--- a/tools/libxc/xenguest.h
+++ b/tools/libxc/xenguest.h
@@ -53,7 +53,7 @@ int xc_linux_build(int xc_handle,
unsigned int console_evtchn,
unsigned long *console_mfn);
-int xc_vmx_build(int xc_handle,
+int xc_hvm_build(int xc_handle,
uint32_t domid,
int memsize,
const char *image_name,
diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
index f935044b26..d7cc20a274 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -355,7 +355,7 @@ static PyObject *pyxc_linux_build(XcObject *self,
"console_mfn", console_mfn);
}
-static PyObject *pyxc_vmx_build(XcObject *self,
+static PyObject *pyxc_hvm_build(XcObject *self,
PyObject *args,
PyObject *kwds)
{
@@ -369,16 +369,15 @@ static PyObject *pyxc_vmx_build(XcObject *self,
unsigned long store_mfn = 0;
static char *kwd_list[] = { "dom", "control_evtchn", "store_evtchn",
- "memsize", "image", "vcpus", "acpi", "apic",
- NULL };
-
+ "memsize", "image", "vcpus", "acpi", "apic",
+ NULL };
if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iiiisiii", kwd_list,
&dom, &control_evtchn, &store_evtchn,
- &memsize, &image, &vcpus, &acpi, &apic) )
+ &memsize, &image, &vcpus, &acpi, &apic) )
return NULL;
- if ( xc_vmx_build(self->xc_handle, dom, memsize, image, control_evtchn,
- vcpus, acpi, apic, store_evtchn, &store_mfn) != 0 )
+ if ( xc_hvm_build(self->xc_handle, dom, memsize, image, control_evtchn,
+ vcpus, acpi, apic, store_evtchn, &store_mfn) != 0 )
return PyErr_SetFromErrno(xc_error);
return Py_BuildValue("{s:i}", "store_mfn", store_mfn);
@@ -965,12 +964,12 @@ static PyMethodDef pyxc_methods[] = {
" vcpus [int, 1]: Number of Virtual CPUS in domain.\n\n"
"Returns: [int] 0 on success; -1 on error.\n" },
- { "vmx_build",
- (PyCFunction)pyxc_vmx_build,
+ { "hvm_build",
+ (PyCFunction)pyxc_hvm_build,
METH_VARARGS | METH_KEYWORDS, "\n"
- "Build a new VMX guest OS.\n"
+ "Build a new HVM guest OS.\n"
" dom [int]: Identifier of domain to build into.\n"
- " image [str]: Name of VMX loader image file.\n"
+ " image [str]: Name of HVM loader image file.\n"
" vcpus [int, 1]: Number of Virtual CPUS in domain.\n\n"
"Returns: [int] 0 on success; -1 on error.\n" },
diff --git a/tools/python/xen/xend/image.py b/tools/python/xen/xend/image.py
index 338a1006eb..8a73ed90b6 100644
--- a/tools/python/xen/xend/image.py
+++ b/tools/python/xen/xend/image.py
@@ -143,7 +143,7 @@ class ImageHandler:
def getDomainMemory(self, mem):
"""@return The memory required, in KiB, by the domain to store the
- given amount, also in KiB. This is normally just mem, but VMX domains
+ given amount, also in KiB. This is normally just mem, but HVM domains
have overheads to account for."""
return mem
@@ -183,21 +183,21 @@ class LinuxImageHandler(ImageHandler):
cmdline = self.cmdline,
ramdisk = self.ramdisk)
-class VmxImageHandler(ImageHandler):
+class HVMImageHandler(ImageHandler):
- ostype = "vmx"
+ ostype = "hvm"
def configure(self, imageConfig, deviceConfig):
ImageHandler.configure(self, imageConfig, deviceConfig)
info = xc.xeninfo()
- if not 'hvm' in info['xen_caps']:
- raise VmError("vmx: not an Intel VT platform, we stop creating!")
+ if not 'hvm' in info['xen_caps']:
+ raise VmError("Not an HVM capable platform, we stop creating!")
self.dmargs = self.parseDeviceModelArgs(imageConfig, deviceConfig)
self.device_model = sxp.child_value(imageConfig, 'device_model')
if not self.device_model:
- raise VmError("vmx: missing device model")
+ raise VmError("hvm: missing device model")
self.display = sxp.child_value(imageConfig, 'display')
self.xauthority = sxp.child_value(imageConfig, 'xauthority')
@@ -217,7 +217,7 @@ class VmxImageHandler(ImageHandler):
# Create an event channel
self.device_channel = xc.evtchn_alloc_unbound(dom=self.vm.getDomid(),
remote_dom=0)
- log.info("VMX device model port: %d", self.device_channel)
+ log.info("HVM device model port: %d", self.device_channel)
store_evtchn = self.vm.getStorePort()
@@ -232,7 +232,7 @@ class VmxImageHandler(ImageHandler):
self.register_shutdown_watch()
- return xc.vmx_build(dom = self.vm.getDomid(),
+ return xc.hvm_build(dom = self.vm.getDomid(),
image = self.kernel,
control_evtchn = self.device_channel,
store_evtchn = store_evtchn,
@@ -283,7 +283,7 @@ class VmxImageHandler(ImageHandler):
continue;
vbddev_list = ['hda', 'hdb', 'hdc', 'hdd']
if vbddev not in vbddev_list:
- raise VmError("vmx: for qemu vbd type=file&dev=hda~hdd")
+ raise VmError("hvm: for qemu vbd type=file&dev=hda~hdd")
ret.append("-%s" % vbddev)
ret.append("%s" % vbdparam)
if name == 'vif':
@@ -405,8 +405,8 @@ class VmxImageHandler(ImageHandler):
def register_shutdown_watch(self):
""" add xen store watch on control/shutdown """
self.shutdownWatch = xswatch(self.vm.dompath + "/control/shutdown", \
- self.vmx_shutdown)
- log.debug("vmx shutdown watch registered")
+ self.hvm_shutdown)
+ log.debug("hvm shutdown watch registered")
def unregister_shutdown_watch(self):
"""Remove the watch on the control/shutdown, if any. Nothrow
@@ -416,11 +416,11 @@ class VmxImageHandler(ImageHandler):
if self.shutdownWatch:
self.shutdownWatch.unwatch()
except:
- log.exception("Unwatching vmx shutdown watch failed.")
+ log.exception("Unwatching hvm shutdown watch failed.")
self.shutdownWatch = None
- log.debug("vmx shutdown watch unregistered")
+ log.debug("hvm shutdown watch unregistered")
- def vmx_shutdown(self, _):
+ def hvm_shutdown(self, _):
""" watch call back on node control/shutdown,
if node changed, this function will be called
"""
@@ -429,7 +429,7 @@ class VmxImageHandler(ImageHandler):
vm = xd.domain_lookup( self.vm.getDomid() )
reason = vm.readDom('control/shutdown')
- log.debug("vmx_shutdown fired, shutdown reason=%s", reason)
+ log.debug("hvm_shutdown fired, shutdown reason=%s", reason)
for x in shutdown_reasons.keys():
if shutdown_reasons[x] == reason:
vm.info['shutdown'] = 1
@@ -444,7 +444,7 @@ image type.
imageHandlerClasses = {}
-for h in LinuxImageHandler, VmxImageHandler:
+for h in LinuxImageHandler, HVMImageHandler:
imageHandlerClasses[h.ostype] = h
diff --git a/tools/python/xen/xm/create.py b/tools/python/xen/xm/create.py
index a6408f82ba..4aeaf34945 100644
--- a/tools/python/xen/xm/create.py
+++ b/tools/python/xen/xm/create.py
@@ -162,11 +162,11 @@ gopts.var('cpus', val='CPUS',
gopts.var('acpi', val='ACPI',
fn=set_int, default=0,
- use="Disable or enable ACPI of VMX domain.")
+ use="Disable or enable ACPI of HVM domain.")
gopts.var('apic', val='APIC',
fn=set_int, default=0,
- use="Disable or enable APIC of VMX domain.")
+ use="Disable or enable APIC of HVM domain.")
gopts.var('vcpus', val='VCPUS',
fn=set_int, default=1,
@@ -441,8 +441,8 @@ def configure_image(vals):
if vals.extra:
config_image.append(['args', vals.extra])
- if vals.builder == 'vmx':
- configure_vmx(config_image, vals)
+ if vals.builder == 'hvm':
+ configure_hvm(config_image, vals)
return config_image
@@ -536,8 +536,8 @@ def configure_vifs(config_devs, vals):
config_devs.append(['device', config_vif])
-def configure_vmx(config_image, vals):
- """Create the config for VMX devices.
+def configure_hvm(config_image, vals):
+ """Create the config for HVM devices.
"""
args = [ 'device_model', 'vcpus', 'cdrom', 'boot', 'fda', 'fdb',
'localtime', 'serial', 'stdvga', 'isa', 'nographic', 'audio',
diff --git a/tools/python/xen/xm/tests/test_create.py b/tools/python/xen/xm/tests/test_create.py
index f04496288d..4cce721ea0 100644
--- a/tools/python/xen/xm/tests/test_create.py
+++ b/tools/python/xen/xm/tests/test_create.py
@@ -141,15 +141,15 @@ cpu_weight = 0.75
})
- def testVMXConfigFile(self):
+ def testHVMConfigFile(self):
(fd, fname) = tempfile.mkstemp()
try:
os.write(fd,
'''
-kernel = "/usr/lib/xen/boot/vmxloader"
-builder='vmx'
+kernel = "/usr/lib/xen/boot/hvmloader"
+builder='hvm'
memory = 128
-name = "ExampleVMXDomain"
+name = "ExampleHVMDomain"
vcpus=1
vif = [ 'type=ioemu, bridge=xenbr0' ]
disk = [ 'file:/var/images/min-el3-i386.img,ioemu:hda,w' ]
@@ -163,10 +163,10 @@ ne2000=0
os.close(fd)
self.t('-f %s display=fakedisplay' % fname,
- { 'kernel' : '/usr/lib/xen/boot/vmxloader',
- 'builder' : 'vmx',
+ { 'kernel' : '/usr/lib/xen/boot/hvmloader',
+ 'builder' : 'hvm',
'memory' : 128,
- 'name' : 'ExampleVMXDomain',
+ 'name' : 'ExampleHVMDomain',
'vcpus' : 1,
'nics' : -1,
'vif' : ['type=ioemu, bridge=xenbr0'],
diff --git a/tools/xm-test/README b/tools/xm-test/README
index 481baca211..f65e9a26b5 100644
--- a/tools/xm-test/README
+++ b/tools/xm-test/README
@@ -60,26 +60,26 @@ BUILDING with HVM Support
=========================
If you'd like to build and run this with hardware virtual machine assist
-(HVM) support to test fully virtualized disk images on VMX hardware,
-please add the --enable-vmx-support option to configure:
+(HVM) support to test fully virtualized disk images on VMX/SVM hardware,
+please add the --enable-hvm-support option to configure:
# ./autogen
- # ./configure --enable-vmx-support
+ # ./configure --enable-hvm-support
# make
The ramdisk/bin/create_disk_image script, which builds the full virt
disk.img, requires Lilo 22.7+ to be installed on the system. Lilo is
used to install the bootloader on the disk.img.
-If HVM / VMX support is enabled, the ramdisk/bin/create_disk_image script
+If HVM support is enabled, the ramdisk/bin/create_disk_image script
will be run to create a full virt disk.img in the ramdisk directory. The
script, by default, will look in /boot for the first non-Xen kernel it
runs across. If you'd like to set xm-test to use a specific kernel,
rather than the first one it finds in /boot, you can configure it in
-with the "--with-vmx-kernel=KERNEL" option:
-
+with the "--with-hvm-kernel=KERNEL" option:
+
# ./autogen
-# ./configure --enable-vmx-support --with-vmx-kernel=KERNEL
+# ./configure --enable-hvm-support --with-hvm-kernel=KERNEL
# make
Otherwise, you can always rerun the create script using the -k option
@@ -92,14 +92,14 @@ used. If you'd like to specify a different location for the driver or
want to tell the script that the driver is built into the kernel, please
use the "--with-driver-dir=DRVDIR" configure option. If built into
the kernel, please use the key word "builtin" with the option:
-
+
# ./autogen
-# ./configure --enable-vmx-support --with-driver-dir=builtin
+# ./configure --enable-hvm-support --with-driver-dir=builtin
- or -
-# ./configure --enable-vmx-support --with-driver-dir=/driver/directory
+# ./configure --enable-hvm-support --with-driver-dir=/driver/directory
# make
-
-Xm-test will look for disk.img in the ramdisk directory when run by
+
+Xm-test will look for disk.img in the ramdisk directory when run by
default.
diff --git a/tools/xm-test/configure.ac b/tools/xm-test/configure.ac
index 8f844c1148..22b2addc8f 100644
--- a/tools/xm-test/configure.ac
+++ b/tools/xm-test/configure.ac
@@ -15,18 +15,18 @@ TESTLIB=../../lib
RD_PATH=../../ramdisk
TENV="PYTHONPATH=$PYTHONPATH:$TESTLIB:/usr/lib/python RD_PATH=$RD_PATH"
-AC_ARG_ENABLE(vmx-support,
- [[ --enable-vmx-support enable hardware virtual machine assist]],
+AC_ARG_ENABLE(hvm-support,
+ [[ --enable-hvm-support enable hardware virtual machine assist]],
[
- ENABLE_VMX=True
+ ENABLE_HVM=True
],[
- ENABLE_VMX=False
+ ENABLE_HVM=False
])
-if test "x$ENABLE_VMX" = "xTrue"; then
+if test "x$ENABLE_HVM" = "xTrue"; then
if test "$LILO" = "no"; then
AC_MSG_ERROR([lilo not found
-lilo version 22.7 or greater must be installed for testing with vmx enabled.])
+lilo version 22.7 or greater must be installed for testing with hvm enabled.])
else
pass=`$LILO -V | sed -e "s/LILO version //" | awk -F "." '{if ($1 >=22 && $2 >= 7) print "true"; else print "false"}'`
if test "$pass" != "true"; then
@@ -35,16 +35,16 @@ lilo version 22.7 or greater must be installed for testing with vmx enabled.])
fi
fi
-AM_CONDITIONAL(VMX, test x$ENABLE_VMX = xTrue)
-AC_SUBST(ENABLE_VMX)
+AM_CONDITIONAL(HVM, test x$ENABLE_HVM = xTrue)
+AC_SUBST(ENABLE_HVM)
-AC_ARG_WITH(vmx-kernel,
- [[ --with-vmx-kernel=kernel Use this kernel for vmx disk.img testing]],
- VMXKERNEL=$withval,
- VMXKERNEL="no")
+AC_ARG_WITH(hvm-kernel,
+ [[ --with-hvm-kernel=kernel Use this kernel for hvm disk.img testing]],
+ HVMKERNEL=$withval,
+ HVMKERNEL="no")
-dnl substitute @VMXKERNEL@ in all Makefiles
-AC_SUBST(VMXKERNEL)
+dnl substitute @HVMKERNEL@ in all Makefiles
+AC_SUBST(HVMKERNEL)
AC_ARG_WITH(driver-dir,
[[ --with-driver-dir=drvdir Look in this directory for the pcnet32 driver for the vmx disk.img. drvdir can equal key word "builtin" if driver is built into the kernel]],
diff --git a/tools/xm-test/lib/XmTestLib/XenDomain.py b/tools/xm-test/lib/XmTestLib/XenDomain.py
index 49e111e68b..80825064a8 100644
--- a/tools/xm-test/lib/XmTestLib/XenDomain.py
+++ b/tools/xm-test/lib/XmTestLib/XenDomain.py
@@ -70,14 +70,14 @@ ParavirtDefaults = {"memory" : 64,
"root" : "/dev/ram0",
"ramdisk" : getRdPath() + "/initrd.img"
}
-VmxDefaults = {"memory" : 64,
+HVMDefaults = {"memory" : 64,
"vcpus" : 1,
"acpi" : 0,
"apic" : 0,
"disk" : ["file:%s/disk.img,ioemu:%s,w" %
(getRdPath(), BLOCK_ROOT_DEV)],
- "kernel" : "/usr/lib/xen/boot/vmxloader",
- "builder" : "vmx",
+ "kernel" : "/usr/lib/xen/boot/hvmloader",
+ "builder" : "hvm",
"sdl" : 0,
"vnc" : 0,
"vncviewer" : 0,
@@ -86,8 +86,8 @@ VmxDefaults = {"memory" : 64,
"device_model" : getDeviceModel()
}
-if ENABLE_VMX_SUPPORT:
- configDefaults = VmxDefaults
+if ENABLE_HVM_SUPPORT:
+ configDefaults = HVMDefaults
else:
configDefaults = ParavirtDefaults
@@ -247,7 +247,7 @@ class XmTestDomain(XenDomain):
def start(self):
XenDomain.start(self)
- if ENABLE_VMX_SUPPORT:
+ if ENABLE_HVM_SUPPORT:
waitForBoot()
def startNow(self):
@@ -271,7 +271,7 @@ if __name__ == "__main__":
print str(c)
-
+
# c.write("/tmp/foo.conf")
diff --git a/tools/xm-test/lib/XmTestLib/config.py.in b/tools/xm-test/lib/XmTestLib/config.py.in
index 86e7cf7a2c..dafbc1f909 100644
--- a/tools/xm-test/lib/XmTestLib/config.py.in
+++ b/tools/xm-test/lib/XmTestLib/config.py.in
@@ -1,4 +1,4 @@
#!/usr/bin/python
-ENABLE_VMX_SUPPORT = @ENABLE_VMX@
+ENABLE_HVM_SUPPORT = @ENABLE_HVM@
diff --git a/tools/xm-test/ramdisk/Makefile.am b/tools/xm-test/ramdisk/Makefile.am
index 21133f5c4e..ad71da4b14 100644
--- a/tools/xm-test/ramdisk/Makefile.am
+++ b/tools/xm-test/ramdisk/Makefile.am
@@ -9,12 +9,12 @@ BR_IMG = $(BR_SRC)/rootfs.i386.ext2
BR_ROOT = build_i386/root
-VMX_SCRIPT = bin/create_disk_image
+HVM_SCRIPT = bin/create_disk_image
XMTEST_MAJ_VER = $(shell echo @PACKAGE_VERSION@ | perl -pe 's/(\d+)\.(\d+)\.\d+/\1.\2/')
XMTEST_VER_IMG = initrd-$(XMTEST_MAJ_VER).img
-if VMX
+if HVM
all: initrd.img disk.img
else
all: initrd.img
@@ -44,16 +44,16 @@ initrd.img: $(XMTEST_VER_IMG)
ln -sf $(XMTEST_VER_IMG) initrd.img
disk.img: $(XMTEST_VER_IMG)
- chmod a+x $(VMX_SCRIPT)
- @if test ! "$(VMXKERNEL)" = "no" -a ! "$(DRVDIR)" = "no"; then \
- $(VMX_SCRIPT) -r $(XMTEST_VER_IMG) -k $(VMXKERNEL) \
+ chmod a+x $(HVM_SCRIPT)
+ @if test ! "$(HVMKERNEL)" = "no" -a ! "$(DRVDIR)" = "no"; then \
+ $(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -k $(HVMKERNEL) \
-d $(DRVDIR); \
- elif test "$(VMXKERNEL)" = "no" -a ! "$(DRVDIR)" = "no"; then \
- $(VMX_SCRIPT) -r $(XMTEST_VER_IMG) -d $(DRVDIR); \
- elif test ! "$(VMXKERNEL)" = "no" -a "$(DRVDIR)" = "no"; then \
- $(VMX_SCRIPT) -r $(XMTEST_VER_IMG) -k $(VMXKERNEL); \
+ elif test "$(HVMKERNEL)" = "no" -a ! "$(DRVDIR)" = "no"; then \
+ $(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -d $(DRVDIR); \
+ elif test ! "$(HVMKERNEL)" = "no" -a "$(DRVDIR)" = "no"; then \
+ $(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -k $(HVMKERNEL); \
else \
- $(VMX_SCRIPT) -r $(XMTEST_VER_IMG); \
+ $(HVM_SCRIPT) -r $(XMTEST_VER_IMG); \
fi
existing:
diff --git a/tools/xm-test/ramdisk/bin/create_disk_image b/tools/xm-test/ramdisk/bin/create_disk_image
index 836e8a5c14..bde4b2dede 100644
--- a/tools/xm-test/ramdisk/bin/create_disk_image
+++ b/tools/xm-test/ramdisk/bin/create_disk_image
@@ -46,7 +46,7 @@ function die()
function usage()
{
cat << EOU
-Command creates a vmx guest disk image for xm-test.
+Command creates a hvm guest disk image for xm-test.
Usage: $0 [OPTIONS]
diff --git a/tools/xm-test/tests/block-create/01_block_attach_device_pos.py b/tools/xm-test/tests/block-create/01_block_attach_device_pos.py
index 5c2febdad4..564ffad0bf 100644
--- a/tools/xm-test/tests/block-create/01_block_attach_device_pos.py
+++ b/tools/xm-test/tests/block-create/01_block_attach_device_pos.py
@@ -9,8 +9,8 @@ import time
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-attach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-attach not supported for HVM domains")
# Create a domain (default XmTestDomain, with our ramdisk)
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/block-create/02_block_attach_file_device_pos.py b/tools/xm-test/tests/block-create/02_block_attach_file_device_pos.py
index 36d64cc56e..0cfb6de109 100644
--- a/tools/xm-test/tests/block-create/02_block_attach_file_device_pos.py
+++ b/tools/xm-test/tests/block-create/02_block_attach_file_device_pos.py
@@ -9,8 +9,8 @@ import time
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-attach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-attach not supported for HVM domains")
# Create a domain (default XmTestDomain, with our ramdisk)
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/block-create/04_block_attach_device_repeatedly_pos.py b/tools/xm-test/tests/block-create/04_block_attach_device_repeatedly_pos.py
index d392c60427..8a5680f10b 100644
--- a/tools/xm-test/tests/block-create/04_block_attach_device_repeatedly_pos.py
+++ b/tools/xm-test/tests/block-create/04_block_attach_device_repeatedly_pos.py
@@ -9,8 +9,8 @@ import time
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-attach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-attach not supported for HVM domains")
# Create a domain (default XmTestDomain, with our ramdisk)
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/block-create/05_block_attach_and_dettach_device_repeatedly_pos.py b/tools/xm-test/tests/block-create/05_block_attach_and_dettach_device_repeatedly_pos.py
index 06cc116974..1434ad2176 100644
--- a/tools/xm-test/tests/block-create/05_block_attach_and_dettach_device_repeatedly_pos.py
+++ b/tools/xm-test/tests/block-create/05_block_attach_and_dettach_device_repeatedly_pos.py
@@ -9,8 +9,8 @@ import time
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-attach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-attach not supported for HVM domains")
# Create a domain (default XmTestDomain, with our ramdisk)
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/block-create/06_block_attach_baddomain_neg.py b/tools/xm-test/tests/block-create/06_block_attach_baddomain_neg.py
index bd28bc18be..edfeba1643 100644
--- a/tools/xm-test/tests/block-create/06_block_attach_baddomain_neg.py
+++ b/tools/xm-test/tests/block-create/06_block_attach_baddomain_neg.py
@@ -5,8 +5,8 @@
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-attach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-attach not supported for HVM domains")
status, output = traceCommand("xm block-attach NOT-EXIST phy:ram1 sdb1 w")
diff --git a/tools/xm-test/tests/block-create/07_block_attach_baddevice_neg.py b/tools/xm-test/tests/block-create/07_block_attach_baddevice_neg.py
index 8c08658068..ac179d50a3 100644
--- a/tools/xm-test/tests/block-create/07_block_attach_baddevice_neg.py
+++ b/tools/xm-test/tests/block-create/07_block_attach_baddevice_neg.py
@@ -9,8 +9,8 @@ import time
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-attach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-attach not supported for HVM domains")
# Create a domain (default XmTestDomain, with our ramdisk)
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/block-create/08_block_attach_bad_filedevice_neg.py b/tools/xm-test/tests/block-create/08_block_attach_bad_filedevice_neg.py
index e34f5c8ebd..2a908c3295 100644
--- a/tools/xm-test/tests/block-create/08_block_attach_bad_filedevice_neg.py
+++ b/tools/xm-test/tests/block-create/08_block_attach_bad_filedevice_neg.py
@@ -9,8 +9,8 @@ import time
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-attach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-attach not supported for HVM domains")
# Create a domain (default XmTestDomain, with our ramdisk)
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/block-create/09_block_attach_and_dettach_device_check_data_pos.py b/tools/xm-test/tests/block-create/09_block_attach_and_dettach_device_check_data_pos.py
index 60b12da70e..4bcfd863f3 100644
--- a/tools/xm-test/tests/block-create/09_block_attach_and_dettach_device_check_data_pos.py
+++ b/tools/xm-test/tests/block-create/09_block_attach_and_dettach_device_check_data_pos.py
@@ -9,8 +9,8 @@ import time
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-attach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-attach not supported for HVM domains")
# Create a domain (default XmTestDomain, with our ramdisk)
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/block-create/10_block_attach_dettach_multiple_devices.py b/tools/xm-test/tests/block-create/10_block_attach_dettach_multiple_devices.py
index 42fe9e5ebe..4c3b4d1851 100644
--- a/tools/xm-test/tests/block-create/10_block_attach_dettach_multiple_devices.py
+++ b/tools/xm-test/tests/block-create/10_block_attach_dettach_multiple_devices.py
@@ -46,8 +46,8 @@ def dettach(devname):
return 0, None
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-attach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-attach not supported for HVM domains")
# Create a domain (default XmTestDomain, with our ramdisk)
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py b/tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py
index f2e5ca7d64..43f55e234c 100644
--- a/tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py
+++ b/tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py
@@ -5,8 +5,8 @@
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-attach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-attach not supported for HVM domains")
# Mount /dev/ram0
diff --git a/tools/xm-test/tests/block-create/12_block_attach_shared_domU.py b/tools/xm-test/tests/block-create/12_block_attach_shared_domU.py
index 07cf56c373..362e5039e8 100644
--- a/tools/xm-test/tests/block-create/12_block_attach_shared_domU.py
+++ b/tools/xm-test/tests/block-create/12_block_attach_shared_domU.py
@@ -5,8 +5,8 @@
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-attach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-attach not supported for HVM domains")
config = {"disk":"phy:/dev/ram0,hda1,w"}
diff --git a/tools/xm-test/tests/block-destroy/01_block-destroy_btblock_pos.py b/tools/xm-test/tests/block-destroy/01_block-destroy_btblock_pos.py
index 8f7086388c..e3f76c1985 100644
--- a/tools/xm-test/tests/block-destroy/01_block-destroy_btblock_pos.py
+++ b/tools/xm-test/tests/block-destroy/01_block-destroy_btblock_pos.py
@@ -5,8 +5,8 @@
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-detach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-detach not supported for HVM domains")
config = {"disk":"phy:/dev/ram0,hda1,w"}
domain = XmTestDomain(extraConfig=config)
diff --git a/tools/xm-test/tests/block-destroy/02_block-destroy_rtblock_pos.py b/tools/xm-test/tests/block-destroy/02_block-destroy_rtblock_pos.py
index 6c87db8198..db918b7634 100644
--- a/tools/xm-test/tests/block-destroy/02_block-destroy_rtblock_pos.py
+++ b/tools/xm-test/tests/block-destroy/02_block-destroy_rtblock_pos.py
@@ -5,8 +5,8 @@
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-detach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-detach not supported for HVM domains")
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/block-destroy/04_block-destroy_nonattached_neg.py b/tools/xm-test/tests/block-destroy/04_block-destroy_nonattached_neg.py
index 4f1e485800..6fea02864f 100644
--- a/tools/xm-test/tests/block-destroy/04_block-destroy_nonattached_neg.py
+++ b/tools/xm-test/tests/block-destroy/04_block-destroy_nonattached_neg.py
@@ -7,8 +7,8 @@
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-detach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-detach not supported for HVM domains")
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/block-destroy/05_block-destroy_byname_pos.py b/tools/xm-test/tests/block-destroy/05_block-destroy_byname_pos.py
index 2a0993f2a5..5e2587e35f 100644
--- a/tools/xm-test/tests/block-destroy/05_block-destroy_byname_pos.py
+++ b/tools/xm-test/tests/block-destroy/05_block-destroy_byname_pos.py
@@ -5,8 +5,8 @@
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-detach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-detach not supported for HVM domains")
config = {"disk":"phy:/dev/ram0,hda1,w"}
domain = XmTestDomain(extraConfig=config)
diff --git a/tools/xm-test/tests/block-destroy/06_block-destroy_check_list_pos.py b/tools/xm-test/tests/block-destroy/06_block-destroy_check_list_pos.py
index 7f1c7cd453..01e81122b2 100644
--- a/tools/xm-test/tests/block-destroy/06_block-destroy_check_list_pos.py
+++ b/tools/xm-test/tests/block-destroy/06_block-destroy_check_list_pos.py
@@ -26,8 +26,8 @@ def checkXmLongList(domain):
else:
return False
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-detach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-detach not supported for HVM domains")
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/block-list/01_block-list_pos.py b/tools/xm-test/tests/block-list/01_block-list_pos.py
index 185eb66dc2..d176be82f7 100644
--- a/tools/xm-test/tests/block-list/01_block-list_pos.py
+++ b/tools/xm-test/tests/block-list/01_block-list_pos.py
@@ -8,8 +8,8 @@
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-list not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-list not supported for HVM domains")
config = {"disk":"phy:/dev/ram0,hda1,w"}
domain = XmTestDomain(extraConfig=config)
diff --git a/tools/xm-test/tests/block-list/02_block-list_attachbd_pos.py b/tools/xm-test/tests/block-list/02_block-list_attachbd_pos.py
index 27e56e5083..8a8459938e 100644
--- a/tools/xm-test/tests/block-list/02_block-list_attachbd_pos.py
+++ b/tools/xm-test/tests/block-list/02_block-list_attachbd_pos.py
@@ -8,8 +8,8 @@
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-list not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-list not supported for HVM domains")
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/block-list/03_block-list_anotherbd_pos.py b/tools/xm-test/tests/block-list/03_block-list_anotherbd_pos.py
index f873d87025..26e42097a4 100644
--- a/tools/xm-test/tests/block-list/03_block-list_anotherbd_pos.py
+++ b/tools/xm-test/tests/block-list/03_block-list_anotherbd_pos.py
@@ -8,8 +8,8 @@
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-list not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-list not supported for HVM domains")
config = {"disk":"phy:/dev/ram0,hda1,w"}
domain = XmTestDomain(extraConfig=config)
diff --git a/tools/xm-test/tests/block-list/04_block-list_nodb_pos.py b/tools/xm-test/tests/block-list/04_block-list_nodb_pos.py
index 7ff1a2ddf7..ae5e4f51ac 100644
--- a/tools/xm-test/tests/block-list/04_block-list_nodb_pos.py
+++ b/tools/xm-test/tests/block-list/04_block-list_nodb_pos.py
@@ -8,8 +8,8 @@
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-list not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-list not supported for HVM domains")
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/block-list/06_block-list_checkremove_pos.py b/tools/xm-test/tests/block-list/06_block-list_checkremove_pos.py
index e342262659..ccdbe5c816 100644
--- a/tools/xm-test/tests/block-list/06_block-list_checkremove_pos.py
+++ b/tools/xm-test/tests/block-list/06_block-list_checkremove_pos.py
@@ -5,8 +5,8 @@
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Block-list not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Block-list not supported for HVM domains")
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/create/14_create_blockroot_pos.py b/tools/xm-test/tests/create/14_create_blockroot_pos.py
index c80a92ca8c..ef52ffc48a 100644
--- a/tools/xm-test/tests/create/14_create_blockroot_pos.py
+++ b/tools/xm-test/tests/create/14_create_blockroot_pos.py
@@ -17,7 +17,7 @@ rdpath = getRdPath()
# if verbose:
# print "Using %s" % output
-if ENABLE_VMX_SUPPORT:
+if ENABLE_HVM_SUPPORT:
domain = XmTestDomain(name="14_create_blockroot")
else:
config = {"memory" : "64",
diff --git a/tools/xm-test/tests/memmax/01_memmax_badparm_neg.py b/tools/xm-test/tests/memmax/01_memmax_badparm_neg.py
index e13fca8415..a2d37ec79a 100644
--- a/tools/xm-test/tests/memmax/01_memmax_badparm_neg.py
+++ b/tools/xm-test/tests/memmax/01_memmax_badparm_neg.py
@@ -8,8 +8,8 @@ import re
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Mem-max not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Mem-max not supported for HVM domains")
status, output = traceCommand("xm mem-max")
eyecatcher = "Error:"
diff --git a/tools/xm-test/tests/memset/01_memset_basic_pos.py b/tools/xm-test/tests/memset/01_memset_basic_pos.py
index 5ed6406e8d..58e65966ac 100644
--- a/tools/xm-test/tests/memset/01_memset_basic_pos.py
+++ b/tools/xm-test/tests/memset/01_memset_basic_pos.py
@@ -20,8 +20,8 @@ import re
import time
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Mem-set not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Mem-set not supported for HVM domains")
# Create a domain (default XmTestDomain, with our ramdisk)
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/memset/02_memset_badparm_neg.py b/tools/xm-test/tests/memset/02_memset_badparm_neg.py
index a2f60c86d2..9e8fbafbef 100644
--- a/tools/xm-test/tests/memset/02_memset_badparm_neg.py
+++ b/tools/xm-test/tests/memset/02_memset_badparm_neg.py
@@ -18,8 +18,8 @@ import re
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Mem-set not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Mem-set not supported for HVM domains")
# destroy no parm input - negative test
status, output = traceCommand("xm mem-set")
diff --git a/tools/xm-test/tests/memset/03_memset_random_pos.py b/tools/xm-test/tests/memset/03_memset_random_pos.py
index c4f3c47370..3f382938ff 100644
--- a/tools/xm-test/tests/memset/03_memset_random_pos.py
+++ b/tools/xm-test/tests/memset/03_memset_random_pos.py
@@ -8,8 +8,8 @@ import re
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Mem-set not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Mem-set not supported for HVM domains")
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/memset/04_memset_smallmem_pos.py b/tools/xm-test/tests/memset/04_memset_smallmem_pos.py
index d06571bd05..fd4c027949 100644
--- a/tools/xm-test/tests/memset/04_memset_smallmem_pos.py
+++ b/tools/xm-test/tests/memset/04_memset_smallmem_pos.py
@@ -5,8 +5,8 @@
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Mem-set not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Mem-set not supported for HVM domains")
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/migrate/01_migrate_localhost_pos.py b/tools/xm-test/tests/migrate/01_migrate_localhost_pos.py
index 8f86bdd128..a172efef61 100644
--- a/tools/xm-test/tests/migrate/01_migrate_localhost_pos.py
+++ b/tools/xm-test/tests/migrate/01_migrate_localhost_pos.py
@@ -17,8 +17,8 @@ import commands
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Migrate currently not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Migrate currently not supported for HVM domains")
# Create a domain (default XmTestDomain, with our ramdisk)
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/network-attach/01_network_attach_pos.py b/tools/xm-test/tests/network-attach/01_network_attach_pos.py
index eb692ab876..8d4b635a54 100644
--- a/tools/xm-test/tests/network-attach/01_network_attach_pos.py
+++ b/tools/xm-test/tests/network-attach/01_network_attach_pos.py
@@ -8,8 +8,8 @@ import sys
from XmTestLib import *
from network_utils import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Network-attach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Network-attach not supported for HVM domains")
# Create a domain (default XmTestDomain, with our ramdisk)
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/network-attach/02_network_attach_detach_pos.py b/tools/xm-test/tests/network-attach/02_network_attach_detach_pos.py
index 08563eb239..5b50714b9d 100644
--- a/tools/xm-test/tests/network-attach/02_network_attach_detach_pos.py
+++ b/tools/xm-test/tests/network-attach/02_network_attach_detach_pos.py
@@ -10,8 +10,8 @@ import time
from XmTestLib import *
from network_utils import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Network-attach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Network-attach not supported for HVM domains")
# Create a domain (default XmTestDomain, with our ramdisk)
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/network-attach/03_network_attach_detach_multiple_pos.py b/tools/xm-test/tests/network-attach/03_network_attach_detach_multiple_pos.py
index d169119d2c..76da5891a3 100644
--- a/tools/xm-test/tests/network-attach/03_network_attach_detach_multiple_pos.py
+++ b/tools/xm-test/tests/network-attach/03_network_attach_detach_multiple_pos.py
@@ -10,8 +10,8 @@ import time
from XmTestLib import *
from network_utils import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Network-attach not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Network-attach not supported for HVM domains")
# Create a domain (default XmTestDomain, with our ramdisk)
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/restore/01_restore_basic_pos.py b/tools/xm-test/tests/restore/01_restore_basic_pos.py
index 34c93e8cf8..9ea1ca4c53 100644
--- a/tools/xm-test/tests/restore/01_restore_basic_pos.py
+++ b/tools/xm-test/tests/restore/01_restore_basic_pos.py
@@ -12,8 +12,8 @@ import time
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Restore currently not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Restore currently not supported for HVM domains")
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/restore/02_restore_badparm_neg.py b/tools/xm-test/tests/restore/02_restore_badparm_neg.py
index c66ed79113..e5f2c90df1 100644
--- a/tools/xm-test/tests/restore/02_restore_badparm_neg.py
+++ b/tools/xm-test/tests/restore/02_restore_badparm_neg.py
@@ -12,8 +12,8 @@ import re
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Restore currently not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Restore currently not supported for HVM domains")
status, output = traceCommand("xm restore -x")
eyecatcher1 = "Error:"
diff --git a/tools/xm-test/tests/restore/03_restore_badfilename_neg.py b/tools/xm-test/tests/restore/03_restore_badfilename_neg.py
index ba6e7e2f30..d45c87b08f 100644
--- a/tools/xm-test/tests/restore/03_restore_badfilename_neg.py
+++ b/tools/xm-test/tests/restore/03_restore_badfilename_neg.py
@@ -12,8 +12,8 @@ import re
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Restore currently not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Restore currently not supported for HVM domains")
status, output = traceCommand("xm restore /tmp/NON_EXIST")
eyecatcher1 = "Error:"
diff --git a/tools/xm-test/tests/restore/04_restore_withdevices_pos.py b/tools/xm-test/tests/restore/04_restore_withdevices_pos.py
index 74c6145c03..b3dfe73121 100644
--- a/tools/xm-test/tests/restore/04_restore_withdevices_pos.py
+++ b/tools/xm-test/tests/restore/04_restore_withdevices_pos.py
@@ -7,8 +7,8 @@ from XmTestLib import *
import re
-if ENABLE_VMX_SUPPORT:
- SKIP("Restore currently not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Restore currently not supported for HVM domains")
config = {"disk": ["phy:/dev/ram0,hda1,w", "phy:/dev/ram1,hdb2,w"],
"vif": ['', '']}
diff --git a/tools/xm-test/tests/save/01_save_basic_pos.py b/tools/xm-test/tests/save/01_save_basic_pos.py
index 27e68a5deb..b5a87ad91d 100644
--- a/tools/xm-test/tests/save/01_save_basic_pos.py
+++ b/tools/xm-test/tests/save/01_save_basic_pos.py
@@ -7,8 +7,8 @@ import time
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Save currently not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Save currently not supported for HVM domains")
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/save/02_save_badparm_neg.py b/tools/xm-test/tests/save/02_save_badparm_neg.py
index c50dbe9013..2393c46381 100644
--- a/tools/xm-test/tests/save/02_save_badparm_neg.py
+++ b/tools/xm-test/tests/save/02_save_badparm_neg.py
@@ -12,8 +12,8 @@ import re
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Save currently not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Save currently not supported for HVM domains")
status, output = traceCommand("xm save -x")
eyecatcher1 = "Error:"
diff --git a/tools/xm-test/tests/save/03_save_bogusfile_neg.py b/tools/xm-test/tests/save/03_save_bogusfile_neg.py
index 0115ee5f3b..2612f74b1b 100644
--- a/tools/xm-test/tests/save/03_save_bogusfile_neg.py
+++ b/tools/xm-test/tests/save/03_save_bogusfile_neg.py
@@ -10,8 +10,8 @@ import time
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Save currently not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Save currently not supported for HVM domains")
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/sysrq/01_sysrq_basic_neg.py b/tools/xm-test/tests/sysrq/01_sysrq_basic_neg.py
index 9d213e944a..cc42d47265 100644
--- a/tools/xm-test/tests/sysrq/01_sysrq_basic_neg.py
+++ b/tools/xm-test/tests/sysrq/01_sysrq_basic_neg.py
@@ -9,8 +9,8 @@ import re
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Sysrq not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Sysrq not supported for HVM domains")
status, output = traceCommand("xm sysrq does_not_exist s");
diff --git a/tools/xm-test/tests/sysrq/02_sysrq_sync_pos.py b/tools/xm-test/tests/sysrq/02_sysrq_sync_pos.py
index 0b805fd7b6..3aea592a0e 100644
--- a/tools/xm-test/tests/sysrq/02_sysrq_sync_pos.py
+++ b/tools/xm-test/tests/sysrq/02_sysrq_sync_pos.py
@@ -9,8 +9,8 @@ import time
from XmTestLib import *
-if ENABLE_VMX_SUPPORT:
- SKIP("Sysrq not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Sysrq not supported for HVM domains")
# Create a domain (default XmTestDomain, with our ramdisk)
domain = XmTestDomain()
diff --git a/tools/xm-test/tests/sysrq/03_sysrq_withreboot_pos.py b/tools/xm-test/tests/sysrq/03_sysrq_withreboot_pos.py
index b69e5617b0..71cc9f1fb4 100644
--- a/tools/xm-test/tests/sysrq/03_sysrq_withreboot_pos.py
+++ b/tools/xm-test/tests/sysrq/03_sysrq_withreboot_pos.py
@@ -7,8 +7,8 @@ from XmTestLib import *
import time
-if ENABLE_VMX_SUPPORT:
- SKIP("Sysrq not supported for VMX domains")
+if ENABLE_HVM_SUPPORT:
+ SKIP("Sysrq not supported for HVM domains")
domain = XmTestDomain()