Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] merge with xen-unstable.hg

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] merge with xen-unstable.hg
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 28 Jul 2006 16:21:28 +0000
Delivery-date: Fri, 28 Jul 2006 09:30:02 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# 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