# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID f7b43e5c42b981fa16ad9bfc5339ff8496dd2288
# Parent 2db50529223e20a3d48d96e8cbfe3eaf7998b58c
# Parent d71e72d8532cfdf5896f560d98d45262841c8b83
merge with xen-unstable.hg
---
patches/linux-2.6.16.13/net-gso.patch | 2516
---
tools/examples/vtpm-addtodb | 10
tools/ioemu/cpu.h | 76
tools/ioemu/create_keysym_header.sh | 77
tools/ioemu/hw/acpi.c | 178
tools/ioemu/hw/i8259_stub.c | 81
tools/ioemu/hw/m48t08.c | 391
tools/ioemu/hw/m48t08.h | 12
tools/ioemu/hw/magic-load.c | 324
tools/ioemu/hw/pcnet.c | 1154
-
tools/ioemu/hw/pcnet.h | 537
tools/ioemu/hw/port-e9.c | 47
tools/ioemu/hw/sched.c | 268
tools/ioemu/hw/timer.c | 97
tools/ioemu/ia64_intrinsic.h | 276
tools/ioemu/keyboard_rdesktop.c | 165
tools/ioemu/keymaps/convert-map | 63
tools/ioemu/main.c | 250
tools/ioemu/path.c | 147
tools/ioemu/target-i386-dm/Makefile | 406
tools/ioemu/x86_32.ld | 140
tools/vtpm/tpm_emulator-0.3-x86_64.patch | 657
-
.hgignore | 51
Config.mk | 4
buildconfigs/Rules.mk | 14
buildconfigs/conf.linux-native/00_xen_to_native | 84
buildconfigs/create_config.sh | 50
buildconfigs/linux-defconfig_xen0_ia64 | 1
buildconfigs/linux-defconfig_xen0_x86_32 | 1
buildconfigs/linux-defconfig_xen0_x86_64 | 1
buildconfigs/linux-defconfig_xen_ia64 | 1
buildconfigs/linux-defconfig_xen_x86_32 | 1
buildconfigs/linux-defconfig_xen_x86_64 | 1
buildconfigs/mk.linux-2.6-native | 4
buildconfigs/mk.linux-2.6-xen | 17
config/ia64.mk | 1
config/powerpc64.mk | 4
config/x86_32.mk | 2
config/x86_64.mk | 2
extras/mini-os/mm.c | 2
linux-2.6-xen-sparse/arch/i386/oprofile/xenoprof.c | 23
linux-2.6-xen-sparse/drivers/xen/Kconfig | 104
linux-2.6-xen-sparse/drivers/xen/Makefile | 1
linux-2.6-xen-sparse/drivers/xen/blktap/Makefile | 3
linux-2.6-xen-sparse/drivers/xen/blktap/blktap.c | 1439
++
linux-2.6-xen-sparse/drivers/xen/blktap/common.h | 120
linux-2.6-xen-sparse/drivers/xen/blktap/interface.c | 165
linux-2.6-xen-sparse/drivers/xen/blktap/xenbus.c | 354
linux-2.6-xen-sparse/drivers/xen/console/console.c | 33
linux-2.6-xen-sparse/drivers/xen/tpmback/tpmback.c | 4
linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/dma-mapping.h | 2
linux-2.6-xen-sparse/include/linux/skbuff.h | 5
linux-2.6-xen-sparse/net/core/dev.c | 36
patches/linux-2.6.16.13/blktap-aio-16_03_06.patch | 164
patches/linux-2.6.16.13/net-csum.patch | 15
patches/linux-2.6.16.13/net-gso-0-base.patch | 1974
+++
patches/linux-2.6.16.13/net-gso-1-check-dodgy.patch | 16
patches/linux-2.6.16.13/net-gso-2-checksum-fix.patch | 311
patches/linux-2.6.16.13/net-gso-3-fix-errorcheck.patch | 13
patches/linux-2.6.16.13/xenoprof-generic.patch | 144
tools/Makefile | 15
tools/blktap/Makefile | 28
tools/blktap/README | 122
tools/blktap/drivers/Makefile | 76
tools/blktap/drivers/aes.c | 1319
++
tools/blktap/drivers/aes.h | 26
tools/blktap/drivers/blktapctrl.c | 704
+
tools/blktap/drivers/blktapctrl.h | 55
tools/blktap/drivers/block-aio.c | 327
tools/blktap/drivers/block-qcow.c | 1369
++
tools/blktap/drivers/block-ram.c | 296
tools/blktap/drivers/block-sync.c | 242
tools/blktap/drivers/block-vmdk.c | 415
tools/blktap/drivers/bswap.h | 202
tools/blktap/drivers/img2qcow.c | 289
tools/blktap/drivers/qcow-create.c | 80
tools/blktap/drivers/qcow2raw.c | 346
tools/blktap/drivers/tapdisk.c | 674
+
tools/blktap/drivers/tapdisk.h | 211
tools/blktap/lib/Makefile | 68
tools/blktap/lib/blkif.c | 185
tools/blktap/lib/blktaplib.h | 223
tools/blktap/lib/list.h | 55
tools/blktap/lib/xenbus.c | 387
tools/blktap/lib/xs_api.c | 364
tools/blktap/lib/xs_api.h | 50
tools/examples/Makefile | 3
tools/examples/README | 1
tools/examples/blktap | 15
tools/examples/vtpm-common.sh | 48
tools/examples/vtpm-impl | 58
tools/examples/xen-backend.agent | 3
tools/examples/xen-backend.rules | 1
tools/examples/xmexample.hvm | 15
tools/firmware/vmxassist/vmxassist.ld | 3
tools/ioemu/.cvsignore | 29
tools/ioemu/CVS/Entries | 109
tools/ioemu/CVS/Repository | 1
tools/ioemu/CVS/Root | 1
tools/ioemu/CVS/Tag | 1
tools/ioemu/Changelog | 81
tools/ioemu/LICENSE | 12
tools/ioemu/Makefile | 135
tools/ioemu/Makefile.target | 531
tools/ioemu/README | 53
tools/ioemu/README.distrib | 16
tools/ioemu/TODO | 21
tools/ioemu/VERSION | 2
tools/ioemu/a.out.h | 431
tools/ioemu/audio/CVS/Entries | 19
tools/ioemu/audio/CVS/Repository | 1
tools/ioemu/audio/CVS/Root | 1
tools/ioemu/audio/CVS/Tag | 1
tools/ioemu/audio/alsaaudio.c | 981
+
tools/ioemu/audio/audio.c | 2047
++-
tools/ioemu/audio/audio.h | 114
tools/ioemu/audio/audio_int.h | 340
tools/ioemu/audio/audio_template.h | 565
tools/ioemu/audio/coreaudio.c | 564
tools/ioemu/audio/dsound_template.h | 282
tools/ioemu/audio/dsoundaudio.c | 1076
+
tools/ioemu/audio/fmodaudio.c | 683
+
tools/ioemu/audio/mixeng.c | 298
tools/ioemu/audio/mixeng.h | 26
tools/ioemu/audio/mixeng_template.h | 140
tools/ioemu/audio/noaudio.c | 170
tools/ioemu/audio/ossaudio.c | 707
-
tools/ioemu/audio/rate_template.h | 111
tools/ioemu/audio/sdlaudio.c | 423
tools/ioemu/audio/sys-queue.h | 241
tools/ioemu/audio/wavaudio.c | 208
tools/ioemu/block-bochs.c | 224
tools/ioemu/block-cloop.c | 12
tools/ioemu/block-cow.c | 7
tools/ioemu/block-dmg.c | 297
tools/ioemu/block-qcow.c | 53
tools/ioemu/block-vmdk.c | 200
tools/ioemu/block-vpc.c | 242
tools/ioemu/block-vvfat.c | 2807
++++
tools/ioemu/block.c | 272
tools/ioemu/block_int.h | 5
tools/ioemu/cocoa.m | 911
+
tools/ioemu/configure | 673
-
tools/ioemu/console.c | 389
tools/ioemu/cpu-all.h | 503
tools/ioemu/cpu-defs.h | 54
tools/ioemu/cpu-exec.c | 1480
++
tools/ioemu/dis-asm.h | 455
tools/ioemu/disas.c | 413
tools/ioemu/disas.h | 23
tools/ioemu/dyngen-exec.h | 257
tools/ioemu/dyngen-op.h | 9
tools/ioemu/dyngen.c | 2550
+++
tools/ioemu/dyngen.h | 429
tools/ioemu/elf.h | 1160
+
tools/ioemu/elf_ops.h | 205
tools/ioemu/exec-all.h | 251
tools/ioemu/exec.c | 2117
+++
tools/ioemu/fpu/CVS/Entries | 7
tools/ioemu/fpu/CVS/Repository | 1
tools/ioemu/fpu/CVS/Root | 1
tools/ioemu/fpu/CVS/Tag | 1
tools/ioemu/fpu/softfloat-macros.h | 720
+
tools/ioemu/fpu/softfloat-native.c | 363
tools/ioemu/fpu/softfloat-native.h | 359
tools/ioemu/fpu/softfloat-specialize.h | 464
tools/ioemu/fpu/softfloat.c | 5320
++++++++
tools/ioemu/fpu/softfloat.h | 398
tools/ioemu/gdbstub.c | 943
+
tools/ioemu/gdbstub.h | 12
tools/ioemu/hw/CVS/Entries | 72
tools/ioemu/hw/CVS/Repository | 1
tools/ioemu/hw/CVS/Root | 1
tools/ioemu/hw/CVS/Tag | 1
tools/ioemu/hw/adb.c | 36
tools/ioemu/hw/adlib.c | 390
tools/ioemu/hw/apic.c | 1042
+
tools/ioemu/hw/arm_boot.c | 105
tools/ioemu/hw/arm_pic.c | 73
tools/ioemu/hw/arm_pic.h | 27
tools/ioemu/hw/arm_timer.c | 383
tools/ioemu/hw/cirrus_vga.c | 226
tools/ioemu/hw/cuda.c | 104
tools/ioemu/hw/dma.c | 4
tools/ioemu/hw/es1370.c | 1062
+
tools/ioemu/hw/esp.c | 747
+
tools/ioemu/hw/fdc.c | 58
tools/ioemu/hw/heathrow_pic.c | 168
tools/ioemu/hw/i8254.c | 63
tools/ioemu/hw/i8259.c | 212
tools/ioemu/hw/ide.c | 617
tools/ioemu/hw/integratorcp.c | 546
tools/ioemu/hw/iommu.c | 208
tools/ioemu/hw/lance.c | 292
tools/ioemu/hw/m48t59.c | 204
tools/ioemu/hw/m48t59.h | 10
tools/ioemu/hw/mips_r4k.c | 295
tools/ioemu/hw/ne2000.c | 219
tools/ioemu/hw/openpic.c | 22
tools/ioemu/hw/parallel.c | 183
tools/ioemu/hw/pc.c | 506
tools/ioemu/hw/pci.c | 721
-
tools/ioemu/hw/pckbd.c | 628
tools/ioemu/hw/pcspk.c | 147
tools/ioemu/hw/piix4acpi.c | 27
tools/ioemu/hw/pl011.c | 251
tools/ioemu/hw/pl050.c | 127
tools/ioemu/hw/pl080.c | 328
tools/ioemu/hw/pl110.c | 420
tools/ioemu/hw/pl110_template.h | 252
tools/ioemu/hw/pl190.c | 252
tools/ioemu/hw/ppc.c | 84
tools/ioemu/hw/ppc_chrp.c | 473
tools/ioemu/hw/ppc_prep.c | 216
tools/ioemu/hw/ps2.c | 566
tools/ioemu/hw/rtl8139.c | 2875
++++
tools/ioemu/hw/sb16.c | 333
tools/ioemu/hw/serial.c | 228
tools/ioemu/hw/sh7750.c | 836
+
tools/ioemu/hw/sh7750_regnames.c | 128
tools/ioemu/hw/sh7750_regnames.h | 6
tools/ioemu/hw/sh7750_regs.h | 1623
++
tools/ioemu/hw/shix.c | 111
tools/ioemu/hw/slavio_intctl.c | 400
tools/ioemu/hw/slavio_misc.c | 244
tools/ioemu/hw/slavio_serial.c | 545
tools/ioemu/hw/slavio_timer.c | 288
tools/ioemu/hw/smc91c111.c | 714
+
tools/ioemu/hw/sun4m.c | 339
tools/ioemu/hw/sun4u.c | 376
tools/ioemu/hw/tc58128.c | 181
tools/ioemu/hw/tcx.c | 407
tools/ioemu/hw/versatilepb.c | 271
tools/ioemu/hw/vga.c | 274
tools/ioemu/hw/vga_int.h | 2
tools/ioemu/i386-dis.c | 4143
++++++
tools/ioemu/i386-vl.ld | 140
tools/ioemu/i386.ld | 140
tools/ioemu/ia64.ld | 211
tools/ioemu/keymaps.c | 145
tools/ioemu/keymaps/CVS/Entries | 36
tools/ioemu/keymaps/CVS/Repository | 1
tools/ioemu/keymaps/CVS/Root | 1
tools/ioemu/keymaps/CVS/Tag | 1
tools/ioemu/kqemu.c | 900
+
tools/ioemu/kqemu.h | 132
tools/ioemu/loader.c | 235
tools/ioemu/monitor.c | 1773
++
tools/ioemu/osdep.c | 129
tools/ioemu/osdep.h | 3
tools/ioemu/patches/acpi-poweroff-support | 26
tools/ioemu/patches/acpi-support | 58
tools/ioemu/patches/acpi-timer-support | 43
tools/ioemu/patches/domain-destroy | 24
tools/ioemu/patches/domain-reset | 45
tools/ioemu/patches/domain-timeoffset | 138
tools/ioemu/patches/hypervisor-pit | 48
tools/ioemu/patches/ide-hd-multithread | 75
tools/ioemu/patches/qemu-64bit | 80
tools/ioemu/patches/qemu-bugfixes | 19
tools/ioemu/patches/qemu-cleanup | 66
tools/ioemu/patches/qemu-dm | 399
tools/ioemu/patches/qemu-hvm-banner | 19
tools/ioemu/patches/qemu-infrastructure | 9
tools/ioemu/patches/qemu-logging | 57
tools/ioemu/patches/qemu-no-apic | 42
tools/ioemu/patches/qemu-nobios | 48
tools/ioemu/patches/qemu-smp | 38
tools/ioemu/patches/qemu-target-i386-dm | 115
tools/ioemu/patches/qemu-timer | 37
tools/ioemu/patches/sdl-mouse-invisible-wall | 17
tools/ioemu/patches/serial-non-block | 23
tools/ioemu/patches/series | 33
tools/ioemu/patches/shadow-vram | 32
tools/ioemu/patches/shared-vram | 123
tools/ioemu/patches/support-xm-console | 37
tools/ioemu/patches/vnc-cleanup | 63
tools/ioemu/patches/vnc-fixes | 321
tools/ioemu/patches/vnc-start-vncviewer | 69
tools/ioemu/patches/xen-build | 179
tools/ioemu/patches/xen-domain-name | 64
tools/ioemu/patches/xen-domid | 37
tools/ioemu/patches/xen-mm | 63
tools/ioemu/patches/xen-network | 52
tools/ioemu/pc-bios/CVS/Entries | 15
tools/ioemu/pc-bios/CVS/Repository | 1
tools/ioemu/pc-bios/CVS/Root | 1
tools/ioemu/pc-bios/CVS/Tag | 1
tools/ioemu/pc-bios/Makefile | 24
tools/ioemu/pc-bios/README | 17
tools/ioemu/pc-bios/bios.diff | 87
tools/ioemu/pc-bios/linux_boot.S | 29
tools/ioemu/pc-bios/ohw.diff | 1153
+
tools/ioemu/pc-bios/proll.patch | 939
+
tools/ioemu/pc-bios/vgabios.diff | 318
tools/ioemu/qemu-binfmt-conf.sh | 15
tools/ioemu/qemu-doc.texi | 1748
++
tools/ioemu/qemu-img.c | 17
tools/ioemu/qemu-img.texi | 126
tools/ioemu/qemu-tech.texi | 595
tools/ioemu/qemu_socket.h | 30
tools/ioemu/readline.c | 1
tools/ioemu/sdl.c | 239
tools/ioemu/sdl_keysym.h | 278
tools/ioemu/softmmu_exec.h | 65
tools/ioemu/softmmu_header.h | 385
tools/ioemu/softmmu_template.h | 313
tools/ioemu/tap-win32.c | 680
+
tools/ioemu/target-i386-dm/cpu.h | 86
tools/ioemu/target-i386-dm/exec-dm.c | 512
tools/ioemu/target-i386-dm/helper2.c | 270
tools/ioemu/target-i386-dm/i8259-dm.c | 107
tools/ioemu/target-i386-dm/qemu-ifup | 2
tools/ioemu/target-i386/CVS/Entries | 13
tools/ioemu/target-i386/CVS/Repository | 1
tools/ioemu/target-i386/CVS/Root | 1
tools/ioemu/target-i386/CVS/Tag | 1
tools/ioemu/target-i386/cpu.h | 653
+
tools/ioemu/target-i386/exec.h | 572
tools/ioemu/target-i386/helper.c | 3505
+++++
tools/ioemu/target-i386/helper2.c | 1028
+
tools/ioemu/target-i386/op.c | 2437
+++
tools/ioemu/target-i386/opreg_template.h | 190
tools/ioemu/target-i386/ops_mem.h | 156
tools/ioemu/target-i386/ops_sse.h | 1374
++
tools/ioemu/target-i386/ops_template.h | 597
tools/ioemu/target-i386/ops_template_mem.h | 483
tools/ioemu/target-i386/translate-copy.c | 1323
++
tools/ioemu/target-i386/translate.c | 6468
++++++++++
tools/ioemu/tests/.cvsignore | 23
tools/ioemu/tests/CVS/Entries | 18
tools/ioemu/tests/CVS/Repository | 1
tools/ioemu/tests/CVS/Root | 1
tools/ioemu/tests/CVS/Tag | 1
tools/ioemu/tests/Makefile | 92
tools/ioemu/tests/hello-arm.c | 113
tools/ioemu/tests/hello-i386.c | 26
tools/ioemu/tests/linux-test.c | 536
tools/ioemu/tests/qruncom.c | 327
tools/ioemu/tests/runcom.c | 195
tools/ioemu/tests/sha1.c | 242
tools/ioemu/tests/test-i386-code16.S | 79
tools/ioemu/tests/test-i386-muldiv.h | 76
tools/ioemu/tests/test-i386-shift.h | 187
tools/ioemu/tests/test-i386-vm86.S | 104
tools/ioemu/tests/test-i386.c | 2611
++++
tools/ioemu/tests/test-i386.h | 152
tools/ioemu/tests/test_path.c | 152
tools/ioemu/tests/testthread.c | 51
tools/ioemu/texi2pod.pl | 428
tools/ioemu/thunk.c | 2
tools/ioemu/translate-all.c | 311
tools/ioemu/translate-op.c | 37
tools/ioemu/vl.c | 4464
+++++-
tools/ioemu/vl.h | 539
tools/ioemu/vnc.c | 1576
+-
tools/ioemu/vnc_keysym.h | 275
tools/ioemu/vnchextile.h | 189
tools/libaio/COPYING | 515
tools/libaio/ChangeLog | 43
tools/libaio/INSTALL | 18
tools/libaio/Makefile | 40
tools/libaio/TODO | 4
tools/libaio/harness/Makefile | 37
tools/libaio/harness/README | 19
tools/libaio/harness/attic/0.t | 9
tools/libaio/harness/attic/1.t | 9
tools/libaio/harness/cases/10.t | 53
tools/libaio/harness/cases/11.t | 39
tools/libaio/harness/cases/12.t | 49
tools/libaio/harness/cases/13.t | 66
tools/libaio/harness/cases/14.t | 90
tools/libaio/harness/cases/2.t | 41
tools/libaio/harness/cases/3.t | 25
tools/libaio/harness/cases/4.t | 72
tools/libaio/harness/cases/5.t | 47
tools/libaio/harness/cases/6.t | 57
tools/libaio/harness/cases/7.t | 27
tools/libaio/harness/cases/8.t | 49
tools/libaio/harness/cases/aio_setup.h | 98
tools/libaio/harness/cases/common-7-8.h | 37
tools/libaio/harness/main.c | 39
tools/libaio/harness/runtests.sh | 19
tools/libaio/libaio.spec | 187
tools/libaio/man/aio.3 | 315
tools/libaio/man/aio_cancel.3 | 137
tools/libaio/man/aio_cancel64.3 | 50
tools/libaio/man/aio_error.3 | 81
tools/libaio/man/aio_error64.3 | 64
tools/libaio/man/aio_fsync.3 | 139
tools/libaio/man/aio_fsync64.3 | 51
tools/libaio/man/aio_init.3 | 96
tools/libaio/man/aio_read.3 | 146
tools/libaio/man/aio_read64.3 | 60
tools/libaio/man/aio_return.3 | 71
tools/libaio/man/aio_return64.3 | 51
tools/libaio/man/aio_suspend.3 | 123
tools/libaio/man/aio_suspend64.3 | 51
tools/libaio/man/aio_write.3 | 176
tools/libaio/man/aio_write64.3 | 61
tools/libaio/man/io.3 | 351
tools/libaio/man/io_cancel.1 | 21
tools/libaio/man/io_cancel.3 | 65
tools/libaio/man/io_destroy.1 | 17
tools/libaio/man/io_fsync.3 | 82
tools/libaio/man/io_getevents.1 | 29
tools/libaio/man/io_getevents.3 | 79
tools/libaio/man/io_prep_fsync.3 | 89
tools/libaio/man/io_prep_pread.3 | 79
tools/libaio/man/io_prep_pwrite.3 | 77
tools/libaio/man/io_queue_init.3 | 63
tools/libaio/man/io_queue_release.3 | 48
tools/libaio/man/io_queue_run.3 | 50
tools/libaio/man/io_queue_wait.3 | 56
tools/libaio/man/io_set_callback.3 | 44
tools/libaio/man/io_setup.1 | 15
tools/libaio/man/io_submit.1 | 109
tools/libaio/man/io_submit.3 | 135
tools/libaio/man/lio_listio.3 | 229
tools/libaio/man/lio_listio64.3 | 39
tools/libaio/src/Makefile | 64
tools/libaio/src/compat-0_1.c | 62
tools/libaio/src/io_cancel.c | 23
tools/libaio/src/io_destroy.c | 23
tools/libaio/src/io_getevents.c | 57
tools/libaio/src/io_queue_init.c | 33
tools/libaio/src/io_queue_release.c | 27
tools/libaio/src/io_queue_run.c | 39
tools/libaio/src/io_queue_wait.c | 31
tools/libaio/src/io_setup.c | 23
tools/libaio/src/io_submit.c | 23
tools/libaio/src/libaio.h | 222
tools/libaio/src/libaio.map | 22
tools/libaio/src/raw_syscall.c | 19
tools/libaio/src/syscall-alpha.h | 209
tools/libaio/src/syscall-i386.h | 72
tools/libaio/src/syscall-ia64.h | 45
tools/libaio/src/syscall-ppc.h | 94
tools/libaio/src/syscall-s390.h | 131
tools/libaio/src/syscall-x86_64.h | 63
tools/libaio/src/syscall.h | 27
tools/libaio/src/vsys_def.h | 24
tools/libxc/Makefile | 3
tools/libxc/xc_load_elf.c | 4
tools/libxc/xc_ppc_linux_build.c | 408
tools/libxc/xenctrl.h | 5
tools/misc/lomount/lomount.c | 430
tools/misc/xend | 7
tools/pygrub/README | 2
tools/python/xen/util/dictio.py | 50
tools/python/xen/util/security.py | 98
tools/python/xen/xend/XendDomain.py | 30
tools/python/xen/xend/XendDomainInfo.py | 14
tools/python/xen/xend/XendLogging.py | 2
tools/python/xen/xend/image.py | 54
tools/python/xen/xend/server/BlktapController.py | 14
tools/python/xen/xend/server/DevController.py | 7
tools/python/xen/xend/server/SrvDaemon.py | 2
tools/python/xen/xend/server/blkif.py | 12
tools/python/xen/xm/addlabel.py | 154
tools/python/xen/xm/create.py | 172
tools/python/xen/xm/dry-run.py | 56
tools/python/xen/xm/getlabel.py | 114
tools/python/xen/xm/main.py | 38
tools/python/xen/xm/resources.py | 56
tools/python/xen/xm/rmlabel.py | 118
tools/vtpm/Makefile | 43
tools/vtpm/tpm_emulator.patch | 1284
-
tools/vtpm/vtpm.patch | 1134
-
tools/vtpm_manager/Makefile | 14
tools/vtpm_manager/Rules.mk | 1
tools/vtpm_manager/crypto/sym_crypto.c | 17
tools/vtpm_manager/manager/dmictl.c | 114
tools/vtpm_manager/manager/migration.c | 307
tools/vtpm_manager/manager/securestorage.c | 85
tools/vtpm_manager/manager/vtpm_ipc.c | 2
tools/vtpm_manager/manager/vtpm_manager.c | 4
tools/vtpm_manager/manager/vtpm_manager.h | 16
tools/vtpm_manager/manager/vtpm_manager_handler.c | 21
tools/vtpm_manager/manager/vtpmd.c | 3
tools/vtpm_manager/manager/vtpmpriv.h | 39
tools/vtpm_manager/manager/vtsp.c | 68
tools/vtpm_manager/manager/vtsp.h | 3
tools/vtpm_manager/migration/Makefile | 39
tools/vtpm_manager/migration/vtpm_manager_if.c | 186
tools/vtpm_manager/migration/vtpm_migrator.h | 104
tools/vtpm_manager/migration/vtpm_migrator_if.c | 219
tools/vtpm_manager/migration/vtpm_migratorc.c | 211
tools/vtpm_manager/migration/vtpm_migratord.c | 202
tools/vtpm_manager/migration/vtpm_migratord_handler.c | 171
tools/vtpm_manager/tcs/tcs.c | 3
tools/vtpm_manager/tcs/transmit.c | 4
tools/vtpm_manager/util/buffer.c | 23
tools/vtpm_manager/util/buffer.h | 4
tools/vtpm_manager/util/log.h | 4
tools/vtpm_manager/util/tcg.h | 18
tools/xenmon/xenbaked.c | 269
tools/xenmon/xenmon.py | 52
tools/xenstore/Makefile | 24
tools/xm-test/configure.ac | 8
tools/xm-test/ramdisk/Makefile.am | 9
tools/xm-test/ramdisk/bin/create_disk_image | 33
tools/xm-test/tests/enforce_dom0_cpus/01_enforce_dom0_cpus_basic_pos.py | 8
xen/Makefile | 2
xen/Rules.mk | 6
xen/arch/powerpc/0opt.c | 28
xen/arch/powerpc/Makefile | 117
xen/arch/powerpc/Rules.mk | 51
xen/arch/powerpc/audit.c | 45
xen/arch/powerpc/bitops.c | 94
xen/arch/powerpc/boot/boot32.S | 75
xen/arch/powerpc/boot/start.S | 51
xen/arch/powerpc/boot_of.c | 1016
+
xen/arch/powerpc/dart.c | 299
xen/arch/powerpc/dart.h | 36
xen/arch/powerpc/dart_u3.c | 108
xen/arch/powerpc/dart_u4.c | 177
xen/arch/powerpc/delay.c | 37
xen/arch/powerpc/dom0_ops.c | 87
xen/arch/powerpc/domain.c | 251
xen/arch/powerpc/domain_build.c | 285
xen/arch/powerpc/elf32.c | 5
xen/arch/powerpc/exceptions.c | 87
xen/arch/powerpc/exceptions.h | 57
xen/arch/powerpc/external.c | 247
xen/arch/powerpc/float.S | 243
xen/arch/powerpc/gdbstub.c | 207
xen/arch/powerpc/hcalls.c | 172
xen/arch/powerpc/htab.c | 69
xen/arch/powerpc/iommu.c | 79
xen/arch/powerpc/iommu.h | 28
xen/arch/powerpc/irq.c | 22
xen/arch/powerpc/mambo.S | 64
xen/arch/powerpc/mm.c | 141
xen/arch/powerpc/mpic.c | 1109
+
xen/arch/powerpc/mpic_init.c | 390
xen/arch/powerpc/mpic_init.h | 29
xen/arch/powerpc/of-devtree.c | 1088
+
xen/arch/powerpc/of-devtree.h | 139
xen/arch/powerpc/of-devwalk.c | 135
xen/arch/powerpc/of_handler/Makefile | 31
xen/arch/powerpc/of_handler/console.c | 233
xen/arch/powerpc/of_handler/control.c | 90
xen/arch/powerpc/of_handler/cpu.c | 82
xen/arch/powerpc/of_handler/devtree.c | 266
xen/arch/powerpc/of_handler/head.S | 152
xen/arch/powerpc/of_handler/io.c | 160
xen/arch/powerpc/of_handler/leap.S | 38
xen/arch/powerpc/of_handler/memcmp.c | 39
xen/arch/powerpc/of_handler/memory.c | 129
xen/arch/powerpc/of_handler/memset.c | 67
xen/arch/powerpc/of_handler/ofh.c | 454
xen/arch/powerpc/of_handler/ofh.h | 164
xen/arch/powerpc/of_handler/papr.S | 97
xen/arch/powerpc/of_handler/papr.h | 69
xen/arch/powerpc/of_handler/services.c | 96
xen/arch/powerpc/of_handler/snprintf.c | 332
xen/arch/powerpc/of_handler/strcmp.c | 36
xen/arch/powerpc/of_handler/strlen.c | 30
xen/arch/powerpc/of_handler/strncmp.c | 39
xen/arch/powerpc/of_handler/strncpy.c | 54
xen/arch/powerpc/of_handler/strnlen.c | 30
xen/arch/powerpc/of_handler/vdevice.c | 74
xen/arch/powerpc/of_handler/xen_hvcall.S | 28
xen/arch/powerpc/of_handler/xencomm.c | 84
xen/arch/powerpc/ofd_fixup.c | 509
xen/arch/powerpc/oftree.h | 33
xen/arch/powerpc/papr/Makefile | 10
xen/arch/powerpc/papr/debug.c | 84
xen/arch/powerpc/papr/tce.c | 84
xen/arch/powerpc/papr/vtce.c | 158
xen/arch/powerpc/papr/vterm.c | 70
xen/arch/powerpc/papr/xlate.c | 499
xen/arch/powerpc/physdev.c | 24
xen/arch/powerpc/powerpc64/Makefile | 11
xen/arch/powerpc/powerpc64/asm-offsets.c | 65
xen/arch/powerpc/powerpc64/domain.c | 143
xen/arch/powerpc/powerpc64/exceptions.S | 519
xen/arch/powerpc/powerpc64/hypercall_table.S | 83
xen/arch/powerpc/powerpc64/io.S | 142
xen/arch/powerpc/powerpc64/memcpy.S | 171
xen/arch/powerpc/powerpc64/ppc970.c | 164
xen/arch/powerpc/powerpc64/prom_call.S | 116
xen/arch/powerpc/powerpc64/string.S | 286
xen/arch/powerpc/powerpc64/traps.c | 50
xen/arch/powerpc/ppc32/prom_call.c | 41
xen/arch/powerpc/rtas.c | 24
xen/arch/powerpc/setup.c | 370
xen/arch/powerpc/smp.c | 60
xen/arch/powerpc/tce.h | 71
xen/arch/powerpc/time.c | 131
xen/arch/powerpc/usercopy.c | 232
xen/arch/powerpc/xen.lds | 226
xen/arch/x86/hvm/i8254.c | 10
xen/arch/x86/hvm/intercept.c | 4
xen/arch/x86/hvm/io.c | 66
xen/arch/x86/hvm/platform.c | 19
xen/arch/x86/hvm/svm/intr.c | 1
xen/arch/x86/hvm/svm/svm.c | 29
xen/arch/x86/hvm/vmx/io.c | 1
xen/arch/x86/hvm/vmx/vmcs.c | 20
xen/arch/x86/hvm/vmx/vmx.c | 29
xen/arch/x86/irq.c | 15
xen/arch/x86/mm.c | 12
xen/arch/x86/shadow.c | 19
xen/arch/x86/traps.c | 87
xen/arch/x86/x86_emulate.c | 19
xen/common/grant_table.c | 6
xen/common/memory.c | 4
xen/common/trace.c | 24
xen/include/asm-powerpc/asm_defns.h | 28
xen/include/asm-powerpc/atomic.h | 211
xen/include/asm-powerpc/bitops.h | 309
xen/include/asm-powerpc/cache.h | 60
xen/include/asm-powerpc/config.h | 77
xen/include/asm-powerpc/current.h | 79
xen/include/asm-powerpc/debugger.h | 44
xen/include/asm-powerpc/delay.h | 28
xen/include/asm-powerpc/desc.h | 25
xen/include/asm-powerpc/div64.h | 33
xen/include/asm-powerpc/domain.h | 114
xen/include/asm-powerpc/event.h | 99
xen/include/asm-powerpc/flushtlb.h | 108
xen/include/asm-powerpc/grant_table.h | 64
xen/include/asm-powerpc/guest_access.h | 99
xen/include/asm-powerpc/hardirq.h | 21
xen/include/asm-powerpc/hcalls.h | 34
xen/include/asm-powerpc/htab.h | 142
xen/include/asm-powerpc/hypercall.h | 26
xen/include/asm-powerpc/init.h | 59
xen/include/asm-powerpc/io.h | 67
xen/include/asm-powerpc/iocap.h | 26
xen/include/asm-powerpc/irq.h | 31
xen/include/asm-powerpc/mach-default/irq_vectors.h | 105
xen/include/asm-powerpc/memory.h | 39
xen/include/asm-powerpc/misc.h | 33
xen/include/asm-powerpc/mm.h | 224
xen/include/asm-powerpc/mpic.h | 294
xen/include/asm-powerpc/msr.h | 66
xen/include/asm-powerpc/multicall.h | 27
xen/include/asm-powerpc/page.h | 116
xen/include/asm-powerpc/papr.h | 218
xen/include/asm-powerpc/pci.h | 35
xen/include/asm-powerpc/powerpc64/config.h | 45
xen/include/asm-powerpc/powerpc64/ppc970-hid.h | 107
xen/include/asm-powerpc/powerpc64/ppc970.h | 31
xen/include/asm-powerpc/powerpc64/procarea.h | 36
xen/include/asm-powerpc/powerpc64/processor.h | 193
xen/include/asm-powerpc/powerpc64/string.h | 40
xen/include/asm-powerpc/processor.h | 202
xen/include/asm-powerpc/reg_defs.h | 180
xen/include/asm-powerpc/regs.h | 25
xen/include/asm-powerpc/shadow.h | 45
xen/include/asm-powerpc/smp.h | 36
xen/include/asm-powerpc/smpboot.h | 21
xen/include/asm-powerpc/spinlock.h | 221
xen/include/asm-powerpc/string.h | 26
xen/include/asm-powerpc/system.h | 243
xen/include/asm-powerpc/time.h | 42
xen/include/asm-powerpc/types.h | 69
xen/include/asm-powerpc/uaccess.h | 38
xen/include/asm-x86/hvm/io.h | 4
xen/include/asm-x86/hvm/vcpu.h | 18
xen/include/asm-x86/hvm/vpit.h | 4
xen/include/public/arch-powerpc.h | 119
xen/include/public/grant_table.h | 4
xen/include/public/trace.h | 1
xen/include/public/xen.h | 2
xen/include/public/xencomm.h | 37
xen/include/xen/irq.h | 1
xen/include/xen/perfc_defn.h | 2
671 files changed, 143820 insertions(+), 17596 deletions(-)
diff -r 2db50529223e -r f7b43e5c42b9 .hgignore
--- a/.hgignore Tue Jul 25 09:51:50 2006 -0600
+++ b/.hgignore Tue Jul 25 12:19:05 2006 -0600
@@ -54,6 +54,7 @@
^extras/mini-os/h/xen-public$
^extras/mini-os/mini-os\..*$
^install/.*$
+^linux-[^/]*-native/.*$
^linux-[^/]*-xen/.*$
^linux-[^/]*-xen0/.*$
^linux-[^/]*-xenU/.*$
@@ -73,27 +74,11 @@
^tools/.*/TAGS$
^tools/.*/build/lib.*/.*\.py$
^tools/blktap/Makefile\.smh$
-^tools/blktap/blkcow$
-^tools/blktap/blkcowgnbd$
-^tools/blktap/blkcowimg$
-^tools/blktap/blkdump$
-^tools/blktap/blkgnbd$
-^tools/blktap/blkimg$
-^tools/blktap/bstest$
-^tools/blktap/parallax/blockstored$
-^tools/blktap/parallax/parallax$
-^tools/blktap/parallax/vdi_create$
-^tools/blktap/parallax/vdi_fill$
-^tools/blktap/parallax/vdi_list$
-^tools/blktap/parallax/vdi_snap$
-^tools/blktap/parallax/vdi_snap_delete$
-^tools/blktap/parallax/vdi_snap_list$
-^tools/blktap/parallax/vdi_tree$
-^tools/blktap/parallax/vdi_validate$
-^tools/blktap/ublkback/ublkback$
-^tools/blktap/vdi\.dot$
-^tools/blktap/vdi\.ps$
-^tools/blktap/xen/.*$
+^tools/blktap/drivers/blktapctrl$
+^tools/blktap/drivers/img2qcow$
+^tools/blktap/drivers/qcow-create$
+^tools/blktap/drivers/qcow2raw$
+^tools/blktap/drivers/tapdisk$
^tools/check/\..*$
^tools/console/xenconsole$
^tools/console/xenconsoled$
@@ -122,13 +107,21 @@
^tools/firmware/vmxassist/roms\.h$
^tools/firmware/vmxassist/vmxassist$
^tools/firmware/vmxassist/vmxloader$
-^tools/ioemu/config-host\..*$
-^tools/ioemu/keysym_adapter_sdl\.h$
-^tools/ioemu/keysym_adapter_vnc\.h$
-^tools/ioemu/target-.*/Makefile$
-^tools/ioemu/target-.*/config\..*$
-^tools/ioemu/target-.*/qemu-dm$
+^tools/ioemu/\.pc/.*$
+^tools/ioemu/config-host\.h$
+^tools/ioemu/config-host\.mak$
+^tools/ioemu/i386-dm/config\.h$
+^tools/ioemu/i386-dm/config\.mak$
+^tools/ioemu/i386-dm/qemu-dm$
+^tools/ioemu/qemu-doc\.html$
+^tools/ioemu/qemu-img\.1$
+^tools/ioemu/qemu-img\.pod$
+^tools/ioemu/qemu-tech\.html$
+^tools/ioemu/qemu\.1$
+^tools/ioemu/qemu\.pod$
^tools/libxc/xen/.*$
+^tools/libaio/src/.*\.ol$
+^tools/libaio/src/.*\.os$
^tools/misc/cpuperf/cpuperf-perfcntr$
^tools/misc/cpuperf/cpuperf-xen$
^tools/misc/lomount/lomount$
@@ -203,3 +196,7 @@
^xen/xen$
^xen/xen-syms$
^xen/xen\..*$
+^xen/arch/ppc/dom0\.bin$
+^xen/arch/ppc/asm-offsets\.s$
+^xen/arch/ppc/firmware
+^xen/arch/ppc/firmware_image
diff -r 2db50529223e -r f7b43e5c42b9 Config.mk
--- a/Config.mk Tue Jul 25 09:51:50 2006 -0600
+++ b/Config.mk Tue Jul 25 12:19:05 2006 -0600
@@ -3,8 +3,8 @@
# A debug build of Xen and tools?
debug ?= n
-# Currently supported architectures: x86_32, x86_64
-XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/)
+XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/ \
+ -e s/ppc/powerpc/)
XEN_TARGET_ARCH ?= $(XEN_COMPILE_ARCH)
XEN_TARGET_X86_PAE ?= n
diff -r 2db50529223e -r f7b43e5c42b9 buildconfigs/Rules.mk
--- a/buildconfigs/Rules.mk Tue Jul 25 09:51:50 2006 -0600
+++ b/buildconfigs/Rules.mk Tue Jul 25 12:19:05 2006 -0600
@@ -69,9 +69,6 @@ ref-%/.valid-ref: pristine-%/.valid-pris
touch $@ # update timestamp to avoid rebuild
endif
-%-prep:
- $(MAKE) -f buildconfigs/mk.$* prep
-
%-install:
$(MAKE) -f buildconfigs/mk.$* build
@@ -83,14 +80,19 @@ endif
%-build: %-dist
@: # do nothing
+%-prep: DESTDIR=$(DISTDIR)/install
+%-prep:
+ $(MAKE) -f buildconfigs/mk.$* prep
+
+%-config: DESTDIR=$(DISTDIR)/install
+%-config:
+ $(MAKE) -f buildconfigs/mk.$* config
+
%-delete:
$(MAKE) -f buildconfigs/mk.$* delete
%-clean:
$(MAKE) -f buildconfigs/mk.$* clean
-
-%-config:
- $(MAKE) -f buildconfigs/mk.$* config
linux-2.6-xen.patch: ref-linux-$(LINUX_VER)/.valid-ref
rm -rf tmp-$@
diff -r 2db50529223e -r f7b43e5c42b9 buildconfigs/linux-defconfig_xen0_ia64
--- a/buildconfigs/linux-defconfig_xen0_ia64 Tue Jul 25 09:51:50 2006 -0600
+++ b/buildconfigs/linux-defconfig_xen0_ia64 Tue Jul 25 12:19:05 2006 -0600
@@ -1527,6 +1527,7 @@ CONFIG_XEN_BACKEND=y
# CONFIG_XEN_PCIDEV_BACKEND is not set
CONFIG_XEN_BLKDEV_BACKEND=y
CONFIG_XEN_XENBUS_DEV=y
+# CONFIG_XEN_BLKDEV_TAP is not set
# CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
CONFIG_XEN_NETDEV_LOOPBACK=y
# CONFIG_XEN_TPMDEV_BACKEND is not set
diff -r 2db50529223e -r f7b43e5c42b9 buildconfigs/linux-defconfig_xen0_x86_32
--- a/buildconfigs/linux-defconfig_xen0_x86_32 Tue Jul 25 09:51:50 2006 -0600
+++ b/buildconfigs/linux-defconfig_xen0_x86_32 Tue Jul 25 12:19:05 2006 -0600
@@ -1322,6 +1322,7 @@ CONFIG_XEN_PCIDEV_BACKEND_PASS=y
CONFIG_XEN_PCIDEV_BACKEND_PASS=y
# CONFIG_XEN_PCIDEV_BE_DEBUG is not set
CONFIG_XEN_BLKDEV_BACKEND=y
+CONFIG_XEN_BLKDEV_TAP=y
CONFIG_XEN_NETDEV_BACKEND=y
# CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
CONFIG_XEN_NETDEV_LOOPBACK=y
diff -r 2db50529223e -r f7b43e5c42b9 buildconfigs/linux-defconfig_xen0_x86_64
--- a/buildconfigs/linux-defconfig_xen0_x86_64 Tue Jul 25 09:51:50 2006 -0600
+++ b/buildconfigs/linux-defconfig_xen0_x86_64 Tue Jul 25 12:19:05 2006 -0600
@@ -1263,6 +1263,7 @@ CONFIG_XEN_PCIDEV_BACKEND_PASS=y
CONFIG_XEN_PCIDEV_BACKEND_PASS=y
# CONFIG_XEN_PCIDEV_BE_DEBUG is not set
CONFIG_XEN_BLKDEV_BACKEND=y
+CONFIG_XEN_BLKDEV_TAP=y
CONFIG_XEN_NETDEV_BACKEND=y
# CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
CONFIG_XEN_NETDEV_LOOPBACK=y
diff -r 2db50529223e -r f7b43e5c42b9 buildconfigs/linux-defconfig_xen_ia64
--- a/buildconfigs/linux-defconfig_xen_ia64 Tue Jul 25 09:51:50 2006 -0600
+++ b/buildconfigs/linux-defconfig_xen_ia64 Tue Jul 25 12:19:05 2006 -0600
@@ -1533,6 +1533,7 @@ CONFIG_XEN_BACKEND=y
# CONFIG_XEN_PCIDEV_BACKEND is not set
CONFIG_XEN_BLKDEV_BACKEND=y
CONFIG_XEN_XENBUS_DEV=y
+# CONFIG_XEN_BLKDEV_TAP is not set
# CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
CONFIG_XEN_NETDEV_LOOPBACK=y
# CONFIG_XEN_TPMDEV_BACKEND is not set
diff -r 2db50529223e -r f7b43e5c42b9 buildconfigs/linux-defconfig_xen_x86_32
--- a/buildconfigs/linux-defconfig_xen_x86_32 Tue Jul 25 09:51:50 2006 -0600
+++ b/buildconfigs/linux-defconfig_xen_x86_32 Tue Jul 25 12:19:05 2006 -0600
@@ -3023,6 +3023,7 @@ CONFIG_XEN_PCIDEV_BACKEND_VPCI=y
# CONFIG_XEN_PCIDEV_BACKEND_PASS is not set
# CONFIG_XEN_PCIDEV_BE_DEBUG is not set
CONFIG_XEN_BLKDEV_BACKEND=y
+CONFIG_XEN_BLKDEV_TAP=y
CONFIG_XEN_NETDEV_BACKEND=y
# CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
CONFIG_XEN_NETDEV_LOOPBACK=y
diff -r 2db50529223e -r f7b43e5c42b9 buildconfigs/linux-defconfig_xen_x86_64
--- a/buildconfigs/linux-defconfig_xen_x86_64 Tue Jul 25 09:51:50 2006 -0600
+++ b/buildconfigs/linux-defconfig_xen_x86_64 Tue Jul 25 12:19:05 2006 -0600
@@ -2855,6 +2855,7 @@ CONFIG_XEN_PCIDEV_BACKEND_PASS=y
CONFIG_XEN_PCIDEV_BACKEND_PASS=y
# CONFIG_XEN_PCIDEV_BE_DEBUG is not set
CONFIG_XEN_BLKDEV_BACKEND=y
+CONFIG_XEN_BLKDEV_TAP=y
CONFIG_XEN_NETDEV_BACKEND=y
# CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
CONFIG_XEN_NETDEV_LOOPBACK=y
diff -r 2db50529223e -r f7b43e5c42b9 buildconfigs/mk.linux-2.6-xen
--- a/buildconfigs/mk.linux-2.6-xen Tue Jul 25 09:51:50 2006 -0600
+++ b/buildconfigs/mk.linux-2.6-xen Tue Jul 25 12:19:05 2006 -0600
@@ -4,6 +4,11 @@ EXTRAVERSION ?= xen
EXTRAVERSION ?= xen
LINUX_DIR = linux-$(LINUX_VER)-$(EXTRAVERSION)
+
+IMAGE_TARGET ?= vmlinuz
+INSTALL_BOOT_PATH ?= $(DESTDIR)
+
+LINUX_VER3 := $(LINUX_SERIES).$(word 3, $(subst ., ,$(LINUX_VER)))
include buildconfigs/Rules.mk
@@ -14,8 +19,9 @@ build: $(LINUX_DIR)/include/linux/autoco
$(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) modules ; \
$(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH)
INSTALL_MOD_PATH=$(DESTDIR) modules_install ; \
fi
- $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_PATH=$(DESTDIR)
vmlinuz
- $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_PATH=$(DESTDIR)
install
+ $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_PATH=$(DESTDIR)
$(IMAGE_TARGET)
+ mkdir -p $(INSTALL_BOOT_PATH)
+ $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH)
INSTALL_PATH=$(INSTALL_BOOT_PATH) install
$(LINUX_DIR)/include/linux/autoconf.h: ref-linux-$(LINUX_VER)/.valid-ref
rm -rf $(LINUX_DIR)
@@ -25,10 +31,9 @@ build: $(LINUX_DIR)/include/linux/autoco
LINUX_ARCH=$(LINUX_ARCH) bash ./mkbuildtree ../$(LINUX_DIR) )
# Re-use config from install dir if one exits else use default config
CONFIG_VERSION=$$(sed -ne 's/^EXTRAVERSION = //p'
$(LINUX_DIR)/Makefile); \
- [ -r
$(DESTDIR)/boot/config-$(LINUX_VER)$$CONFIG_VERSION-$(EXTRAVERSION) ] && \
- cp
$(DESTDIR)/boot/config-$(LINUX_VER)$$CONFIG_VERSION-$(EXTRAVERSION)
$(LINUX_DIR)/.config \
- || cp
buildconfigs/linux-defconfig_$(EXTRAVERSION)_$(XEN_TARGET_ARCH)$(XEN_SYSTYPE) \
- $(LINUX_DIR)/.config
+ [ -r
$(DESTDIR)/boot/config-$(LINUX_VER3)$$CONFIG_VERSION-$(EXTRAVERSION) ] && \
+ cp
$(DESTDIR)/boot/config-$(LINUX_VER3)$$CONFIG_VERSION-$(EXTRAVERSION)
$(LINUX_DIR)/.config \
+ || sh buildconfigs/create_config.sh $(LINUX_DIR)/.config
$(EXTRAVERSION) $(XEN_TARGET_ARCH) $(XEN_SYSTYPE)
# See if we need to munge config to enable PAE
$(MAKE) CONFIG_FILE=$(LINUX_DIR)/.config -f buildconfigs/Rules.mk
config-update-pae
# Patch kernel Makefile to set EXTRAVERSION
diff -r 2db50529223e -r f7b43e5c42b9 config/ia64.mk
--- a/config/ia64.mk Tue Jul 25 09:51:50 2006 -0600
+++ b/config/ia64.mk Tue Jul 25 12:19:05 2006 -0600
@@ -1,4 +1,5 @@ CONFIG_IA64 := y
CONFIG_IA64 := y
CONFIG_IOEMU := y
+CONFIG_XCUTILS := y
LIBDIR := lib
diff -r 2db50529223e -r f7b43e5c42b9 config/x86_32.mk
--- a/config/x86_32.mk Tue Jul 25 09:51:50 2006 -0600
+++ b/config/x86_32.mk Tue Jul 25 12:19:05 2006 -0600
@@ -1,7 +1,7 @@ CONFIG_X86 := y
CONFIG_X86 := y
-CONFIG_PLAN9 := y
CONFIG_HVM := y
CONFIG_MIGRATE := y
+CONFIG_XCUTILS := y
CONFIG_IOEMU := y
CONFIG_MBOOTPACK := y
diff -r 2db50529223e -r f7b43e5c42b9 config/x86_64.mk
--- a/config/x86_64.mk Tue Jul 25 09:51:50 2006 -0600
+++ b/config/x86_64.mk Tue Jul 25 12:19:05 2006 -0600
@@ -1,7 +1,7 @@ CONFIG_X86 := y
CONFIG_X86 := y
-CONFIG_PLAN9 := y
CONFIG_HVM := y
CONFIG_MIGRATE := y
+CONFIG_XCUTILS := y
CONFIG_IOEMU := y
CONFIG_MBOOTPACK := y
diff -r 2db50529223e -r f7b43e5c42b9 extras/mini-os/mm.c
--- a/extras/mini-os/mm.c Tue Jul 25 09:51:50 2006 -0600
+++ b/extras/mini-os/mm.c Tue Jul 25 12:19:05 2006 -0600
@@ -687,7 +687,7 @@ void *map_frames(unsigned long *f, unsig
/* Find a run of n contiguous frames */
for (x = 0; x <= 1024 - n; x += y + 1) {
for (y = 0; y < n; y++)
- if (demand_map_pgt[y] & _PAGE_PRESENT)
+ if (demand_map_pgt[x+y] & _PAGE_PRESENT)
break;
if (y == n)
break;
diff -r 2db50529223e -r f7b43e5c42b9
linux-2.6-xen-sparse/arch/i386/oprofile/xenoprof.c
--- a/linux-2.6-xen-sparse/arch/i386/oprofile/xenoprof.c Tue Jul 25
09:51:50 2006 -0600
+++ b/linux-2.6-xen-sparse/arch/i386/oprofile/xenoprof.c Tue Jul 25
12:19:05 2006 -0600
@@ -29,6 +29,7 @@
#include <xen/interface/xen.h>
#include <xen/interface/xenoprof.h>
#include <../../../drivers/oprofile/cpu_buffer.h>
+#include <../../../drivers/oprofile/event_buffer.h>
static int xenoprof_start(void);
static void xenoprof_stop(void);
@@ -151,16 +152,27 @@ static void xenoprof_handle_passive(void
static void xenoprof_handle_passive(void)
{
int i, j;
-
- for (i = 0; i < pdomains; i++)
+ int flag_domain, flag_switch = 0;
+
+ for (i = 0; i < pdomains; i++) {
+ flag_domain = 0;
for (j = 0; j < passive_domains[i].nbuf; j++) {
xenoprof_buf_t *buf = p_xenoprof_buf[i][j];
if (buf->event_head == buf->event_tail)
continue;
- oprofile_add_pc(IGNORED_PC, CPU_MODE_PASSIVE_START,
passive_domains[i].domain_id);
+ if (!flag_domain) {
+ if
(!oprofile_add_domain_switch(passive_domains[i].
+ domain_id))
+ goto done;
+ flag_domain = 1;
+ }
xenoprof_add_pc(buf, 1);
- oprofile_add_pc(IGNORED_PC, CPU_MODE_PASSIVE_STOP,
passive_domains[i].domain_id);
- }
+ flag_switch = 1;
+ }
+ }
+done:
+ if (flag_switch)
+ oprofile_add_domain_switch(COORDINATOR_DOMAIN);
}
static irqreturn_t
@@ -177,6 +189,7 @@ xenoprof_ovf_interrupt(int irq, void * d
if (is_primary && !test_and_set_bit(0, &flag)) {
xenoprof_handle_passive();
+ smp_mb__before_clear_bit();
clear_bit(0, &flag);
}
diff -r 2db50529223e -r f7b43e5c42b9 linux-2.6-xen-sparse/drivers/xen/Kconfig
--- a/linux-2.6-xen-sparse/drivers/xen/Kconfig Tue Jul 25 09:51:50 2006 -0600
+++ b/linux-2.6-xen-sparse/drivers/xen/Kconfig Tue Jul 25 12:19:05 2006 -0600
@@ -29,6 +29,11 @@ config XEN_UNPRIVILEGED_GUEST
default !XEN_PRIVILEGED_GUEST
config XEN_PRIVCMD
+ bool
+ depends on PROC_FS
+ default y
+
+config XEN_XENBUS_DEV
bool
depends on PROC_FS
default y
@@ -40,8 +45,59 @@ config XEN_BACKEND
Support for backend device drivers that provide I/O services
to other virtual machines.
+config XEN_BLKDEV_BACKEND
+ tristate "Block-device backend driver"
+ depends on XEN_BACKEND
+ default y
+ help
+ The block-device backend driver allows the kernel to export its
+ block devices to other guests via a high-performance shared-memory
+ interface.
+
+config XEN_BLKDEV_TAP
+ tristate "Block-device tap backend driver"
+ depends on XEN_BACKEND
+ default XEN_PRIVILEGED_GUEST
+ help
+ The block tap driver is an alternative to the block back driver
+ and allows VM block requests to be redirected to userspace through
+ a device interface. The tap allows user-space development of
+ high-performance block backends, where disk images may be implemented
+ as files, in memory, or on other hosts across the network. This
+ driver can safely coexist with the existing blockback driver.
+
+config XEN_NETDEV_BACKEND
+ tristate "Network-device backend driver"
+ depends on XEN_BACKEND && NET
+ default y
+ help
+ The network-device backend driver allows the kernel to export its
+ network devices to other guests via a high-performance shared-memory
+ interface.
+
+config XEN_NETDEV_PIPELINED_TRANSMITTER
+ bool "Pipelined transmitter (DANGEROUS)"
+ depends on XEN_NETDEV_BACKEND
+ default n
+ help
+ If the net backend is a dumb domain, such as a transparent Ethernet
+ bridge with no local IP interface, it is safe to say Y here to get
+ slightly lower network overhead.
+ If the backend has a local IP interface; or may be doing smart things
+ like reassembling packets to perform firewall filtering; or if you
+ are unsure; or if you experience network hangs when this option is
+ enabled; then you must say N here.
+
+config XEN_NETDEV_LOOPBACK
+ tristate "Network-device loopback driver"
+ depends on XEN_NETDEV_BACKEND
+ default y
+ help
+ A two-interface loopback device to emulate a local netfront-netback
+ connection.
+
config XEN_PCIDEV_BACKEND
- tristate "PCI device backend driver"
+ tristate "PCI-device backend driver"
depends on PCI && XEN_BACKEND
default XEN_PRIVILEGED_GUEST
help
@@ -80,50 +136,6 @@ config XEN_PCIDEV_BE_DEBUG
depends on XEN_PCIDEV_BACKEND
default n
-config XEN_BLKDEV_BACKEND
- tristate "Block-device backend driver"
- depends on XEN_BACKEND
- default y
- help
- The block-device backend driver allows the kernel to export its
- block devices to other guests via a high-performance shared-memory
- interface.
-
-config XEN_XENBUS_DEV
- bool
- depends on PROC_FS
- default y
-
-config XEN_NETDEV_BACKEND
- tristate "Network-device backend driver"
- depends on XEN_BACKEND && NET
- default y
- help
- The network-device backend driver allows the kernel to export its
- network devices to other guests via a high-performance shared-memory
- interface.
-
-config XEN_NETDEV_PIPELINED_TRANSMITTER
- bool "Pipelined transmitter (DANGEROUS)"
- depends on XEN_NETDEV_BACKEND
- default n
- help
- If the net backend is a dumb domain, such as a transparent Ethernet
- bridge with no local IP interface, it is safe to say Y here to get
- slightly lower network overhead.
- If the backend has a local IP interface; or may be doing smart things
- like reassembling packets to perform firewall filtering; or if you
- are unsure; or if you experience network hangs when this option is
- enabled; then you must say N here.
-
-config XEN_NETDEV_LOOPBACK
- tristate "Network-device loopback driver"
- depends on XEN_NETDEV_BACKEND
- default y
- help
- A two-interface loopback device to emulate a local netfront-netback
- connection.
-
config XEN_TPMDEV_BACKEND
tristate "TPM-device backend driver"
depends on XEN_BACKEND
@@ -183,7 +195,7 @@ config XEN_SYSFS
depends on SYSFS
default y
help
- Xen hypervisor attributes will show up under /sys/hypervisor/.
+ Xen hypervisor attributes will show up under /sys/hypervisor/.
choice
prompt "Xen version compatibility"
diff -r 2db50529223e -r f7b43e5c42b9 linux-2.6-xen-sparse/drivers/xen/Makefile
--- a/linux-2.6-xen-sparse/drivers/xen/Makefile Tue Jul 25 09:51:50 2006 -0600
+++ b/linux-2.6-xen-sparse/drivers/xen/Makefile Tue Jul 25 12:19:05 2006 -0600
@@ -8,6 +8,7 @@ obj-$(CONFIG_XEN_BALLOON) += balloon/
obj-$(CONFIG_XEN_BALLOON) += balloon/
obj-$(CONFIG_XEN_DEVMEM) += char/
obj-$(CONFIG_XEN_BLKDEV_BACKEND) += blkback/
+obj-$(CONFIG_XEN_BLKDEV_TAP) += blktap/
obj-$(CONFIG_XEN_NETDEV_BACKEND) += netback/
obj-$(CONFIG_XEN_TPMDEV_BACKEND) += tpmback/
obj-$(CONFIG_XEN_BLKDEV_FRONTEND) += blkfront/
diff -r 2db50529223e -r f7b43e5c42b9
linux-2.6-xen-sparse/drivers/xen/console/console.c
--- a/linux-2.6-xen-sparse/drivers/xen/console/console.c Tue Jul 25
09:51:50 2006 -0600
+++ b/linux-2.6-xen-sparse/drivers/xen/console/console.c Tue Jul 25
12:19:05 2006 -0600
@@ -536,18 +536,27 @@ static void xencons_close(struct tty_str
if (DUMMY_TTY(tty))
return;
- if (tty->count == 1) {
- tty->closing = 1;
- tty_wait_until_sent(tty, 0);
- if (DRV(tty->driver)->flush_buffer != NULL)
- DRV(tty->driver)->flush_buffer(tty);
- if (tty->ldisc.flush_buffer != NULL)
- tty->ldisc.flush_buffer(tty);
- tty->closing = 0;
- spin_lock_irqsave(&xencons_lock, flags);
- xencons_tty = NULL;
- spin_unlock_irqrestore(&xencons_lock, flags);
- }
+ down(&tty_sem);
+
+ if (tty->count != 1) {
+ up(&tty_sem);
+ return;
+ }
+
+ /* Prevent other threads from re-opening this tty. */
+ set_bit(TTY_CLOSING, &tty->flags);
+ up(&tty_sem);
+
+ tty->closing = 1;
+ tty_wait_until_sent(tty, 0);
+ if (DRV(tty->driver)->flush_buffer != NULL)
+ DRV(tty->driver)->flush_buffer(tty);
+ if (tty->ldisc.flush_buffer != NULL)
+ tty->ldisc.flush_buffer(tty);
+ tty->closing = 0;
+ spin_lock_irqsave(&xencons_lock, flags);
+ xencons_tty = NULL;
+ spin_unlock_irqrestore(&xencons_lock, flags);
}
static struct tty_operations xencons_ops = {
diff -r 2db50529223e -r f7b43e5c42b9
linux-2.6-xen-sparse/drivers/xen/tpmback/tpmback.c
--- a/linux-2.6-xen-sparse/drivers/xen/tpmback/tpmback.c Tue Jul 25
09:51:50 2006 -0600
+++ b/linux-2.6-xen-sparse/drivers/xen/tpmback/tpmback.c Tue Jul 25
12:19:05 2006 -0600
@@ -852,11 +852,11 @@ static void processing_timeout(unsigned
*/
if (pak == packet_find_packet(&dataex.pending_pak, pak) ||
pak == packet_find_packet(&dataex.current_pak, pak)) {
- list_del(&pak->next);
if ((pak->flags & PACKET_FLAG_DISCARD_RESPONSE) == 0) {
tpm_send_fail_message(pak, pak->req_tag);
}
- packet_free(pak);
+ /* discard future responses */
+ pak->flags |= PACKET_FLAG_DISCARD_RESPONSE;
}
write_unlock_irqrestore(&dataex.pak_lock, flags);
diff -r 2db50529223e -r f7b43e5c42b9
linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/dma-mapping.h
--- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/dma-mapping.h Tue Jul
25 09:51:50 2006 -0600
+++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/dma-mapping.h Tue Jul
25 12:19:05 2006 -0600
@@ -120,7 +120,6 @@ dma_set_mask(struct device *dev, u64 mas
return 0;
}
-#ifdef __i386__
static inline int
dma_get_cache_alignment(void)
{
@@ -128,7 +127,6 @@ dma_get_cache_alignment(void)
* maximum possible, to be safe */
return (1 << INTERNODE_CACHE_SHIFT);
}
-#endif
#define dma_is_consistent(d) (1)
diff -r 2db50529223e -r f7b43e5c42b9 linux-2.6-xen-sparse/include/linux/skbuff.h
--- a/linux-2.6-xen-sparse/include/linux/skbuff.h Tue Jul 25 09:51:50
2006 -0600
+++ b/linux-2.6-xen-sparse/include/linux/skbuff.h Tue Jul 25 12:19:05
2006 -0600
@@ -1412,5 +1412,10 @@ static inline void nf_reset(struct sk_bu
static inline void nf_reset(struct sk_buff *skb) {}
#endif /* CONFIG_NETFILTER */
+static inline int skb_is_gso(const struct sk_buff *skb)
+{
+ return skb_shinfo(skb)->gso_size;
+}
+
#endif /* __KERNEL__ */
#endif /* _LINUX_SKBUFF_H */
diff -r 2db50529223e -r f7b43e5c42b9 linux-2.6-xen-sparse/net/core/dev.c
--- a/linux-2.6-xen-sparse/net/core/dev.c Tue Jul 25 09:51:50 2006 -0600
+++ b/linux-2.6-xen-sparse/net/core/dev.c Tue Jul 25 12:19:05 2006 -0600
@@ -1089,9 +1089,17 @@ int skb_checksum_help(struct sk_buff *sk
unsigned int csum;
int ret = 0, offset = skb->h.raw - skb->data;
- if (inward) {
- skb->ip_summed = CHECKSUM_NONE;
- goto out;
+ if (inward)
+ goto out_set_summed;
+
+ if (unlikely(skb_shinfo(skb)->gso_size)) {
+ static int warned;
+
+ WARN_ON(!warned);
+ warned = 1;
+
+ /* Let GSO fix up the checksum. */
+ goto out_set_summed;
}
if (skb_cloned(skb)) {
@@ -1108,6 +1116,8 @@ int skb_checksum_help(struct sk_buff *sk
BUG_ON(skb->csum + 2 > offset);
*(u16*)(skb->h.raw + skb->csum) = csum_fold(csum);
+
+out_set_summed:
skb->ip_summed = CHECKSUM_NONE;
out:
return ret;
@@ -1128,17 +1138,35 @@ struct sk_buff *skb_gso_segment(struct s
struct sk_buff *segs = ERR_PTR(-EPROTONOSUPPORT);
struct packet_type *ptype;
int type = skb->protocol;
+ int err;
BUG_ON(skb_shinfo(skb)->frag_list);
- BUG_ON(skb->ip_summed != CHECKSUM_HW);
skb->mac.raw = skb->data;
skb->mac_len = skb->nh.raw - skb->data;
__skb_pull(skb, skb->mac_len);
+ if (unlikely(skb->ip_summed != CHECKSUM_HW)) {
+ static int warned;
+
+ WARN_ON(!warned);
+ warned = 1;
+
+ if (skb_header_cloned(skb) &&
+ (err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC)))
+ return ERR_PTR(err);
+ }
+
rcu_read_lock();
list_for_each_entry_rcu(ptype, &ptype_base[ntohs(type) & 15], list) {
if (ptype->type == type && !ptype->dev && ptype->gso_segment) {
+ if (unlikely(skb->ip_summed != CHECKSUM_HW)) {
+ err = ptype->gso_send_check(skb);
+ segs = ERR_PTR(err);
+ if (err || skb_gso_ok(skb, features))
+ break;
+ __skb_push(skb, skb->data - skb->nh.raw);
+ }
segs = ptype->gso_segment(skb, features);
break;
}
diff -r 2db50529223e -r f7b43e5c42b9 patches/linux-2.6.16.13/net-csum.patch
--- a/patches/linux-2.6.16.13/net-csum.patch Tue Jul 25 09:51:50 2006 -0600
+++ b/patches/linux-2.6.16.13/net-csum.patch Tue Jul 25 12:19:05 2006 -0600
@@ -1,40 +1,39 @@ diff -pruN ../pristine-linux-2.6.16.13/n
diff -pruN ../pristine-linux-2.6.16.13/net/ipv4/netfilter/ip_nat_proto_tcp.c
./net/ipv4/netfilter/ip_nat_proto_tcp.c
--- ../pristine-linux-2.6.16.13/net/ipv4/netfilter/ip_nat_proto_tcp.c
2006-05-02 22:38:44.000000000 +0100
-+++ ./net/ipv4/netfilter/ip_nat_proto_tcp.c 2006-05-04 17:41:37.000000000
+0100
-@@ -129,10 +129,14 @@ tcp_manip_pkt(struct sk_buff **pskb,
++++ ./net/ipv4/netfilter/ip_nat_proto_tcp.c 2006-05-16 13:28:19.000000000
+0100
+@@ -129,7 +129,12 @@ tcp_manip_pkt(struct sk_buff **pskb,
if (hdrsize < sizeof(*hdr))
return 1;
- hdr->check = ip_nat_cheat_check(~oldip, newip,
-+ if ((*pskb)->proto_csum_blank) {
++#ifdef CONFIG_XEN
++ if ((*pskb)->proto_csum_blank)
+ hdr->check = ip_nat_cheat_check(oldip, ~newip, hdr->check);
-+ } else {
++ else
++#endif
+ hdr->check = ip_nat_cheat_check(~oldip, newip,
ip_nat_cheat_check(oldport ^ 0xFFFF,
newport,
hdr->check));
-+ }
- return 1;
- }
-
diff -pruN ../pristine-linux-2.6.16.13/net/ipv4/netfilter/ip_nat_proto_udp.c
./net/ipv4/netfilter/ip_nat_proto_udp.c
--- ../pristine-linux-2.6.16.13/net/ipv4/netfilter/ip_nat_proto_udp.c
2006-05-02 22:38:44.000000000 +0100
-+++ ./net/ipv4/netfilter/ip_nat_proto_udp.c 2006-05-04 17:41:37.000000000
+0100
-@@ -113,11 +113,16 @@ udp_manip_pkt(struct sk_buff **pskb,
++++ ./net/ipv4/netfilter/ip_nat_proto_udp.c 2006-05-16 13:30:14.000000000
+0100
+@@ -113,11 +113,17 @@ udp_manip_pkt(struct sk_buff **pskb,
newport = tuple->dst.u.udp.port;
portptr = &hdr->dest;
}
- if (hdr->check) /* 0 is a special case meaning no checksum */
- hdr->check = ip_nat_cheat_check(~oldip, newip,
+ if (hdr->check) { /* 0 is a special case meaning no checksum */
-+ if ((*pskb)->proto_csum_blank) {
++#ifdef CONFIG_XEN
++ if ((*pskb)->proto_csum_blank)
+ hdr->check = ip_nat_cheat_check(oldip, ~newip,
hdr->check);
-+ } else {
++ else
++#endif
+ hdr->check = ip_nat_cheat_check(~oldip, newip,
ip_nat_cheat_check(*portptr ^ 0xFFFF,
newport,
hdr->check));
-+ }
+ }
*portptr = newport;
return 1;
diff -r 2db50529223e -r f7b43e5c42b9
patches/linux-2.6.16.13/xenoprof-generic.patch
--- a/patches/linux-2.6.16.13/xenoprof-generic.patch Tue Jul 25 09:51:50
2006 -0600
+++ b/patches/linux-2.6.16.13/xenoprof-generic.patch Tue Jul 25 12:19:05
2006 -0600
@@ -1,6 +1,6 @@ diff -pru ../pristine-linux-2.6.16.13/dr
-diff -pru ../pristine-linux-2.6.16.13/drivers/oprofile/buffer_sync.c
./drivers/oprofile/buffer_sync.c
---- ../pristine-linux-2.6.16.13/drivers/oprofile/buffer_sync.c 2006-05-03
05:38:44.000000000 +0800
-+++ ./drivers/oprofile/buffer_sync.c 2006-06-27 12:14:53.000000000 +0800
+diff -Naur orig/drivers/oprofile/buffer_sync.c
new/drivers/oprofile/buffer_sync.c
+--- orig/drivers/oprofile/buffer_sync.c 2006-05-02 14:38:44.000000000
-0700
++++ new/drivers/oprofile/buffer_sync.c 2006-07-06 18:19:05.000000000 -0700
@@ -6,6 +6,10 @@
*
* @author John Levon <levon@xxxxxxxxxxxxxxxxx>
@@ -12,7 +12,7 @@ diff -pru ../pristine-linux-2.6.16.13/dr
* This is the core of the buffer management. Each
* CPU buffer is processed and entered into the
* global event buffer. Such processing is necessary
-@@ -275,15 +279,30 @@ static void add_cpu_switch(int i)
+@@ -275,15 +279,31 @@
last_cookie = INVALID_COOKIE;
}
@@ -34,22 +34,23 @@ diff -pru ../pristine-linux-2.6.16.13/dr
+ case CPU_MODE_XEN:
+ add_event_entry(XEN_ENTER_SWITCH_CODE);
+ break;
-+ case CPU_MODE_PASSIVE_START:
-+ add_event_entry(PASSIVE_START_CODE);
-+ break;
-+ case CPU_MODE_PASSIVE_STOP:
-+ add_event_entry(PASSIVE_STOP_CODE);
-+ break;
+ default:
+ break;
+ }
}
-
+
++static void add_domain_switch(unsigned long domain_id)
++{
++ add_event_entry(ESCAPE_CODE);
++ add_event_entry(DOMAIN_SWITCH_CODE);
++ add_event_entry(domain_id);
++}
++
static void
add_user_ctx_switch(struct task_struct const * task, unsigned long cookie)
{
-@@ -348,9 +367,9 @@ static int add_us_sample(struct mm_struc
+@@ -348,9 +368,9 @@
* for later lookup from userspace.
*/
static int
@@ -61,7 +62,7 @@ diff -pru ../pristine-linux-2.6.16.13/dr
add_sample_entry(s->eip, s->event);
return 1;
} else if (mm) {
-@@ -496,10 +515,11 @@ void sync_buffer(int cpu)
+@@ -496,10 +516,11 @@
struct mm_struct *mm = NULL;
struct task_struct * new;
unsigned long cookie = 0;
@@ -70,34 +71,35 @@ diff -pru ../pristine-linux-2.6.16.13/dr
unsigned int i;
sync_buffer_state state = sb_buffer_start;
unsigned long available;
-+ int domain_switch = NO_DOMAIN_SWITCH;
++ int domain_switch = 0;
down(&buffer_sem);
-@@ -513,12 +533,19 @@ void sync_buffer(int cpu)
+@@ -512,16 +533,18 @@
+ for (i = 0; i < available; ++i) {
struct op_sample * s = &cpu_buf->buffer[cpu_buf->tail_pos];
- if (is_code(s->eip)) {
+- if (is_code(s->eip)) {
- if (s->event <= CPU_IS_KERNEL) {
-+ if (s->event < CPU_TRACE_BEGIN) {
- /* kernel/userspace switch */
+- /* kernel/userspace switch */
- in_kernel = s->event;
++ if (is_code(s->eip) && !domain_switch) {
++ if (s->event <= CPU_MODE_XEN) {
++ /* xen/kernel/userspace switch */
+ cpu_mode = s->event;
if (state == sb_buffer_start)
state = sb_sample_start;
- add_kernel_ctx_switch(s->event);
-+
-+ if (s->event == CPU_MODE_PASSIVE_START)
-+ domain_switch =
DOMAIN_SWITCH_START_EVENT1;
-+ else if (s->event == CPU_MODE_PASSIVE_STOP)
-+ domain_switch =
DOMAIN_SWITCH_STOP_EVENT1;
-+
-+ if (domain_switch != DOMAIN_SWITCH_START_EVENT2)
-+ add_cpu_mode_switch(s->event);
++ add_cpu_mode_switch(s->event);
} else if (s->event == CPU_TRACE_BEGIN) {
state = sb_bt_start;
add_trace_begin();
-@@ -535,11 +562,20 @@ void sync_buffer(int cpu)
++ } else if (s->event == CPU_DOMAIN_SWITCH) {
++ domain_switch = 1;
+ } else {
+ struct mm_struct * oldmm = mm;
+
+@@ -535,11 +558,16 @@
add_user_ctx_switch(new, cookie);
}
} else {
@@ -106,13 +108,9 @@ diff -pru ../pristine-linux-2.6.16.13/dr
- if (state == sb_bt_start) {
- state = sb_bt_ignore;
-
atomic_inc(&oprofile_stats.bt_lost_no_mapping);
-+ if (domain_switch == DOMAIN_SWITCH_START_EVENT1) {
-+ add_event_entry(s->event);
-+ domain_switch = DOMAIN_SWITCH_START_EVENT2;
-+ } else if (domain_switch == DOMAIN_SWITCH_START_EVENT1)
{
-+ add_sample_entry(s->eip, s->event);
-+ } else if (domain_switch == DOMAIN_SWITCH_STOP_EVENT1) {
-+ domain_switch = NO_DOMAIN_SWITCH;
++ if (domain_switch) {
++ add_domain_switch(s->eip);
++ domain_switch = 0;
+ } else {
+ if (state >= sb_bt_start &&
+ !add_sample(mm, s, cpu_mode)) {
@@ -123,24 +121,9 @@ diff -pru ../pristine-linux-2.6.16.13/dr
}
}
}
-diff -pru ../pristine-linux-2.6.16.13/drivers/oprofile/buffer_sync.h
./drivers/oprofile/buffer_sync.h
---- ../pristine-linux-2.6.16.13/drivers/oprofile/buffer_sync.h 2006-05-03
05:38:44.000000000 +0800
-+++ ./drivers/oprofile/buffer_sync.h 2006-06-27 12:12:09.000000000 +0800
-@@ -9,6 +9,11 @@
-
- #ifndef OPROFILE_BUFFER_SYNC_H
- #define OPROFILE_BUFFER_SYNC_H
-+
-+#define NO_DOMAIN_SWITCH -1
-+#define DOMAIN_SWITCH_START_EVENT1 0
-+#define DOMAIN_SWITCH_START_EVENT2 1
-+#define DOMAIN_SWITCH_STOP_EVENT1 2
-
- /* add the necessary profiling hooks */
- int sync_start(void);
-diff -pru ../pristine-linux-2.6.16.13/drivers/oprofile/cpu_buffer.c
./drivers/oprofile/cpu_buffer.c
---- ../pristine-linux-2.6.16.13/drivers/oprofile/cpu_buffer.c 2006-05-03
05:38:44.000000000 +0800
-+++ ./drivers/oprofile/cpu_buffer.c 2006-06-19 22:43:53.000000000 +0800
+diff -Naur orig/drivers/oprofile/cpu_buffer.c new/drivers/oprofile/cpu_buffer.c
+--- orig/drivers/oprofile/cpu_buffer.c 2006-05-02 14:38:44.000000000 -0700
++++ new/drivers/oprofile/cpu_buffer.c 2006-07-06 18:19:05.000000000 -0700
@@ -6,6 +6,10 @@
*
* @author John Levon <levon@xxxxxxxxxxxxxxxxx>
@@ -152,7 +135,16 @@ diff -pru ../pristine-linux-2.6.16.13/dr
* Each CPU has a local buffer that stores PC value/event
* pairs. We also log context switches when we notice them.
* Eventually each CPU's buffer is processed into the global
-@@ -58,7 +62,7 @@ int alloc_cpu_buffers(void)
+@@ -34,6 +38,8 @@
+ #define DEFAULT_TIMER_EXPIRE (HZ / 10)
+ static int work_enabled;
+
++static int32_t current_domain = COORDINATOR_DOMAIN;
++
+ void free_cpu_buffers(void)
+ {
+ int i;
+@@ -58,7 +64,7 @@
goto fail;
b->last_task = NULL;
@@ -161,7 +153,7 @@ diff -pru ../pristine-linux-2.6.16.13/dr
b->tracing = 0;
b->buffer_size = buffer_size;
b->tail_pos = 0;
-@@ -114,7 +118,7 @@ void cpu_buffer_reset(struct oprofile_cp
+@@ -114,7 +120,7 @@
* collected will populate the buffer with proper
* values to initialize the buffer
*/
@@ -170,7 +162,7 @@ diff -pru ../pristine-linux-2.6.16.13/dr
cpu_buf->last_task = NULL;
}
-@@ -164,13 +168,13 @@ add_code(struct oprofile_cpu_buffer * bu
+@@ -164,13 +170,13 @@
* because of the head/tail separation of the writer and reader
* of the CPU buffer.
*
@@ -188,7 +180,7 @@ diff -pru ../pristine-linux-2.6.16.13/dr
{
struct task_struct * task;
-@@ -181,16 +185,14 @@ static int log_sample(struct oprofile_cp
+@@ -181,18 +187,18 @@
return 0;
}
@@ -207,12 +199,43 @@ diff -pru ../pristine-linux-2.6.16.13/dr
-
+
/* notice a task switch */
- if (cpu_buf->last_task != task) {
+- if (cpu_buf->last_task != task) {
++ /* if not processing other domain samples */
++ if ((cpu_buf->last_task != task) &&
++ (current_domain == COORDINATOR_DOMAIN)) {
cpu_buf->last_task = task;
-diff -pru ../pristine-linux-2.6.16.13/drivers/oprofile/cpu_buffer.h
./drivers/oprofile/cpu_buffer.h
---- ../pristine-linux-2.6.16.13/drivers/oprofile/cpu_buffer.h 2006-05-03
05:38:44.000000000 +0800
-+++ ./drivers/oprofile/cpu_buffer.h 2006-06-27 10:38:08.000000000 +0800
-@@ -36,7 +36,7 @@ struct oprofile_cpu_buffer {
+ add_code(cpu_buf, (unsigned long)task);
+ }
+@@ -269,6 +275,25 @@
+ add_sample(cpu_buf, pc, 0);
+ }
+
++int oprofile_add_domain_switch(int32_t domain_id)
++{
++ struct oprofile_cpu_buffer * cpu_buf = &cpu_buffer[smp_processor_id()];
++
++ /* should have space for switching into and out of domain
++ (2 slots each) plus one sample and one cpu mode switch */
++ if (((nr_available_slots(cpu_buf) < 6) &&
++ (domain_id != COORDINATOR_DOMAIN)) ||
++ (nr_available_slots(cpu_buf) < 2))
++ return 0;
++
++ add_code(cpu_buf, CPU_DOMAIN_SWITCH);
++ add_sample(cpu_buf, domain_id, 0);
++
++ current_domain = domain_id;
++
++ return 1;
++}
++
+ /*
+ * This serves to avoid cpu buffer overflow, and makes sure
+ * the task mortuary progresses
+diff -Naur orig/drivers/oprofile/cpu_buffer.h new/drivers/oprofile/cpu_buffer.h
+--- orig/drivers/oprofile/cpu_buffer.h 2006-05-02 14:38:44.000000000 -0700
++++ new/drivers/oprofile/cpu_buffer.h 2006-07-06 18:19:05.000000000 -0700
+@@ -36,7 +36,7 @@
volatile unsigned long tail_pos;
unsigned long buffer_size;
struct task_struct * last_task;
@@ -221,7 +244,7 @@ diff -pru ../pristine-linux-2.6.16.13/dr
int tracing;
struct op_sample * buffer;
unsigned long sample_received;
-@@ -51,7 +51,13 @@ extern struct oprofile_cpu_buffer cpu_bu
+@@ -51,7 +51,10 @@
void cpu_buffer_reset(struct oprofile_cpu_buffer * cpu_buf);
/* transient events for the CPU buffer -> event buffer */
@@ -230,17 +253,14 @@ diff -pru ../pristine-linux-2.6.16.13/dr
+#define CPU_MODE_USER 0
+#define CPU_MODE_KERNEL 1
+#define CPU_MODE_XEN 2
-+#define CPU_MODE_PASSIVE_START 3
-+#define CPU_MODE_PASSIVE_STOP 4
-+#define CPU_TRACE_BEGIN 5
-+
-+#define IGNORED_PC 0
++#define CPU_TRACE_BEGIN 3
++#define CPU_DOMAIN_SWITCH 4
#endif /* OPROFILE_CPU_BUFFER_H */
-diff -pru ../pristine-linux-2.6.16.13/drivers/oprofile/event_buffer.h
./drivers/oprofile/event_buffer.h
---- ../pristine-linux-2.6.16.13/drivers/oprofile/event_buffer.h
2006-05-03 05:38:44.000000000 +0800
-+++ ./drivers/oprofile/event_buffer.h 2006-06-19 22:43:53.000000000 +0800
-@@ -29,11 +29,14 @@ void wake_up_buffer_waiter(void);
+diff -Naur orig/drivers/oprofile/event_buffer.h
new/drivers/oprofile/event_buffer.h
+--- orig/drivers/oprofile/event_buffer.h 2006-05-02 14:38:44.000000000
-0700
++++ new/drivers/oprofile/event_buffer.h 2006-07-06 18:19:05.000000000
-0700
+@@ -29,15 +29,20 @@
#define CPU_SWITCH_CODE 2
#define COOKIE_SWITCH_CODE 3
#define KERNEL_ENTER_SWITCH_CODE 4
@@ -251,14 +271,20 @@ diff -pru ../pristine-linux-2.6.16.13/dr
#define TRACE_BEGIN_CODE 8
#define TRACE_END_CODE 9
+#define XEN_ENTER_SWITCH_CODE 10
-+#define PASSIVE_START_CODE 11
-+#define PASSIVE_STOP_CODE 12
++#define DOMAIN_SWITCH_CODE 11
#define INVALID_COOKIE ~0UL
#define NO_COOKIE 0UL
-diff -pru ../pristine-linux-2.6.16.13/drivers/oprofile/oprof.c
./drivers/oprofile/oprof.c
---- ../pristine-linux-2.6.16.13/drivers/oprofile/oprof.c 2006-05-03
05:38:44.000000000 +0800
-+++ ./drivers/oprofile/oprof.c 2006-06-19 23:45:17.000000000 +0800
+
++/* Constant used to refer to coordinator domain (Xen) */
++#define COORDINATOR_DOMAIN -1
++
+ /* add data to the event buffer */
+ void add_event_entry(unsigned long data);
+
+diff -Naur orig/drivers/oprofile/oprof.c new/drivers/oprofile/oprof.c
+--- orig/drivers/oprofile/oprof.c 2006-05-02 14:38:44.000000000 -0700
++++ new/drivers/oprofile/oprof.c 2006-07-06 18:19:05.000000000 -0700
@@ -5,6 +5,10 @@
* @remark Read the file COPYING
*
@@ -279,7 +305,7 @@ diff -pru ../pristine-linux-2.6.16.13/dr
struct oprofile_operations oprofile_ops;
unsigned long oprofile_started;
-@@ -33,6 +37,32 @@ static DECLARE_MUTEX(start_sem);
+@@ -33,6 +37,32 @@
*/
static int timer = 0;
@@ -312,10 +338,10 @@ diff -pru ../pristine-linux-2.6.16.13/dr
int oprofile_setup(void)
{
int err;
-diff -pru ../pristine-linux-2.6.16.13/drivers/oprofile/oprof.h
./drivers/oprofile/oprof.h
---- ../pristine-linux-2.6.16.13/drivers/oprofile/oprof.h 2006-05-03
05:38:44.000000000 +0800
-+++ ./drivers/oprofile/oprof.h 2006-06-19 23:42:36.000000000 +0800
-@@ -35,5 +35,8 @@ void oprofile_create_files(struct super_
+diff -Naur orig/drivers/oprofile/oprof.h new/drivers/oprofile/oprof.h
+--- orig/drivers/oprofile/oprof.h 2006-05-02 14:38:44.000000000 -0700
++++ new/drivers/oprofile/oprof.h 2006-07-06 18:19:05.000000000 -0700
+@@ -35,5 +35,8 @@
void oprofile_timer_init(struct oprofile_operations * ops);
int oprofile_set_backtrace(unsigned long depth);
@@ -324,9 +350,9 @@ diff -pru ../pristine-linux-2.6.16.13/dr
+int oprofile_set_passive(int passive_domains[], unsigned int pdomains);
#endif /* OPROF_H */
-diff -pru ../pristine-linux-2.6.16.13/drivers/oprofile/oprofile_files.c
./drivers/oprofile/oprofile_files.c
---- ../pristine-linux-2.6.16.13/drivers/oprofile/oprofile_files.c
2006-05-03 05:38:44.000000000 +0800
-+++ ./drivers/oprofile/oprofile_files.c 2006-06-19 23:29:07.000000000
+0800
+diff -Naur orig/drivers/oprofile/oprofile_files.c
new/drivers/oprofile/oprofile_files.c
+--- orig/drivers/oprofile/oprofile_files.c 2006-05-02 14:38:44.000000000
-0700
++++ new/drivers/oprofile/oprofile_files.c 2006-07-06 18:19:05.000000000
-0700
@@ -5,15 +5,21 @@
* @remark Read the file COPYING
*
@@ -350,7 +376,7 @@ diff -pru ../pristine-linux-2.6.16.13/dr
unsigned long fs_buffer_size = 131072;
unsigned long fs_cpu_buffer_size = 8192;
unsigned long fs_buffer_watershed = 32768; /* FIXME: tune */
-@@ -117,11 +123,202 @@ static ssize_t dump_write(struct file *
+@@ -117,11 +123,202 @@
static struct file_operations dump_fops = {
.write = dump_write,
};
@@ -554,8 +580,9 @@ diff -pru ../pristine-linux-2.6.16.13/dr
oprofilefs_create_file(sb, root, "buffer", &event_buffer_fops);
oprofilefs_create_ulong(sb, root, "buffer_size", &fs_buffer_size);
oprofilefs_create_ulong(sb, root, "buffer_watershed",
&fs_buffer_watershed);
---- ../pristine-linux-2.6.16.13/include/linux/oprofile.h 2006-05-03
05:38:44.000000000 +0800
-+++ ./include/linux/oprofile.h 2006-06-19 23:52:00.000000000 +0800
+diff -Naur orig/include/linux/oprofile.h new/include/linux/oprofile.h
+--- orig/include/linux/oprofile.h 2006-05-02 14:38:44.000000000 -0700
++++ new/include/linux/oprofile.h 2006-07-06 18:19:31.000000000 -0700
@@ -16,6 +16,8 @@
#include <linux/types.h>
#include <linux/spinlock.h>
@@ -565,7 +592,7 @@ diff -pru ../pristine-linux-2.6.16.13/dr
struct super_block;
struct dentry;
-@@ -27,6 +29,11 @@ struct oprofile_operations {
+@@ -27,6 +29,11 @@
/* create any necessary configuration files in the oprofile fs.
* Optional. */
int (*create_files)(struct super_block * sb, struct dentry * root);
@@ -577,3 +604,12 @@ diff -pru ../pristine-linux-2.6.16.13/dr
/* Do any necessary interrupt setup. Optional. */
int (*setup)(void);
/* Do any necessary interrupt shutdown. Optional. */
+@@ -68,6 +75,8 @@
+ /* add a backtrace entry, to be called from the ->backtrace callback */
+ void oprofile_add_trace(unsigned long eip);
+
++/* add a domain switch entry */
++int oprofile_add_domain_switch(int32_t domain_id);
+
+ /**
+ * Create a file of the given name as a child of the given root, with
diff -r 2db50529223e -r f7b43e5c42b9 tools/Makefile
--- a/tools/Makefile Tue Jul 25 09:51:50 2006 -0600
+++ b/tools/Makefile Tue Jul 25 12:19:05 2006 -0600
@@ -7,7 +7,7 @@ SUBDIRS-y += misc
SUBDIRS-y += misc
SUBDIRS-y += examples
SUBDIRS-y += xentrace
-SUBDIRS-$(CONFIG_X86) += xcutils
+SUBDIRS-$(CONFIG_XCUTILS) += xcutils
SUBDIRS-y += firmware
SUBDIRS-y += security
SUBDIRS-y += console
@@ -16,6 +16,8 @@ SUBDIRS-$(VTPM_TOOLS) += vtpm_manager
SUBDIRS-$(VTPM_TOOLS) += vtpm_manager
SUBDIRS-$(VTPM_TOOLS) += vtpm
SUBDIRS-y += xenstat
+SUBDIRS-y += libaio
+SUBDIRS-y += blktap
# These don't cross-compile
ifeq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
@@ -58,10 +60,13 @@ check_clean:
.PHONY: ioemu ioemuinstall ioemuclean
ifdef CONFIG_IOEMU
-ioemu ioemuinstall ioemuclean:
- [ -f ioemu/config-host.h ] || \
- (cd ioemu; sh ./configure --prefix=usr)
- $(MAKE) -C ioemu $(patsubst ioemu%,%,$@)
+export IOEMU_DIR ?= ioemu
+ioemu ioemuinstall:
+ [ -f $(IOEMU_DIR)/config-host.mak ] || \
+ (cd $(IOEMU_DIR) && sh configure --prefix=/usr)
+ $(MAKE) -C $(IOEMU_DIR) $(patsubst ioemu%,%,$@)
+ioemuclean:
+ $(MAKE) -C $(IOEMU_DIR) distclean
else
ioemu ioemuinstall ioemuclean:
endif
diff -r 2db50529223e -r f7b43e5c42b9 tools/examples/Makefile
--- a/tools/examples/Makefile Tue Jul 25 09:51:50 2006 -0600
+++ b/tools/examples/Makefile Tue Jul 25 12:19:05 2006 -0600
@@ -26,7 +26,8 @@ XEN_SCRIPTS += network-nat vif-nat
XEN_SCRIPTS += network-nat vif-nat
XEN_SCRIPTS += block
XEN_SCRIPTS += block-enbd block-nbd
-XEN_SCRIPTS += vtpm vtpm-delete vtpm-addtodb
+XEN_SCRIPTS += blktap
+XEN_SCRIPTS += vtpm vtpm-delete
XEN_SCRIPTS += xen-hotplug-cleanup
XEN_SCRIPTS += external-device-migrate
XEN_SCRIPT_DATA = xen-script-common.sh locking.sh logging.sh
diff -r 2db50529223e -r f7b43e5c42b9 tools/examples/README
--- a/tools/examples/README Tue Jul 25 09:51:50 2006 -0600
+++ b/tools/examples/README Tue Jul 25 12:19:05 2006 -0600
@@ -25,7 +25,6 @@ vif-nat - xen virtual networ
vif-nat - xen virtual network start/stop script in NAT mode
vif-route - xen virtual network start/stop script in routed mode
vtpm - called by xen-backend.agent to bind/unbind vTPM devices
-vtpm-addtodb - script for adding a vTPM instance to the vTPM table
vtpm-common.sh - common code for vTPM handling
vtpm-delete - remove an entry from the vTPM table given the
domain's name
diff -r 2db50529223e -r f7b43e5c42b9 tools/examples/vtpm-common.sh
--- a/tools/examples/vtpm-common.sh Tue Jul 25 09:51:50 2006 -0600
+++ b/tools/examples/vtpm-common.sh Tue Jul 25 12:19:05 2006 -0600
@@ -24,12 +24,9 @@ VTPMDB="/etc/xen/vtpm.db"
#In the vtpm-impl file some commands should be defined:
# vtpm_create, vtpm_setup, vtpm_start, etc. (see below)
-#This should be indicated by setting VTPM_IMPL_DEFINED.
if [ -r "$dir/vtpm-impl" ]; then
. "$dir/vtpm-impl"
-fi
-
-if [ -z "$VTPM_IMPL_DEFINED" ]; then
+else
function vtpm_create () {
true
}
@@ -245,6 +242,12 @@ function vtpm_create_instance () {
claim_lock vtpmdb
instance=$(vtpmdb_find_instance $domname)
+
+ if [ "$instance" == "0" -a "$reason" != "create" ]; then
+ release_lock vtpmdb
+ return
+ fi
+
if [ "$instance" == "0" ]; then
#Try to give the preferred instance to the domain
instance=$(xenstore_read "$XENBUS_PATH"/pref_instance)
@@ -317,7 +320,7 @@ function vtpm_delete_instance () {
# "-1" : the given machine name is invalid
# "0" : this is not an address of this machine
# "1" : this is an address local to this machine
-function isLocalAddress() {
+function vtpm_isLocalAddress() {
local addr res
addr=$(ping $1 -c 1 | \
gawk '{ print substr($3,2,length($3)-2); exit }')
@@ -347,7 +350,7 @@ function isLocalAddress() {
# 2nd: name of the domain to migrate
# 3rd: the migration step to perform
function vtpm_migration_step() {
- local res=$(isLocalAddress $1)
+ local res=$(vtpm_isLocalAddress $1)
if [ "$res" == "0" ]; then
vtpm_migrate $1 $2 $3
fi
@@ -361,8 +364,39 @@ function vtpm_migration_step() {
# 3rd: the last successful migration step that was done
function vtpm_recover() {
local res
- res=$(isLocalAddress $1)
+ res=$(vtpm_isLocalAddress $1)
if [ "$res" == "0" ]; then
vtpm_migrate_recover $1 $2 $3
fi
}
+
+
+#Determine the domain id given a domain's name.
+#1st parameter: name of the domain
+#return value: domain id or -1 if domain id could not be determined
+function vtpm_domid_from_name () {
+ local id name ids
+ ids=$(xenstore-list /local/domain)
+ for id in $ids; do
+ name=$(xenstore-read /local/domain/$id/name)
+ if [ "$name" == "$1" ]; then
+ echo "$id"
+ return
+ fi
+ done
+ echo "-1"
+}
+
+
+#Add a virtual TPM instance number and its associated domain name
+#to the VTPMDB file and activate usage of this virtual TPM instance
+#by writing the instance number into the xenstore
+#1st parm: name of virtual machine
+#2nd parm: instance of assoicate virtual TPM
+function vtpm_add_and_activate() {
+ local domid=$(vtpm_domid_from_name $1)
+ if [ "$domid" != "-1" ]; then
+ vtpmdb_add_instance $1 $2
+ xenstore-write backend/vtpm/$domid/0/instance $2
+ fi
+}
diff -r 2db50529223e -r f7b43e5c42b9 tools/examples/vtpm-impl
--- a/tools/examples/vtpm-impl Tue Jul 25 09:51:50 2006 -0600
+++ b/tools/examples/vtpm-impl Tue Jul 25 12:19:05 2006 -0600
@@ -32,8 +32,6 @@
# OF THE POSSIBILITY OF SUCH DAMAGE.
# ===================================================================
-VTPM_IMPL_DEFINED=1
-
# | SRC | TAG | CMD SIZE | ORD
| type| mode
TPM_CMD_OPEN=\\x00\\x00\\x00\\x00\\x01\\xc1\\x00\\x00\\x00\\x10\\x01\\x00\\x00\\x01\\x01\\x01
TPM_CMD_RESM=\\x00\\x00\\x00\\x00\\x01\\xc1\\x00\\x00\\x00\\x10\\x01\\x00\\x00\\x01\\x01\\x02
@@ -44,6 +42,8 @@ TPM_SUCCESS=00000000
TX_VTPM_MANAGER=/var/vtpm/fifos/from_console.fifo
RX_VTPM_MANAGER=/var/vtpm/fifos/to_console.fifo
+
+VTPM_MIG=/usr/bin/vtpm_migrator
# -------------------- Helpers for binary streams -----------
@@ -67,11 +67,17 @@ function vtpm_manager_cmd() {
local inst=$2;
local inst_bin=$(hex32_to_bin $inst);
+ claim_lock vtpm_mgr
+
#send cmd to vtpm_manager
printf "$cmd$inst_bin" > $TX_VTPM_MANAGER
#recv response
+ set +e
local resp_hex=`dd skip=10 bs=1 count=4 if=$RX_VTPM_MANAGER 2> /dev/null |
xxd -ps`
+ set -e
+
+ release_lock vtpm_mgr
#return whether the command was successful
if [ $resp_hex != $TPM_SUCCESS ]; then
@@ -126,11 +132,55 @@ function vtpm_delete() {
fi
}
+# Perform a migration step. This function differentiates between migration
+# to the local host or to a remote machine.
+# Parameters:
+# 1st: destination host to migrate to
+# 2nd: name of the domain to migrate
+# 3rd: the migration step to perform
function vtpm_migrate() {
- echo "Error: vTPM migration accross machines not implemented."
+ local instance res
+
+ instance=$(vtpmdb_find_instance $2)
+ if [ "$instance" == "" ]; then
+ log err "VTPM Migratoin failed. Unable to translation of domain name"
+ echo "Error: VTPM Migration failed while looking up instance number"
+ fi
+
+ case "$3" in
+ 0)
+ #Incicate migration supported
+ echo "0"
+ ;;
+
+ 1)
+ # Get Public Key from Destination
+ # Call vtpm_manager's migration part 1
+ claim_lock vtpm_mgr
+ $VTPM_MIG $1 $2 $instance $3
+ release_lock vtpm_mgr
+ ;;
+
+ 2)
+ # Call manager's migration step 2 and send result to destination
+ # If successful remove from db
+ claim_lock vtpm_mgr
+ $VTPM_MIG $1 $2 $instance $3
+ release_lock vtpm_mgr
+ ;;
+
+ 3)
+ if `ps x | grep "$VTPM_MIG $1"`; then
+ log err "VTPM Migration failed to complete."
+ echo "Error: VTPM Migration failed to complete."
+ fi
+ ;;
+ esac
+
}
+
function vtpm_migrate_recover() {
- true
+ echo "Error: Recovery not supported yet"
}
diff -r 2db50529223e -r f7b43e5c42b9 tools/examples/xen-backend.agent
--- a/tools/examples/xen-backend.agent Tue Jul 25 09:51:50 2006 -0600
+++ b/tools/examples/xen-backend.agent Tue Jul 25 12:19:05 2006 -0600
@@ -7,6 +7,9 @@ claim_lock xenbus_hotplug_global
claim_lock xenbus_hotplug_global
case "$XENBUS_TYPE" in
+ tap)
+ /etc/xen/scripts/blktap "$ACTION"
+ ;;
vbd)
/etc/xen/scripts/block "$ACTION"
;;
diff -r 2db50529223e -r f7b43e5c42b9 tools/examples/xen-backend.rules
--- a/tools/examples/xen-backend.rules Tue Jul 25 09:51:50 2006 -0600
+++ b/tools/examples/xen-backend.rules Tue Jul 25 12:19:05 2006 -0600
@@ -1,3 +1,4 @@ SUBSYSTEM=="xen-backend", KERNEL=="vbd*"
+SUBSYSTEM=="xen-backend", KERNEL=="tap*", RUN+="/etc/xen/scripts/blktap
$env{ACTION}"
SUBSYSTEM=="xen-backend", KERNEL=="vbd*", RUN+="/etc/xen/scripts/block
$env{ACTION}"
SUBSYSTEM=="xen-backend", KERNEL=="vtpm*", RUN+="/etc/xen/scripts/vtpm
$env{ACTION}"
SUBSYSTEM=="xen-backend", KERNEL=="vif*", ACTION=="online", RUN+="$env{script}
online"
diff -r 2db50529223e -r f7b43e5c42b9 tools/examples/xmexample.hvm
--- a/tools/examples/xmexample.hvm Tue Jul 25 09:51:50 2006 -0600
+++ b/tools/examples/xmexample.hvm Tue Jul 25 12:19:05 2006 -0600
@@ -54,7 +54,7 @@ name = "ExampleHVMDomain"
# Optionally define mac and/or bridge for the network interfaces.
# Random MACs are assigned if not given.
-#vif = [ 'type=ioemu, mac=00:16:3e:00:00:11, bridge=xenbr0' ]
+#vif = [ 'type=ioemu, mac=00:16:3e:00:00:11, bridge=xenbr0, model=ne2k_pci' ]
# type=ioemu specify the NIC is an ioemu device not netfront
vif = [ 'type=ioemu, bridge=xenbr0' ]
@@ -130,8 +130,13 @@ vnc=1
vnc=1
#----------------------------------------------------------------------------
-# enable spawning vncviewer(only valid when vnc=1), default = 1
-vncviewer=1
+# set VNC display number, default = domid
+#vncdisplay=1
+
+#----------------------------------------------------------------------------
+# enable spawning vncviewer for domain's console
+# (only valid when vnc=1), default = 0
+#vncconsole=0
#----------------------------------------------------------------------------
# no graphics, use serial port
@@ -146,10 +151,6 @@ stdvga=0
# then xm console or minicom can connect
serial='pty'
-#----------------------------------------------------------------------------
-# enable ne2000, default = 0(use pcnet)
-ne2000=0
-
#-----------------------------------------------------------------------------
# enable audio support
diff -r 2db50529223e -r f7b43e5c42b9 tools/firmware/vmxassist/vmxassist.ld
--- a/tools/firmware/vmxassist/vmxassist.ld Tue Jul 25 09:51:50 2006 -0600
+++ b/tools/firmware/vmxassist/vmxassist.ld Tue Jul 25 12:19:05 2006 -0600
@@ -11,8 +11,7 @@ SECTIONS
_btext = .;
*(.text)
*(.rodata)
- *(.rodata.str1.1)
- *(.rodata.str1.4)
+ *(.rodata.*)
_etext = .;
}
diff -r 2db50529223e -r f7b43e5c42b9 tools/ioemu/Changelog
--- a/tools/ioemu/Changelog Tue Jul 25 09:51:50 2006 -0600
+++ b/tools/ioemu/Changelog Tue Jul 25 12:19:05 2006 -0600
@@ -1,3 +1,84 @@ version 0.6.1:
+version 0.8.1:
+
+ - USB tablet support (Brad Campbell, Anthony Liguori)
+ - win32 host serial support (Kazu)
+ - PC speaker support (Joachim Henke)
+ - IDE LBA48 support (Jens Axboe)
+ - SSE3 support
+ - Solaris port (Ben Taylor)
+ - Preliminary SH4 target (Samuel Tardieu)
+ - VNC server (Anthony Liguori)
+ - slirp fixes (Ed Swierk et al.)
+ - USB fixes
+ - ARM Versatile Platform Baseboard emulation (Paul Brook)
+
+version 0.8.0:
+
+ - ARM system emulation: Arm Integrator/CP board with an arm1026ej-s
+ cpu (Paul Brook)
+ - SMP support
+ - Mac OS X cocoa improvements (Mike Kronenberg)
+ - Mac OS X CoreAudio driver (Mike Kronenberg)
+ - DirectSound driver (malc)
+ - ALSA audio driver (malc)
+ - new audio options: '-soundhw' and '-audio-help' (malc)
+ - ES1370 PCI audio device (malc)
+ - Initial USB support
+ - Linux host serial port access
+ - Linux host low level parallel port access
+ - New network emulation code supporting VLANs.
+ - MIPS and MIPSel User Linux emulation
+ - MIPS fixes to boot Linux (Daniel Jacobowitz)
+ - NX bit support
+ - Initial SPARC SMP support (Blue Swirl)
+ - Major overhaul of the virtual FAT driver for read/write support
+ (Johannes Schindelin)
+
+version 0.7.2:
+
+ - x86_64 fixes (Win2000 and Linux 2.6 boot in 32 bit)
+ - merge self modifying code handling in dirty ram page mecanism.
+ - MIPS fixes (Ralf Baechle)
+ - better user net performances
+
+version 0.7.1:
+
+ - read-only Virtual FAT support (Johannes Schindelin)
+ - Windows 2000 install disk full hack (original idea from Vladimir
+ N. Oleynik)
+ - VMDK disk image creation (Filip Navara)
+ - SPARC64 progress (Blue Swirl)
+ - initial MIPS support (Jocelyn mayer)
+ - MIPS improvements (Ralf Baechle)
+ - 64 bit fixes in user networking (initial patch by Gwenole Beauchesne)
+ - IOAPIC support (Filip Navara)
+
+version 0.7.0:
+
+ - better BIOS translation and HDD geometry auto-detection
+ - user mode networking bug fix
+ - undocumented FPU ops support
+ - Cirrus VGA: support for 1280x1024x[8,15,16] modes
+ - 'pidfile' option
+ - .dmg disk image format support (Johannes Schindelin)
+ - keymaps support (initial patch by Johannes Schindelin)
+ - big endian ARM support (Lennert Buytenhek)
+ - added generic 64 bit target support
+ - x86_64 target support
+ - initial APIC support
+ - MMX/SSE/SSE2/PNI support
+ - PC parallel port support (Mark Jonckheere)
+ - initial SPARC64 support (Blue Swirl)
+ - SPARC target boots Linux (Blue Swirl)
+ - armv5te user mode support (Paul Brook)
+ - ARM VFP support (Paul Brook)
+ - ARM "Angel" semihosting syscalls (Paul Brook)
+ - user mode gdb stub support (Paul Brook)
+ - Samba 3 support
+ - initial Cocoa support (Pierre d'Herbemont)
+ - generic FPU emulation code
+ - Virtual PC read-only disk image support (Alex Beregszaszi)
+
version 0.6.1:
- Mac OS X port (Pierre d'Herbemont)
diff -r 2db50529223e -r f7b43e5c42b9 tools/ioemu/Makefile
--- a/tools/ioemu/Makefile Tue Jul 25 09:51:50 2006 -0600
+++ b/tools/ioemu/Makefile Tue Jul 25 12:19:05 2006 -0600
@@ -3,89 +3,112 @@ include $(XEN_ROOT)/tools/Rules.mk
-include config-host.mak
-CFLAGS+=-g -fno-strict-aliasing
+CFLAGS+=-Wall -O2 -g -fno-strict-aliasing -I.
ifdef CONFIG_DARWIN
CFLAGS+= -mdynamic-no-pic
-endif
-ifdef CONFIG_WIN32
-CFLAGS+=-fpack-struct
endif
LDFLAGS=-g
LIBS=
DEFINES+=-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-TOOLS=qemu-img
+TOOLS=qemu-img$(EXESUF)
ifdef CONFIG_STATIC
LDFLAGS+=-static
endif
-#DOCS=qemu-doc.html qemu-tech.html qemu.1
+ifdef BUILD_DOCS
+DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1
+else
+DOCS=
+endif
-.PHONY: all
-all: $(DOCS) HEADERS
+all: $(DOCS)
for d in $(TARGET_DIRS); do \
$(MAKE) -C $$d $@ || exit 1 ; \
done
-qemu-img: qemu-img.c block.c block-cow.c block-qcow.c aes.c block-vmdk.c
block-cloop.c
+qemu-img$(EXESUF): qemu-img.c block.c block-cow.c block-qcow.c aes.c
block-vmdk.c block-cloop.c block-dmg.c block-bochs.c block-vpc.c block-vvfat.c
$(CC) -DQEMU_TOOL $(CFLAGS) $(LDFLAGS) $(DEFINES) -o $@ $^ -lz $(LIBS)
dyngen$(EXESUF): dyngen.c
$(HOST_CC) $(CFLAGS) $(DEFINES) -o $@ $^
-.PHONY: clean
clean:
# avoid old build problems by removing potentially incorrect old files
rm -f config.mak config.h op-i386.h opc-i386.h gen-op-i386.h op-arm.h
opc-arm.h gen-op-arm.h
- rm -f *.o *.a $(TOOLS) dyngen$(EXESUF) TAGS qemu.pod *~ */*~
- #$(MAKE) -C tests clean
+ rm -f *.o *.a $(TOOLS) dyngen$(EXESUF) TAGS *.pod *~ */*~
+ $(MAKE) -C tests clean
for d in $(TARGET_DIRS); do \
- $(MAKE) -C $$d $@ || exit 1 ; \
+ [ -d $$d ] && $(MAKE) -C $$d $@ || exit 0 ; \
done
- rm -f config-host.mak config-host.h
- rm -f keysym_adapter_sdl.h keysym_adapter_vnc.h
-.PHONY: distclean
distclean: clean
- rm -f config-host.mak config-host.h
- rm -f keysym_adapter_sdl.h keysym_adapter_vnc.h
+ rm -f config-host.mak config-host.h $(DOCS)
for d in $(TARGET_DIRS); do \
- $(MAKE) -C $$d $@ || exit 1 ; \
+ rm -rf $$d || exit 1 ; \
done
KEYMAPS=da en-gb et fr fr-ch is lt modifiers no pt-br sv \
ar de en-us fi fr-be hr it lv nl pl ru th \
common de-ch es fo fr-ca hu ja mk nl-be pt sl tr
-.PHONY: install
-install: all
- mkdir -p "$(bindir)"
- mkdir -p "$(DESTDIR)/$(datadir)"
- mkdir -p "$(DESTDIR)/$(datadir)/keymaps"
- install -m 644 $(addprefix keymaps/,$(KEYMAPS))
"$(DESTDIR)/$(datadir)/keymaps"
+install-doc: $(DOCS)
+ mkdir -p "$(DESTDIR)$(docdir)"
+ $(INSTALL) -m 644 qemu-doc.html qemu-tech.html "$(DESTDIR)$(docdir)"
+ifndef CONFIG_WIN32
+ mkdir -p "$(DESTDIR)$(mandir)/man1"
+ $(INSTALL) qemu.1 qemu-img.1 "$(DESTDIR)$(mandir)/man1"
+endif
+
+install: all $(if $(BUILD_DOCS),install-doc)
+ mkdir -p "$(DESTDIR)$(bindir)"
+# $(INSTALL) -m 755 -s $(TOOLS) "$(DESTDIR)$(bindir)"
+# mkdir -p "$(DESTDIR)$(datadir)"
+# for x in bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \
+# video.x proll.elf linux_boot.bin; do \
+# $(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x
"$(DESTDIR)$(datadir)"; \
+# done
+ifndef CONFIG_WIN32
+ mkdir -p "$(DESTDIR)$(datadir)/keymaps"
+ for x in $(KEYMAPS); do \
+ $(INSTALL) -m 644 $(SRC_PATH)/keymaps/$$x
"$(DESTDIR)$(datadir)/keymaps"; \
+ done
+endif
for d in $(TARGET_DIRS); do \
$(MAKE) -C $$d $@ || exit 1 ; \
done
# various test targets
-.PHONY: test speed test2
test speed test2: all
$(MAKE) -C tests $@
-.PHONY: TAGS
TAGS:
etags *.[ch] tests/*.[ch]
+
+cscope:
+ rm -f ./cscope.*
+ find . -name "*.[ch]" -print > ./cscope.files
+ cscope -b
# documentation
%.html: %.texi
texi2html -monolithic -number $<
+%.info: %.texi
+ makeinfo $< -o $@
+
+%.dvi: %.texi
+ texi2dvi $<
+
qemu.1: qemu-doc.texi
- ./texi2pod.pl $< qemu.pod
+ perl -w $(SRC_PATH)/texi2pod.pl $< qemu.pod
pod2man --section=1 --center=" " --release=" " qemu.pod > $@
+
+qemu-img.1: qemu-img.texi
+ perl -w $(SRC_PATH)/texi2pod.pl $< qemu-img.pod
+ pod2man --section=1 --center=" " --release=" " qemu-img.pod > $@
FILE=qemu-$(shell cat VERSION)
# tar release (use 'make -k tar' on a checkouted tree)
-.PHONY: tar
tar:
rm -rf /tmp/$(FILE)
cp -r . /tmp/$(FILE)
@@ -93,36 +116,34 @@ tar:
rm -rf /tmp/$(FILE)
# generate a binary distribution
-.PHONY: tarbin
tarbin:
- ( cd $(DESTDIR) ; tar zcvf ~/qemu-$(VERSION)-i386.tar.gz \
- $(DESTDIR)/$(bindir)/qemu $(DESTDIR)/$(bindir)/qemu-fast \
- $(DESTDIR)/$(bindir)/qemu-system-ppc \
- $(DESTDIR)/$(bindir)/qemu-i386 \
- $(DESTDIR)/$(bindir)/qemu-arm \
- $(DESTDIR)/$(bindir)/qemu-sparc \
- $(DESTDIR)/$(bindir)/qemu-ppc \
- $(DESTDIR)/$(mandir)/man1/qemu.1 $(DESTDIR)/$(mandir)/man1/qemu-mkcow.1
)
+ ( cd / ; tar zcvf ~/qemu-$(V |