mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 02:30:03 +01:00
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.
371 lines
7.1 KiB
Bash
371 lines
7.1 KiB
Bash
#!/bin/bash
|
|
###############################################################################
|
|
##
|
|
## Copyright (C) International Business Machines Corp., 2005
|
|
## Author(s): Daniel Stekloff <dsteklof@us.ibm.com>
|
|
##
|
|
## This program is free software; you can redistribute it and/or modify
|
|
## it under the terms of the GNU General Public License as published by
|
|
## the Free Software Foundation; under version 2 of the License.
|
|
##
|
|
## This program is distributed in the hope that 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
|
|
##
|
|
###############################################################################
|
|
function cleanup()
|
|
{
|
|
umount "$MNT"
|
|
rm -Rf "$MNT";
|
|
if [ "$LOOPD" ]; then
|
|
losetup -d $LOOPD
|
|
fi
|
|
if [ "$LOOPP" ]; then
|
|
losetup -d $LOOPP
|
|
fi
|
|
if [ -e "$IMAGE" ]; then
|
|
rm -f "$IMAGE"
|
|
fi
|
|
if [ -e "$LCONF" ]; then
|
|
rm -f "$LCONF"
|
|
fi
|
|
}
|
|
|
|
function die()
|
|
{
|
|
cleanup
|
|
echo "$@"
|
|
exit 1
|
|
}
|
|
|
|
function usage()
|
|
{
|
|
cat << EOU
|
|
Command creates a hvm guest disk image for xm-test.
|
|
|
|
Usage: $0 [OPTIONS]
|
|
|
|
OPTIONS:
|
|
-d|--dvrdir <name> Directory where to fine network driver
|
|
to use for disk image.
|
|
-i|--image <name> Image name to create.
|
|
-k|--kernel <name> Kernel name to use for disk image.
|
|
-r|--rootfs <image> Rootfs image to use for disk image.
|
|
|
|
This script currently only supports the pcnet32 driver for network
|
|
tests. If a dvrdir isn't added on the command-line, it will look
|
|
in /lib/modules/ directory relating to the supplied kernel. If the
|
|
network driver is built into the kernel, you can specify the key word
|
|
"builtin" with the -d option and the script will continue.
|
|
|
|
Note: The pcnet32 driver relies upon mii.ko. This script will look
|
|
for that module in the same location as the pcnet32 driver, either
|
|
for the kernel or the location used with the -d option.
|
|
|
|
EOU
|
|
}
|
|
|
|
function check_dependencies()
|
|
{
|
|
which lilo > /dev/null 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
die "$PROGNAME requires lilo version 22.7+ to be installed."
|
|
fi
|
|
local pass="$( lilo -V | cut -f3 -d " " | awk -F "." '
|
|
{
|
|
if ($1 >= 22 && $2 >= 7)
|
|
print "true"
|
|
else
|
|
print "false"
|
|
}')"
|
|
if [ $pass = "false" ]; then
|
|
die "$PROGNAME requires lilo version 22.7+ to be installed."
|
|
fi
|
|
}
|
|
|
|
function initialize_globals()
|
|
{
|
|
PROGNAME="create_disk_image"
|
|
IMAGE="disk.img"
|
|
KERNEL=""
|
|
DRVDIR=""
|
|
LCONF="lilo.conf"
|
|
LOOPD="" # Loop device for entire disk image
|
|
LOOPP="" # Loop device for ext partition
|
|
ROOTFS=""
|
|
MNT="/tmp/$PROGNAME-mnt"
|
|
SIZE=8192
|
|
SECTORS=32
|
|
HEADS=8
|
|
CYLINDERS=$(($SIZE/$SECTORS/$HEADS*2))
|
|
BSIZE=$(($SIZE-$SECTORS))
|
|
OFFSET=$(($SECTORS*512))
|
|
}
|
|
|
|
function get_options()
|
|
{
|
|
while [ $# -gt 0 ]; do
|
|
case $1 in
|
|
-d|--drvdir)
|
|
shift
|
|
DRVDIR=${1}
|
|
shift
|
|
;;
|
|
-i|--image)
|
|
shift
|
|
IMAGE=${1}
|
|
shift
|
|
;;
|
|
-k|--kernel)
|
|
shift
|
|
KERNEL=${1}
|
|
shift
|
|
;;
|
|
-r|--rootfs)
|
|
shift
|
|
ROOTFS=${1}
|
|
shift
|
|
;;
|
|
*)
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
function get_loopd()
|
|
{
|
|
local loop
|
|
|
|
for i in `seq 0 7`; do
|
|
losetup /dev/loop$i > /dev/null 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
# found one
|
|
echo $i
|
|
return 0
|
|
fi
|
|
done
|
|
die "No free loopback devices."
|
|
}
|
|
|
|
function losetup_image()
|
|
{
|
|
local loop=$1
|
|
shift
|
|
|
|
# If offset, then associate with it
|
|
if [ $# -eq 1 ]; then
|
|
losetup -o $1 $loop $IMAGE
|
|
else
|
|
losetup $loop $IMAGE
|
|
fi
|
|
|
|
if [ $? -ne 0 ]; then
|
|
die "Failed to losetup $IMAGE to $loop."
|
|
fi
|
|
|
|
echo "Associated $IMAGE with $loop"
|
|
}
|
|
|
|
function create_disk_image()
|
|
{
|
|
dd bs=1024 count=$SIZE of=$IMAGE if=/dev/zero
|
|
|
|
fdisk -b 512 -C $CYLINDERS -H $HEADS -S $SECTORS "$IMAGE" > /dev/null 2>&1 << EOF
|
|
n
|
|
p
|
|
1
|
|
1
|
|
|
|
a
|
|
1
|
|
w
|
|
EOF
|
|
}
|
|
|
|
function makefs_image()
|
|
{
|
|
mke2fs -N 24 -b 1024 $LOOPP $BSIZE
|
|
|
|
if [ $? -ne 0 ]; then
|
|
die "mke2fs $LOOPP failed."
|
|
fi
|
|
}
|
|
|
|
function dd_rootfs_to_image()
|
|
{
|
|
if [ ! "$ROOTFS" ]; then
|
|
die "Must specify rootfs image to use."
|
|
fi
|
|
|
|
dd if="$ROOTFS" of="$LOOPP" > /dev/null 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
die "Failed to dd $ROOTFS to $LOOPP."
|
|
fi
|
|
}
|
|
|
|
function get_kernel()
|
|
{
|
|
# look in /boot for an existing kernel
|
|
local -a kernels=( `ls /boot | grep vmlinuz` )
|
|
local k
|
|
|
|
for k in ${kernels[@]}; do
|
|
case "$k" in
|
|
*xen*)
|
|
continue
|
|
;;
|
|
*)
|
|
KERNEL="/boot/$k"
|
|
echo "Using kernel $KERNEL"
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
function copy_kernel_to_image()
|
|
{
|
|
if [ ! "$KERNEL" ]; then
|
|
get_kernel || die "Couldn't find a kernel to use."
|
|
fi
|
|
|
|
mkdir "$MNT/boot"
|
|
|
|
cp "$KERNEL" "$MNT/boot"
|
|
}
|
|
|
|
function copy_netdriver_to_image()
|
|
{
|
|
local kernel=`basename $KERNEL`
|
|
local kversion=$( echo $kernel | sed 's/^vmlinuz-//' )
|
|
local fdir="/lib/modules/$kversion/kernel/drivers/net"
|
|
|
|
mkdir "$MNT/lib/modules"
|
|
if [ -e "$DRVDIR" ]; then
|
|
if [ -e "$DRVDIR/pcnet32.ko" ]; then
|
|
cp $DRVDIR/mii.ko $MNT/lib/modules
|
|
cp $DRVDIR/pcnet32.ko $MNT/lib/modules
|
|
else
|
|
die "Failed to find pcnet32.ko at $DRVDIR."
|
|
fi
|
|
elif [ -e "$fdir/pcnet32.ko" ]; then
|
|
cp $fdir/mii.ko $MNT/lib/modules
|
|
cp $fdir/pcnet32.ko $MNT/lib/modules
|
|
else
|
|
die "Xm-test requires the pcnet32 driver to run."
|
|
fi
|
|
|
|
# Make sure that modules will be installed
|
|
if [ -e "$MNT/etc/init.d/rcS" ]; then
|
|
echo "insmod /lib/modules/mii.ko" >> $MNT/etc/init.d/rcS
|
|
echo "insmod /lib/modules/pcnet32.ko" >> $MNT/etc/init.d/rcS
|
|
else
|
|
die "Failed to add insmod command to rcS file on image."
|
|
fi
|
|
}
|
|
|
|
function lilo_image()
|
|
{
|
|
local kernel=`basename $KERNEL`
|
|
|
|
(
|
|
cat <<EOC
|
|
boot=$LOOPD
|
|
delay=10
|
|
geometric
|
|
map=$MNT/boot/map
|
|
disk=$LOOPD
|
|
bios=0x80
|
|
sectors=$SECTORS
|
|
heads=$HEADS
|
|
cylinders=$CYLINDERS
|
|
partition=$LOOPP
|
|
start=$SECTORS
|
|
image=$MNT/boot/$kernel
|
|
append="root=0301 console=tty0 console=ttyS0"
|
|
# append="root=0301"
|
|
label=Linux
|
|
read-only
|
|
EOC
|
|
) > "/$MNT/boot/$LCONF"
|
|
}
|
|
|
|
function install_lilo()
|
|
{
|
|
lilo -C "$MNT/boot/$LCONF"
|
|
if [ $? -ne 0 ]; then
|
|
die "Failed to install $MNT/boot/$LCONF."
|
|
fi
|
|
}
|
|
|
|
function add_getty_to_inittab()
|
|
{
|
|
local itab=$MNT/etc/inittab
|
|
|
|
if [ -e "$itab" ]; then
|
|
echo "# Start getty on serial line" >> $itab
|
|
echo "S0:12345:respawn:/sbin/getty ttyS0" >> $itab
|
|
fi
|
|
}
|
|
|
|
|
|
# Main starts here
|
|
initialize_globals
|
|
check_dependencies
|
|
|
|
get_options "$@"
|
|
|
|
create_disk_image
|
|
|
|
# Get the first free loop device
|
|
ldev=$(get_loopd)
|
|
LOOPD="/dev/loop$ldev"
|
|
losetup_image $LOOPD
|
|
|
|
# Now associate where the partition will go
|
|
ldev=$(get_loopd)
|
|
LOOPP="/dev/loop$ldev"
|
|
losetup_image $LOOPP $OFFSET
|
|
|
|
makefs_image
|
|
|
|
dd_rootfs_to_image
|
|
|
|
if [ -e "$MNT" ]; then
|
|
rm -Rf "$MNT"
|
|
fi
|
|
|
|
mkdir "$MNT";
|
|
if [ $? -ne 0 ]; then
|
|
die "Failed to create temporary mount point $MNT."
|
|
fi
|
|
|
|
mount "$LOOPP" "$MNT";
|
|
if [ $? -ne 0 ]; then
|
|
die "Failed to mount $LOOPP on $MNT."
|
|
fi
|
|
|
|
copy_kernel_to_image
|
|
if [ ! "$DRVDIR" = "builtin" ]; then
|
|
copy_netdriver_to_image
|
|
fi
|
|
#add_getty_to_inittab
|
|
|
|
lilo_image
|
|
install_lilo
|
|
|
|
umount "$MNT"
|
|
rm -Rf "$MNT";
|
|
|
|
losetup -d $LOOPD
|
|
losetup -d $LOOPP
|
|
|
|
exit 0
|