[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [qemu patches] Update patches for changesets 10957:08a11694b109 - 10959:06e2a95d3395.



# HG changeset patch
# User chris@xxxxxxxxxxxxxxxxxxxxxxxx
# Node ID ec8dd0528fc69fc643268493d5a3d722a5650cd7
# Parent  06e2a95d33952a03c8b2d2b665b325c4d2343de0
[qemu patches] Update patches for changesets 10957:08a11694b109 - 
10959:06e2a95d3395.

Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxxx>
---
 tools/ioemu/patches/acpi-poweroff-support              |    8 -
 tools/ioemu/patches/acpi-support                       |  129 ++++++-----------
 tools/ioemu/patches/acpi-timer-support                 |    2 
 tools/ioemu/patches/domain-destroy                     |   21 +-
 tools/ioemu/patches/domain-reset                       |   12 -
 tools/ioemu/patches/domain-timeoffset                  |   40 ++---
 tools/ioemu/patches/hypervisor-pit                     |   18 +-
 tools/ioemu/patches/ide-hd-multithread                 |   24 +--
 tools/ioemu/patches/ioemu-ia64                         |   21 +-
 tools/ioemu/patches/qemu-64bit                         |   28 +--
 tools/ioemu/patches/qemu-allow-disable-sdl             |    6 
 tools/ioemu/patches/qemu-bugfixes                      |   25 ---
 tools/ioemu/patches/qemu-cleanup                       |   22 +-
 tools/ioemu/patches/qemu-dm                            |  126 ++++++++--------
 tools/ioemu/patches/qemu-fix-memset-args               |    4 
 tools/ioemu/patches/qemu-fix-write-to-disk-synchronous |   14 -
 tools/ioemu/patches/qemu-hvm-banner                    |    4 
 tools/ioemu/patches/qemu-init-vgabios                  |    6 
 tools/ioemu/patches/qemu-logging                       |   28 +--
 tools/ioemu/patches/qemu-no-apic                       |   16 +-
 tools/ioemu/patches/qemu-nobios                        |   19 +-
 tools/ioemu/patches/qemu-smp                           |   20 +-
 tools/ioemu/patches/qemu-target-i386-dm                |   48 ++----
 tools/ioemu/patches/qemu-timer                         |   14 -
 tools/ioemu/patches/serial-non-block                   |    4 
 tools/ioemu/patches/series                             |    1 
 tools/ioemu/patches/shadow-vram                        |   12 -
 tools/ioemu/patches/shared-vram                        |   26 +--
 tools/ioemu/patches/support-xm-console                 |    6 
 tools/ioemu/patches/vnc-access-monitor-vt              |   16 +-
 tools/ioemu/patches/vnc-cleanup                        |   19 +-
 tools/ioemu/patches/vnc-fixes                          |  101 +++++++++----
 tools/ioemu/patches/vnc-start-vncviewer                |   46 +++---
 tools/ioemu/patches/vnc-title-domain-name              |    6 
 tools/ioemu/patches/xen-build                          |   57 ++++---
 tools/ioemu/patches/xen-domain-name                    |   30 +--
 tools/ioemu/patches/xen-domid                          |   18 +-
 tools/ioemu/patches/xen-mm                             |   27 +--
 tools/ioemu/patches/xen-network                        |   12 -
 tools/ioemu/patches/xenstore-block-device-config       |   75 ++++-----
 tools/ioemu/patches/xenstore-write-vnc-port            |   10 -
 41 files changed, 557 insertions(+), 564 deletions(-)

diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/acpi-poweroff-support
--- a/tools/ioemu/patches/acpi-poweroff-support Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/acpi-poweroff-support Mon Aug 07 18:28:50 2006 +0100
@@ -1,10 +1,10 @@ Index: ioemu/hw/piix4acpi.c
 Index: ioemu/hw/piix4acpi.c
 ===================================================================
---- ioemu.orig/hw/piix4acpi.c  2006-07-12 11:35:03.574468946 +0100
-+++ ioemu/hw/piix4acpi.c       2006-07-12 11:35:03.631461806 +0100
+--- ioemu.orig/hw/piix4acpi.c  2006-08-06 02:30:29.288761563 +0100
++++ ioemu/hw/piix4acpi.c       2006-08-06 02:30:42.131331446 +0100
 @@ -45,6 +45,10 @@
  #define GBL_RLS           (1 << 2)
- #define SLP_EN          (1 << 13)
+ #define SLP_EN            (1 << 13)
  
 +/* Bits of PM1a register define here  */
 +#define SLP_TYP_MASK    0x1C00
@@ -13,7 +13,7 @@ Index: ioemu/hw/piix4acpi.c
  typedef struct AcpiDeviceState AcpiDeviceState;
  AcpiDeviceState *acpi_device_table;
  
-@@ -270,7 +274,14 @@
+@@ -190,7 +194,14 @@
      s->pm1_control = (val<<8)||(s->pm1_control);
  /*    printf("acpiPm1ControlP1_writeb \n addr %x val:%x\n", addr, val); */
  
@@ -29,7 +29,7 @@ Index: ioemu/hw/piix4acpi.c
  
  static uint32_t acpiPm1ControlP1_readb(void *opaque, uint32_t addr)
  {
-@@ -337,7 +348,14 @@
+@@ -257,7 +268,14 @@
      s->pm1_control = val;
  /*    printf("acpiPm1Control_writew \n addr %x val:%x\n", addr, val); */
  
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/acpi-support
--- a/tools/ioemu/patches/acpi-support  Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/acpi-support  Mon Aug 07 18:28:50 2006 +0100
@@ -1,94 +1,50 @@ Index: ioemu/Makefile.target
 Index: ioemu/Makefile.target
 ===================================================================
---- ioemu.orig/Makefile.target 2006-08-03 19:19:39.000000000 +0100
-+++ ioemu/Makefile.target      2006-08-04 10:35:36.445703379 +0100
-@@ -335,6 +335,7 @@
- VL_OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
+--- ioemu.orig/Makefile.target 2006-08-06 02:23:23.000000000 +0100
++++ ioemu/Makefile.target      2006-08-07 17:38:47.698306442 +0100
+@@ -357,6 +357,7 @@
  VL_OBJS+= fdc.o mc146818rtc.o serial.o pc.o
- VL_OBJS+= cirrus_vga.o mixeng.o parallel.o
+ VL_OBJS+= cirrus_vga.o mixeng.o parallel.o acpi.o piix_pci.o
+ VL_OBJS+= usb-uhci.o
 +VL_OBJS+= piix4acpi.o
  DEFINES += -DHAS_AUDIO
  endif
  ifeq ($(TARGET_BASE_ARCH), ppc)
 Index: ioemu/hw/pc.c
 ===================================================================
---- ioemu.orig/hw/pc.c 2006-08-03 19:19:39.000000000 +0100
-+++ ioemu/hw/pc.c      2006-08-04 10:38:05.559415853 +0100
-@@ -566,6 +566,9 @@
+--- ioemu.orig/hw/pc.c 2006-08-06 02:23:45.000000000 +0100
++++ ioemu/hw/pc.c      2006-08-07 17:42:00.939426374 +0100
+@@ -572,6 +572,9 @@
  static int parallel_io[MAX_PARALLEL_PORTS] = { 0x378, 0x278, 0x3bc };
  static int parallel_irq[MAX_PARALLEL_PORTS] = { 7, 7, 7 };
  
 +/* PIIX4 acpi pci configuration space, func 3 */
-+extern void pci_piix4_acpi_init(PCIBus *bus);
++extern void pci_piix4_acpi_init(PCIBus *bus, int devfn);
 +
  #ifdef HAS_AUDIO
  static void audio_init (PCIBus *pci_bus)
  {
-@@ -867,6 +870,10 @@
+@@ -874,11 +877,15 @@
  
      cmos_init(ram_size, boot_device, bs_table, timeoffset);
  
 +    /* using PIIX4 acpi model */
 +    if (pci_enabled && acpi_enabled)
-+        pci_piix4_acpi_init(pci_bus);
++        pci_piix4_acpi_init(pci_bus, piix3_devfn + 3);
 +
      if (pci_enabled && usb_enabled) {
-         usb_uhci_init(pci_bus, usb_root_ports);
-         usb_attach(usb_root_ports[0], vm_usb_hub);
-Index: ioemu/hw/pci.c
-===================================================================
---- ioemu.orig/hw/pci.c        2006-08-03 19:19:35.000000000 +0100
-+++ ioemu/hw/pci.c     2006-08-03 19:19:39.000000000 +0100
-@@ -1697,7 +1697,7 @@
- static uint32_t pci_bios_io_addr;
- static uint32_t pci_bios_mem_addr;
- /* host irqs corresponding to PCI irqs A-D */
--static uint8_t pci_irqs[4] = { 11, 9, 11, 9 };
-+static uint8_t pci_irqs[4] = { 10, 11, 10, 11 };
- 
- static void pci_set_io_region_addr(PCIDevice *d, int region_num, uint32_t 
addr)
- {
-@@ -1750,12 +1750,22 @@
-             pci_set_io_region_addr(d, 3, 0x374);
-         }
-         break;
-+       case 0x0680:
-+       if (vendor_id == 0x8086 && device_id == 0x7113) {
-+          // PIIX4 ACPI PM 
-+        pci_config_writew(d, 0x20, 0x0000); // NO smb bus IO enable in PIIX4
-+        pci_config_writew(d, 0x22, 0x0000); 
-+        goto default_map;
-+      }
-+         break;
-+
-     case 0x0300:
-         if (vendor_id != 0x1234)
-             goto default_map;
-         /* VGA: map frame buffer to default Bochs VBE address */
-         pci_set_io_region_addr(d, 0, 0xE0000000);
-         break;
-+
-     case 0x0800:
-         /* PIC */
-         vendor_id = pci_config_readw(d, PCI_VENDOR_ID);
-@@ -1800,6 +1810,13 @@
-         pic_irq = pci_irqs[pin];
-         pci_config_writeb(d, PCI_INTERRUPT_LINE, pic_irq);
+         usb_uhci_init(pci_bus, piix3_devfn + 2);
      }
-+    if (class== 0x0680&& vendor_id == 0x8086 && device_id == 0x7113) {
-+         // PIIX4 ACPI PM
-+       pci_config_writew(d, 0x20, 0x0000); // NO smb bus IO enable in PIIX4
-+       pci_config_writew(d, 0x22, 0x0000);
-+       pci_config_writew(d, 0x3c, 0x0009); // Hardcodeed IRQ9
-+       pci_config_writew(d, 0x3d, 0x0001);
-+    }
- }
- 
- /*
+ 
+-    if (pci_enabled && acpi_enabled) {
++    if (pci_enabled && acpi_enabled && 0) {
+         piix4_pm_init(pci_bus, piix3_devfn + 3);
+     }
+ 
 Index: ioemu/hw/piix4acpi.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ ioemu/hw/piix4acpi.c       2006-08-04 10:35:36.762666604 +0100
++++ ioemu/hw/piix4acpi.c       2006-08-07 17:41:41.932577728 +0100
 @@ -0,0 +1,388 @@
 +/*
 + * PIIX4 ACPI controller emulation
@@ -450,7 +406,7 @@ Index: ioemu/hw/piix4acpi.c
 +                                                                              
                        
 +
 +/* PIIX4 acpi pci configuration space, func 3 */
-+void pci_piix4_acpi_init(PCIBus *bus)
++void pci_piix4_acpi_init(PCIBus *bus, int devfn)
 +{
 +    PCIAcpiState *d;
 +    uint8_t *pci_conf;
@@ -458,7 +414,7 @@ Index: ioemu/hw/piix4acpi.c
 +    /* register a function 3 of PIIX4 */
 +    d = (PCIAcpiState *)pci_register_device(
 +        bus, "PIIX4 ACPI", sizeof(PCIAcpiState),
-+        ((PCIDevice *)piix3_state)->devfn + 3, NULL, NULL);
++        devfn, NULL, NULL);
 +
 +    acpi_state = d;
 +    pci_conf = d->dev.config;
@@ -480,18 +436,18 @@ Index: ioemu/hw/piix4acpi.c
 +}
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-08-04 10:35:36.697674145 +0100
-+++ ioemu/vl.c 2006-08-04 10:37:38.001608828 +0100
-@@ -166,6 +166,8 @@
- 
- time_t timeoffset = 0;
- 
+--- ioemu.orig/vl.c    2006-08-06 02:23:45.000000000 +0100
++++ ioemu/vl.c 2006-08-07 17:41:40.613727012 +0100
+@@ -156,7 +156,7 @@
+ #else
+ #define MAX_CPUS 1
+ #endif
+-int acpi_enabled = 1;
 +int acpi_enabled = 0;
-+
- char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
- extern int domid;
- 
-@@ -4803,6 +4805,7 @@
+ int fd_bootchk = 1;
+ 
+ extern int vcpus;
+@@ -5341,6 +5341,7 @@
             "-loadvm file    start right away with a saved state (loadvm in 
monitor)\n"
           "-vnc display    start a VNC server on display\n"
             "-timeoffset     time offset (in seconds) from local time\n"
@@ -499,7 +455,7 @@ Index: ioemu/vl.c
             "\n"
             "During emulation, the following keys are useful:\n"
             "ctrl-alt-f      toggle full screen\n"
-@@ -4894,6 +4897,7 @@
+@@ -5426,6 +5427,7 @@
      QEMU_OPTION_d,
      QEMU_OPTION_vcpus,
      QEMU_OPTION_timeoffset,
@@ -507,7 +463,7 @@ Index: ioemu/vl.c
  };
  
  typedef struct QEMUOption {
-@@ -4973,6 +4977,7 @@
+@@ -5509,6 +5511,7 @@
      { "d", HAS_ARG, QEMU_OPTION_d },
      { "vcpus", 1, QEMU_OPTION_vcpus },
      { "timeoffset", HAS_ARG, QEMU_OPTION_timeoffset },
@@ -515,7 +471,7 @@ Index: ioemu/vl.c
      { NULL },
  };
  
-@@ -5678,6 +5683,9 @@
+@@ -6256,6 +6259,9 @@
              case QEMU_OPTION_timeoffset:
                  timeoffset = strtol(optarg, NULL, 0);
                  break;
@@ -527,9 +483,9 @@ Index: ioemu/vl.c
      }
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-08-04 10:35:36.629682033 +0100
-+++ ioemu/vl.h 2006-08-04 10:36:21.513475699 +0100
-@@ -159,6 +159,7 @@
+--- ioemu.orig/vl.h    2006-08-06 02:23:45.000000000 +0100
++++ ioemu/vl.h 2006-08-07 17:38:47.847289567 +0100
+@@ -167,6 +167,7 @@
  extern int kqemu_allowed;
  extern int win2k_install_hack;
  extern int usb_enabled;
@@ -537,3 +493,46 @@ Index: ioemu/vl.h
  extern int smp_cpus;
  
  /* XXX: make it dynamic */
+Index: ioemu/hw/piix_pci.c
+===================================================================
+--- ioemu.orig/hw/piix_pci.c   2006-08-06 02:29:41.000000000 +0100
++++ ioemu/hw/piix_pci.c        2006-08-07 17:38:57.480198468 +0100
+@@ -241,7 +241,7 @@
+ static uint32_t pci_bios_io_addr;
+ static uint32_t pci_bios_mem_addr;
+ /* host irqs corresponding to PCI irqs A-D */
+-static uint8_t pci_irqs[4] = { 11, 9, 11, 9 };
++static uint8_t pci_irqs[4] = { 10, 11, 10, 11 };
+ 
+ static void pci_config_writel(PCIDevice *d, uint32_t addr, uint32_t val)
+ {
+@@ -336,6 +336,14 @@
+             pci_set_io_region_addr(d, 3, 0x374);
+         }
+         break;
++    case 0x0680:
++        if (vendor_id == 0x8086 && device_id == 0x7113) {
++            /* PIIX4 ACPI PM */
++            pci_config_writew(d, 0x20, 0x0000); /* NO smb bus IO enable in 
PIIX4 */
++            pci_config_writew(d, 0x22, 0x0000);
++            goto default_map;
++        }
++        break;
+     case 0x0300:
+         if (vendor_id != 0x1234)
+             goto default_map;
+@@ -386,6 +394,14 @@
+         pic_irq = pci_irqs[pin];
+         pci_config_writeb(d, PCI_INTERRUPT_LINE, pic_irq);
+     }
++
++    if (class== 0x0680&& vendor_id == 0x8086 && device_id == 0x7113) {
++         // PIIX4 ACPI PM
++       pci_config_writew(d, 0x20, 0x0000); // NO smb bus IO enable in PIIX4
++       pci_config_writew(d, 0x22, 0x0000);
++       pci_config_writew(d, 0x3c, 0x0009); // Hardcodeed IRQ9
++       pci_config_writew(d, 0x3d, 0x0001);
++    }
+ }
+ 
+ /*
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/acpi-timer-support
--- a/tools/ioemu/patches/acpi-timer-support    Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/acpi-timer-support    Mon Aug 07 18:28:50 2006 +0100
@@ -1,7 +1,7 @@ Index: ioemu/hw/piix4acpi.c
 Index: ioemu/hw/piix4acpi.c
 ===================================================================
---- ioemu.orig/hw/piix4acpi.c  2006-08-04 10:57:28.922994985 +0100
-+++ ioemu/hw/piix4acpi.c       2006-08-04 11:35:15.177574467 +0100
+--- ioemu.orig/hw/piix4acpi.c  2006-08-06 02:24:54.262068457 +0100
++++ ioemu/hw/piix4acpi.c       2006-08-06 02:30:29.288761563 +0100
 @@ -24,31 +24,30 @@
   */
  
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/domain-destroy
--- a/tools/ioemu/patches/domain-destroy        Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/domain-destroy        Mon Aug 07 18:28:50 2006 +0100
@@ -1,7 +1,8 @@ diff -r e1dce5114e92 monitor.c
-diff -r e1dce5114e92 monitor.c
---- a/monitor.c        Mon Jun 26 16:04:15 2006 +0100
-+++ b/monitor.c        Mon Jun 26 16:04:26 2006 +0100
-@@ -306,6 +306,7 @@ static void do_info_history (void)
+Index: ioemu/monitor.c
+===================================================================
+--- ioemu.orig/monitor.c       2006-08-06 02:22:01.487319736 +0100
++++ ioemu/monitor.c    2006-08-06 02:23:02.269544103 +0100
+@@ -308,6 +308,7 @@
  
  static void do_quit(void)
  {
@@ -9,10 +10,11 @@ diff -r e1dce5114e92 monitor.c
      exit(0);
  }
  
-diff -r e1dce5114e92 target-i386-dm/helper2.c
---- a/target-i386-dm/helper2.c Mon Jun 26 16:04:15 2006 +0100
-+++ b/target-i386-dm/helper2.c Mon Jun 26 16:04:26 2006 +0100
-@@ -483,5 +483,25 @@ int main_loop(void)
+Index: ioemu/target-i386-dm/helper2.c
+===================================================================
+--- ioemu.orig/target-i386-dm/helper2.c        2006-08-06 02:22:59.251880493 
+0100
++++ ioemu/target-i386-dm/helper2.c     2006-08-06 02:23:02.270543991 +0100
+@@ -483,5 +483,25 @@
                               shared_page->vcpu_iodata[send_vcpu].dm_eport);
          }
      }
@@ -38,10 +40,11 @@ diff -r e1dce5114e92 target-i386-dm/help
 +        xc_interface_close(xcHandle);
 +    }
 +}
-diff -r e1dce5114e92 vl.h
---- a/vl.h     Mon Jun 26 16:04:15 2006 +0100
-+++ b/vl.h     Mon Jun 26 16:04:26 2006 +0100
-@@ -1098,4 +1098,7 @@ void kqemu_record_dump(void);
+Index: ioemu/vl.h
+===================================================================
+--- ioemu.orig/vl.h    2006-08-06 02:22:59.255880047 +0100
++++ ioemu/vl.h 2006-08-06 02:23:02.271543880 +0100
+@@ -1189,4 +1189,7 @@
  void kqemu_record_dump(void);
  
  extern char domain_name[];
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/domain-reset
--- a/tools/ioemu/patches/domain-reset  Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/domain-reset  Mon Aug 07 18:28:50 2006 +0100
@@ -1,7 +1,7 @@ Index: ioemu/target-i386-dm/helper2.c
 Index: ioemu/target-i386-dm/helper2.c
 ===================================================================
---- ioemu.orig/target-i386-dm/helper2.c        2006-07-27 11:16:57.527492229 
+0100
-+++ ioemu/target-i386-dm/helper2.c     2006-07-27 11:16:59.381287013 +0100
+--- ioemu.orig/target-i386-dm/helper2.c        2006-08-06 02:21:15.779415007 
+0100
++++ ioemu/target-i386-dm/helper2.c     2006-08-06 02:22:59.251880493 +0100
 @@ -123,6 +123,25 @@
  /* called from main_cpu_reset */
  void cpu_reset(CPUX86State *env)
@@ -41,9 +41,9 @@ Index: ioemu/target-i386-dm/helper2.c
          /* Wait up to 10 msec. */
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-27 11:16:59.317294097 +0100
-+++ ioemu/vl.c 2006-07-27 11:16:59.384286681 +0100
-@@ -4412,7 +4412,7 @@
+--- ioemu.orig/vl.c    2006-08-06 02:22:56.618174081 +0100
++++ ioemu/vl.c 2006-08-06 02:22:59.254880158 +0100
+@@ -4948,7 +4948,7 @@
  } QEMUResetEntry;
  
  static QEMUResetEntry *first_reset_entry;
@@ -54,9 +54,9 @@ Index: ioemu/vl.c
  
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-07-27 11:16:58.127425816 +0100
-+++ ioemu/vl.h 2006-07-27 11:16:59.384286681 +0100
-@@ -122,6 +122,7 @@
+--- ioemu.orig/vl.h    2006-08-06 02:22:01.501318175 +0100
++++ ioemu/vl.h 2006-08-06 02:22:59.255880047 +0100
+@@ -130,6 +130,7 @@
  
  void qemu_register_reset(QEMUResetHandler *func, void *opaque);
  void qemu_system_reset_request(void);
@@ -64,7 +64,7 @@ Index: ioemu/vl.h
  void qemu_system_shutdown_request(void);
  void qemu_system_powerdown_request(void);
  #if !defined(TARGET_SPARC)
-@@ -131,6 +132,8 @@
+@@ -139,6 +140,8 @@
  void qemu_system_powerdown(void);
  #endif
  
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/domain-timeoffset
--- a/tools/ioemu/patches/domain-timeoffset     Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/domain-timeoffset     Mon Aug 07 18:28:50 2006 +0100
@@ -1,7 +1,7 @@ Index: ioemu/hw/mc146818rtc.c
 Index: ioemu/hw/mc146818rtc.c
 ===================================================================
---- ioemu.orig/hw/mc146818rtc.c        2006-08-04 10:57:22.049787220 +0100
-+++ ioemu/hw/mc146818rtc.c     2006-08-04 10:57:28.677023336 +0100
+--- ioemu.orig/hw/mc146818rtc.c        2006-08-07 17:44:43.593604340 +0100
++++ ioemu/hw/mc146818rtc.c     2006-08-07 17:44:47.594168708 +0100
 @@ -178,10 +178,27 @@
      }
  }
@@ -46,9 +46,9 @@ Index: ioemu/hw/mc146818rtc.c
  static void rtc_copy_date(RTCState *s)
 Index: ioemu/hw/pc.c
 ===================================================================
---- ioemu.orig/hw/pc.c 2006-08-04 10:57:28.406054568 +0100
-+++ ioemu/hw/pc.c      2006-08-04 10:57:28.678023221 +0100
-@@ -151,7 +151,7 @@
+--- ioemu.orig/hw/pc.c 2006-08-07 17:44:47.324198106 +0100
++++ ioemu/hw/pc.c      2006-08-07 17:44:54.830380715 +0100
+@@ -159,7 +159,7 @@
  }
  
  /* hd_table must contain 4 block drivers */
@@ -57,7 +57,7 @@ Index: ioemu/hw/pc.c
  {
      RTCState *s = rtc_state;
      int val;
-@@ -162,6 +162,7 @@
+@@ -170,6 +170,7 @@
  
      /* set the CMOS date */
      time(&ti);
@@ -65,7 +65,7 @@ Index: ioemu/hw/pc.c
      if (rtc_utc)
          tm = gmtime(&ti);
      else
-@@ -613,7 +614,7 @@
+@@ -619,7 +620,7 @@
  static void pc_init1(uint64_t ram_size, int vga_ram_size, int boot_device,
                       DisplayState *ds, const char **fd_filename, int snapshot,
                       const char *kernel_filename, const char *kernel_cmdline,
@@ -74,7 +74,7 @@ Index: ioemu/hw/pc.c
                       int pci_enabled)
  {
  #ifndef NOBIOS
-@@ -864,7 +865,7 @@
+@@ -871,7 +872,7 @@
  
      floppy_controller = fdctrl_init(6, 2, 0, 0x3f0, fd_table);
  
@@ -82,8 +82,8 @@ Index: ioemu/hw/pc.c
 +    cmos_init(ram_size, boot_device, bs_table, timeoffset);
  
      if (pci_enabled && usb_enabled) {
-         usb_uhci_init(pci_bus, usb_root_ports);
-@@ -883,12 +884,13 @@
+         usb_uhci_init(pci_bus, piix3_devfn + 2);
+@@ -912,12 +913,13 @@
                          int snapshot, 
                          const char *kernel_filename, 
                          const char *kernel_cmdline,
@@ -99,7 +99,7 @@ Index: ioemu/hw/pc.c
  }
  
  static void pc_init_isa(uint64_t ram_size, int vga_ram_size, int boot_device,
-@@ -896,12 +898,13 @@
+@@ -925,12 +927,13 @@
                          int snapshot, 
                          const char *kernel_filename, 
                          const char *kernel_cmdline,
@@ -117,9 +117,9 @@ Index: ioemu/hw/pc.c
  QEMUMachine pc_machine = {
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-08-04 10:57:28.545038549 +0100
-+++ ioemu/vl.c 2006-08-04 10:57:28.680022990 +0100
-@@ -164,6 +164,8 @@
+--- ioemu.orig/vl.c    2006-08-07 17:44:47.464182863 +0100
++++ ioemu/vl.c 2006-08-07 17:44:54.830380715 +0100
+@@ -163,6 +163,8 @@
  
  int xc_handle;
  
@@ -128,7 +128,7 @@ Index: ioemu/vl.c
  char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
  extern int domid;
  
-@@ -4800,6 +4802,7 @@
+@@ -5338,6 +5340,7 @@
  #endif
             "-loadvm file    start right away with a saved state (loadvm in 
monitor)\n"
           "-vnc display    start a VNC server on display\n"
@@ -136,7 +136,7 @@ Index: ioemu/vl.c
             "\n"
             "During emulation, the following keys are useful:\n"
             "ctrl-alt-f      toggle full screen\n"
-@@ -4890,6 +4893,7 @@
+@@ -5422,6 +5425,7 @@
  
      QEMU_OPTION_d,
      QEMU_OPTION_vcpus,
@@ -144,7 +144,7 @@ Index: ioemu/vl.c
  };
  
  typedef struct QEMUOption {
-@@ -4968,6 +4972,7 @@
+@@ -5504,6 +5508,7 @@
      
      { "d", HAS_ARG, QEMU_OPTION_d },
      { "vcpus", 1, QEMU_OPTION_vcpus },
@@ -152,7 +152,7 @@ Index: ioemu/vl.c
      { NULL },
  };
  
-@@ -5670,6 +5675,9 @@
+@@ -6248,6 +6253,9 @@
                  vcpus = atoi(optarg);
                  fprintf(logfile, "qemu: the number of cpus is %d\n", vcpus);
                  break;
@@ -162,7 +162,7 @@ Index: ioemu/vl.c
              }
          }
      }
-@@ -6007,7 +6015,8 @@
+@@ -6489,7 +6497,8 @@
  
      machine->init(ram_size, vga_ram_size, boot_device,
                    ds, fd_filename, snapshot,
@@ -170,13 +170,13 @@ Index: ioemu/vl.c
 +                  kernel_filename, kernel_cmdline, initrd_filename,
 +                  timeoffset);
  
-     gui_timer = qemu_new_timer(rt_clock, gui_update, NULL);
-     qemu_mod_timer(gui_timer, qemu_get_clock(rt_clock));
+     /* init USB devices */
+     if (usb_enabled) {
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-08-04 10:57:28.411053992 +0100
-+++ ioemu/vl.h 2006-08-04 10:57:28.681022875 +0100
-@@ -556,7 +556,7 @@
+--- ioemu.orig/vl.h    2006-08-07 17:44:47.329197562 +0100
++++ ioemu/vl.h 2006-08-07 17:44:54.830380715 +0100
+@@ -575,7 +575,7 @@
                                   int boot_device,
               DisplayState *ds, const char **fd_filename, int snapshot,
               const char *kernel_filename, const char *kernel_cmdline,
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/hypervisor-pit
--- a/tools/ioemu/patches/hypervisor-pit        Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/hypervisor-pit        Mon Aug 07 18:28:50 2006 +0100
@@ -1,20 +1,20 @@ Index: ioemu/Makefile.target
 Index: ioemu/Makefile.target
 ===================================================================
---- ioemu.orig/Makefile.target 2006-07-27 11:16:58.970332506 +0100
-+++ ioemu/Makefile.target      2006-07-27 11:16:59.758245283 +0100
-@@ -333,7 +333,7 @@
+--- ioemu.orig/Makefile.target 2006-08-06 02:22:26.380544784 +0100
++++ ioemu/Makefile.target      2006-08-06 02:23:23.059226607 +0100
+@@ -354,7 +354,7 @@
  ifeq ($(TARGET_BASE_ARCH), i386)
  # Hardware support
  VL_OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
 -VL_OBJS+= fdc.o mc146818rtc.o serial.o i8254.o pcspk.o pc.o
 +VL_OBJS+= fdc.o mc146818rtc.o serial.o pc.o
- VL_OBJS+= cirrus_vga.o mixeng.o parallel.o
+ VL_OBJS+= cirrus_vga.o mixeng.o parallel.o acpi.o piix_pci.o
+ VL_OBJS+= usb-uhci.o
  DEFINES += -DHAS_AUDIO
- endif
 Index: ioemu/hw/pc.c
 ===================================================================
---- ioemu.orig/hw/pc.c 2006-07-27 11:16:59.036325200 +0100
-+++ ioemu/hw/pc.c      2006-07-27 11:16:59.759245173 +0100
+--- ioemu.orig/hw/pc.c 2006-08-06 02:22:35.588518336 +0100
++++ ioemu/hw/pc.c      2006-08-06 02:23:07.875919141 +0100
 @@ -38,7 +38,9 @@
  
  static fdctrl_t *floppy_controller;
@@ -25,7 +25,7 @@ Index: ioemu/hw/pc.c
  #ifndef CONFIG_DM
  static IOAPICState *ioapic;
  #endif /* !CONFIG_DM */
-@@ -803,8 +805,10 @@
+@@ -810,8 +812,10 @@
      }
  #endif /* !CONFIG_DM */
      isa_pic = pic_init(pic_irq_request, first_cpu);
@@ -38,9 +38,9 @@ Index: ioemu/hw/pc.c
          pic_set_alt_irq_func(isa_pic, ioapic_set_irq, ioapic);
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-27 11:16:59.614261222 +0100
-+++ ioemu/vl.c 2006-07-27 11:16:59.762244841 +0100
-@@ -5034,6 +5034,7 @@
+--- ioemu.orig/vl.c    2006-08-06 02:23:05.216215627 +0100
++++ ioemu/vl.c 2006-08-06 02:23:07.878918807 +0100
+@@ -5570,6 +5570,7 @@
  
  #ifdef HAS_AUDIO
  struct soundhw soundhw[] = {
@@ -48,7 +48,7 @@ Index: ioemu/vl.c
  #ifdef TARGET_I386
      {
          "pcspk",
-@@ -5043,6 +5044,7 @@
+@@ -5579,6 +5580,7 @@
          { .init_isa = pcspk_audio_init }
      },
  #endif
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/ide-hd-multithread
--- a/tools/ioemu/patches/ide-hd-multithread    Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/ide-hd-multithread    Mon Aug 07 18:28:50 2006 +0100
@@ -1,6 +1,7 @@ diff -r d711aa4fa261 hw/ide.c
-diff -r d711aa4fa261 hw/ide.c
---- a/hw/ide.c Fri Jun 16 10:13:37 2006 +0200
-+++ b/hw/ide.c Fri Jun 16 10:30:28 2006 +0200
+Index: ioemu/hw/ide.c
+===================================================================
+--- ioemu.orig/hw/ide.c        2006-08-06 02:03:50.520919718 +0100
++++ ioemu/hw/ide.c     2006-08-06 02:23:41.153209614 +0100
 @@ -22,6 +22,7 @@
   * THE SOFTWARE.
   */
@@ -9,7 +10,7 @@ diff -r d711aa4fa261 hw/ide.c
  
  /* debug IDE devices */
  //#define DEBUG_IDE
-@@ -390,6 +391,48 @@ typedef struct PCIIDEState {
+@@ -390,6 +391,48 @@
      int type; /* see IDE_TYPE_xxx */
  } PCIIDEState;
  
@@ -58,7 +59,7 @@ diff -r d711aa4fa261 hw/ide.c
  static void ide_dma_start(IDEState *s, IDEDMAFunc *dma_cb);
  
  static void padstr(char *str, const char *src, int len)
-@@ -695,7 +738,9 @@ static int ide_read_dma_cb(IDEState *s,
+@@ -695,7 +738,9 @@
      }
      if (s->io_buffer_index >= s->io_buffer_size && s->nsector == 0) {
          s->status = READY_STAT | SEEK_STAT;
@@ -68,7 +69,7 @@ diff -r d711aa4fa261 hw/ide.c
  #ifdef DEBUG_IDE_ATAPI
          printf("dma status=0x%x\n", s->status);
  #endif
-@@ -795,7 +840,11 @@ static int ide_write_dma_cb(IDEState *s,
+@@ -795,7 +840,11 @@
                              qemu_get_clock(vm_clock) + (ticks_per_sec / 
1000));
                  } else 
  #endif
@@ -80,7 +81,7 @@ diff -r d711aa4fa261 hw/ide.c
                  return 0;
              }
              if (n > MAX_MULT_SECTORS)
-@@ -1046,7 +1095,9 @@ static int ide_atapi_cmd_read_dma_cb(IDE
+@@ -1046,7 +1095,9 @@
      if (s->packet_transfer_size <= 0) {
          s->status = READY_STAT;
          s->nsector = (s->nsector & ~7) | ATAPI_INT_REASON_IO | 
ATAPI_INT_REASON_CD;
@@ -90,7 +91,7 @@ diff -r d711aa4fa261 hw/ide.c
  #ifdef DEBUG_IDE_ATAPI
          printf("dma status=0x%x\n", s->status);
  #endif
-@@ -2219,9 +2270,30 @@ static void ide_map(PCIDevice *pci_dev, 
+@@ -2103,9 +2154,30 @@
      }
  }
  
@@ -110,18 +111,18 @@ diff -r d711aa4fa261 hw/ide.c
  /* XXX: full callback usage to prepare non blocking I/Os support -
     error handling */
 +#ifdef DMA_MULTI_THREAD
- static void ide_dma_loop(BMDMAState *bm)
++static void ide_dma_loop(BMDMAState *bm)
 +{
 +    write(file_pipes[1], &bm, sizeof(bm));
 +}
 +static void dma_thread_loop(BMDMAState *bm)
 +#else  /* DMA_MULTI_THREAD */
-+static void ide_dma_loop(BMDMAState *bm)
+ static void ide_dma_loop(BMDMAState *bm)
 +#endif /* !DMA_MULTI_THREAD */
  {
      struct {
          uint32_t addr;
-@@ -2257,10 +2329,7 @@ static void ide_dma_loop(BMDMAState *bm)
+@@ -2141,10 +2213,7 @@
      }
      /* end of transfer */
   the_end:
@@ -133,7 +134,7 @@ diff -r d711aa4fa261 hw/ide.c
  }
  
  static void ide_dma_start(IDEState *s, IDEDMAFunc *dma_cb)
-@@ -2486,6 +2555,9 @@ void pci_cmd646_ide_init(PCIBus *bus, Bl
+@@ -2370,6 +2439,9 @@
                cmd646_set_irq, d, 0);
      ide_init2(&d->ide_if[2], hd_table[2], hd_table[3],
                cmd646_set_irq, d, 1);
@@ -143,7 +144,7 @@ diff -r d711aa4fa261 hw/ide.c
  }
  
  /* hd_table must contain 4 block drivers */
-@@ -2521,6 +2593,9 @@ void pci_piix3_ide_init(PCIBus *bus, Blo
+@@ -2405,6 +2477,9 @@
                pic_set_irq_new, isa_pic, 15);
      ide_init_ioport(&d->ide_if[0], 0x1f0, 0x3f6);
      ide_init_ioport(&d->ide_if[2], 0x170, 0x376);
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/ioemu-ia64
--- a/tools/ioemu/patches/ioemu-ia64    Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/ioemu-ia64    Mon Aug 07 18:28:50 2006 +0100
@@ -1,7 +1,7 @@ Index: ioemu/hw/iommu.c
 Index: ioemu/hw/iommu.c
 ===================================================================
---- ioemu.orig/hw/iommu.c      2006-08-04 10:57:22.606723023 +0100
-+++ ioemu/hw/iommu.c   2006-08-04 10:57:27.489160251 +0100
+--- ioemu.orig/hw/iommu.c      2006-08-06 01:55:03.240628184 +0100
++++ ioemu/hw/iommu.c   2006-08-06 02:18:54.843126039 +0100
 @@ -82,7 +82,11 @@
  #define IOPTE_VALID         0x00000002 /* IOPTE is valid */
  #define IOPTE_WAZ           0x00000001 /* Write as zeros */
@@ -16,8 +16,8 @@ Index: ioemu/hw/iommu.c
  
 Index: ioemu/cpu-all.h
 ===================================================================
---- ioemu.orig/cpu-all.h       2006-08-04 10:57:27.123202432 +0100
-+++ ioemu/cpu-all.h    2006-08-04 10:57:27.490160136 +0100
+--- ioemu.orig/cpu-all.h       2006-08-06 02:17:09.392881406 +0100
++++ ioemu/cpu-all.h    2006-08-06 02:18:54.844125928 +0100
 @@ -835,6 +835,31 @@
                  :"=m" (*(volatile long *)addr)
                  :"dIr" (nr));
@@ -52,9 +52,9 @@ Index: ioemu/cpu-all.h
  /* memory API */
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-08-04 10:57:27.419168318 +0100
-+++ ioemu/vl.c 2006-08-04 10:57:27.493159790 +0100
-@@ -5567,6 +5567,11 @@
+--- ioemu.orig/vl.c    2006-08-06 02:18:45.608155528 +0100
++++ ioemu/vl.c 2006-08-06 02:18:54.847125593 +0100
+@@ -6140,6 +6140,11 @@
      /* init the memory */
      phys_ram_size = ram_size + vga_ram_size + bios_size;
  
@@ -66,7 +66,7 @@ Index: ioemu/vl.c
  #ifdef CONFIG_DM
  
      nr_pages = ram_size/PAGE_SIZE;
-@@ -5578,6 +5583,7 @@
+@@ -6151,6 +6156,7 @@
          exit(-1);
      }
  
@@ -74,7 +74,7 @@ Index: ioemu/vl.c
      if (xc_get_pfn_list(xc_handle, domid, page_array, nr_pages) != nr_pages) {
          fprintf(logfile, "xc_get_pfn_list returned error %d\n", errno);
          exit(-1);
-@@ -5600,6 +5606,41 @@
+@@ -6173,6 +6179,41 @@
  
      free(page_array);
  
@@ -115,11 +115,11 @@ Index: ioemu/vl.c
 +#endif
  #else  /* !CONFIG_DM */
  
- #ifdef CONFIG_SOFTMMU
+     phys_ram_base = qemu_vmalloc(phys_ram_size);
 Index: ioemu/target-i386-dm/exec-dm.c
 ===================================================================
---- ioemu.orig/target-i386-dm/exec-dm.c        2006-08-04 10:57:26.738246803 
+0100
-+++ ioemu/target-i386-dm/exec-dm.c     2006-08-04 10:57:27.493159790 +0100
+--- ioemu.orig/target-i386-dm/exec-dm.c        2006-08-06 02:15:01.776108064 
+0100
++++ ioemu/target-i386-dm/exec-dm.c     2006-08-06 02:18:54.848125482 +0100
 @@ -341,6 +341,23 @@
      return io_mem_read[io_index >> IO_MEM_SHIFT];
  }
@@ -156,8 +156,8 @@ Index: ioemu/target-i386-dm/exec-dm.c
                  memset(buf, 0xff, len);
 Index: ioemu/exec-all.h
 ===================================================================
---- ioemu.orig/exec-all.h      2006-08-04 10:57:26.651256830 +0100
-+++ ioemu/exec-all.h   2006-08-04 10:57:27.494159675 +0100
+--- ioemu.orig/exec-all.h      2006-08-06 02:14:09.796902750 +0100
++++ ioemu/exec-all.h   2006-08-06 02:18:54.848125482 +0100
 @@ -462,12 +462,13 @@
  }
  #endif
@@ -177,8 +177,8 @@ Index: ioemu/exec-all.h
  
 Index: ioemu/target-i386-dm/cpu.h
 ===================================================================
---- ioemu.orig/target-i386-dm/cpu.h    2006-08-04 10:57:26.737246918 +0100
-+++ ioemu/target-i386-dm/cpu.h 2006-08-04 10:57:27.494159675 +0100
+--- ioemu.orig/target-i386-dm/cpu.h    2006-08-06 02:15:01.776108064 +0100
++++ ioemu/target-i386-dm/cpu.h 2006-08-06 02:18:54.848125482 +0100
 @@ -80,7 +80,11 @@
  /* helper2.c */
  int main_loop(void);
@@ -194,7 +194,7 @@ Index: ioemu/ia64_intrinsic.h
 Index: ioemu/ia64_intrinsic.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ ioemu/ia64_intrinsic.h     2006-08-04 10:57:27.495159560 +0100
++++ ioemu/ia64_intrinsic.h     2006-08-06 02:18:54.849125370 +0100
 @@ -0,0 +1,276 @@
 +#ifndef IA64_INTRINSIC_H
 +#define IA64_INTRINSIC_H
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/qemu-64bit
--- a/tools/ioemu/patches/qemu-64bit    Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/qemu-64bit    Mon Aug 07 18:28:50 2006 +0100
@@ -1,7 +1,7 @@ Index: ioemu/cpu-all.h
 Index: ioemu/cpu-all.h
 ===================================================================
---- ioemu.orig/cpu-all.h       2006-07-26 13:19:49.515051864 +0100
-+++ ioemu/cpu-all.h    2006-07-26 13:19:49.563046860 +0100
+--- ioemu.orig/cpu-all.h       2006-08-06 02:14:09.796902750 +0100
++++ ioemu/cpu-all.h    2006-08-06 02:15:39.707879423 +0100
 @@ -822,7 +822,7 @@
  
  /* memory API */
@@ -13,9 +13,9 @@ Index: ioemu/cpu-all.h
  extern uint8_t *phys_ram_dirty;
 Index: ioemu/hw/pc.c
 ===================================================================
---- ioemu.orig/hw/pc.c 2006-07-26 13:19:49.516051760 +0100
-+++ ioemu/hw/pc.c      2006-07-26 13:19:49.564046755 +0100
-@@ -147,7 +147,7 @@
+--- ioemu.orig/hw/pc.c 2006-08-06 02:14:09.797902638 +0100
++++ ioemu/hw/pc.c      2006-08-06 02:15:39.708879311 +0100
+@@ -155,7 +155,7 @@
  }
  
  /* hd_table must contain 4 block drivers */
@@ -24,7 +24,7 @@ Index: ioemu/hw/pc.c
  {
      RTCState *s = rtc_state;
      int val;
-@@ -604,7 +604,7 @@
+@@ -610,7 +610,7 @@
  }
  
  /* PC hardware initialisation */
@@ -33,7 +33,7 @@ Index: ioemu/hw/pc.c
                       DisplayState *ds, const char **fd_filename, int snapshot,
                       const char *kernel_filename, const char *kernel_cmdline,
                       const char *initrd_filename,
-@@ -853,7 +853,7 @@
+@@ -882,7 +882,7 @@
      }
  }
  
@@ -42,7 +42,7 @@ Index: ioemu/hw/pc.c
                          DisplayState *ds, const char **fd_filename, 
                          int snapshot, 
                          const char *kernel_filename, 
-@@ -866,7 +866,7 @@
+@@ -895,7 +895,7 @@
               initrd_filename, 1);
  }
  
@@ -53,9 +53,9 @@ Index: ioemu/hw/pc.c
                          const char *kernel_filename, 
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-26 13:19:49.552048007 +0100
-+++ ioemu/vl.c 2006-07-26 13:19:49.566046547 +0100
-@@ -123,7 +123,7 @@
+--- ioemu.orig/vl.c    2006-08-06 02:15:31.040845624 +0100
++++ ioemu/vl.c 2006-08-06 02:15:39.711878977 +0100
+@@ -122,7 +122,7 @@
  const char* keyboard_layout = NULL;
  int64_t ticks_per_sec;
  int boot_device = 'c';
@@ -64,7 +64,7 @@ Index: ioemu/vl.c
  int pit_min_timer_count = 0;
  int nb_nics;
  NICInfo nd_table[MAX_NICS];
-@@ -5320,7 +5320,7 @@
+@@ -5895,7 +5895,7 @@
                  help();
                  break;
              case QEMU_OPTION_m:
@@ -75,9 +75,9 @@ Index: ioemu/vl.c
                  if (ram_size > PHYS_RAM_MAX_SIZE) {
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-07-26 13:19:49.552048007 +0100
-+++ ioemu/vl.h 2006-07-26 13:19:49.567046443 +0100
-@@ -138,7 +138,7 @@
+--- ioemu.orig/vl.h    2006-08-06 02:15:10.368150219 +0100
++++ ioemu/vl.h 2006-08-06 02:15:39.711878977 +0100
+@@ -146,7 +146,7 @@
  extern int xc_handle;
  extern int domid;
  
@@ -86,7 +86,7 @@ Index: ioemu/vl.h
  extern int bios_size;
  extern int rtc_utc;
  extern int cirrus_vga_enabled;
-@@ -542,7 +542,7 @@
+@@ -561,7 +561,7 @@
  
  #ifndef QEMU_TOOL
  
@@ -97,9 +97,9 @@ Index: ioemu/vl.h
               const char *kernel_filename, const char *kernel_cmdline,
 Index: ioemu/hw/vga.c
 ===================================================================
---- ioemu.orig/hw/vga.c        2006-07-26 13:19:49.549048319 +0100
-+++ ioemu/hw/vga.c     2006-07-26 13:20:17.956085603 +0100
-@@ -1293,7 +1293,8 @@
+--- ioemu.orig/hw/vga.c        2006-08-06 02:15:10.364150665 +0100
++++ ioemu/hw/vga.c     2006-08-06 02:15:39.712878866 +0100
+@@ -1365,7 +1365,8 @@
  static void vga_draw_graphic(VGAState *s, int full_update)
  {
      int y1, y, update, page_min, page_max, linesize, y_start, double_scan, 
mask;
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/qemu-allow-disable-sdl
--- a/tools/ioemu/patches/qemu-allow-disable-sdl        Mon Aug 07 18:27:27 
2006 +0100
+++ b/tools/ioemu/patches/qemu-allow-disable-sdl        Mon Aug 07 18:28:50 
2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/configure
 Index: ioemu/configure
 ===================================================================
---- ioemu.orig/configure       2006-08-03 19:19:38.000000000 +0100
-+++ ioemu/configure    2006-08-03 23:38:19.000000000 +0100
-@@ -226,8 +226,6 @@
+--- ioemu.orig/configure       2006-08-06 02:15:01.771108621 +0100
++++ ioemu/configure    2006-08-06 02:42:26.213918476 +0100
+@@ -228,8 +228,6 @@
    ;;
    --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
    ;;
@@ -11,7 +11,7 @@ Index: ioemu/configure
    --disable-gcc-check) check_gcc="no"
    ;;
    --disable-system) softmmu="no"
-@@ -736,14 +734,6 @@
+@@ -758,14 +756,6 @@
    target_user_only="yes"
  fi
  
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/qemu-bugfixes
--- a/tools/ioemu/patches/qemu-bugfixes Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/qemu-bugfixes Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/console.c
 Index: ioemu/console.c
 ===================================================================
---- ioemu.orig/console.c       2006-07-27 11:16:53.732912290 +0100
-+++ ioemu/console.c    2006-07-27 11:16:57.753467214 +0100
-@@ -449,7 +449,7 @@
+--- ioemu.orig/console.c       2006-08-06 02:03:45.803444993 +0100
++++ ioemu/console.c    2006-08-06 02:15:48.546894051 +0100
+@@ -505,7 +505,7 @@
              c++;
          }
      }
@@ -11,7 +11,7 @@ Index: ioemu/console.c
      s->cells = cells;
  }
  
-@@ -954,11 +954,21 @@
+@@ -1032,11 +1032,21 @@
      return !active_console->text_console;
  }
  
@@ -34,8 +34,8 @@ Index: ioemu/console.c
      static int color_inited;
  
      chr = qemu_mallocz(sizeof(CharDriverState));
-@@ -976,12 +986,7 @@
- 
+@@ -1058,12 +1068,7 @@
+     
      if (!color_inited) {
          color_inited = 1;
 -        for(j = 0; j < 2; j++) {
@@ -48,23 +48,11 @@ Index: ioemu/console.c
      }
      s->y_displayed = 0;
      s->y_base = 0;
-Index: ioemu/usb-linux.c
-===================================================================
---- ioemu.orig/usb-linux.c     2006-07-27 11:16:53.732912290 +0100
-+++ ioemu/usb-linux.c  2006-07-27 11:16:57.754467103 +0100
-@@ -26,6 +26,7 @@
- #if defined(__linux__)
- #include <dirent.h>
- #include <sys/ioctl.h>
-+#define __user /* new versions of usbdevice_fs.h use this private attribute */
- #include <linux/usbdevice_fs.h>
- #include <linux/version.h>
- 
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-27 11:16:57.681475183 +0100
-+++ ioemu/vl.c 2006-07-27 11:17:33.279534373 +0100
-@@ -3201,6 +3201,7 @@
+--- ioemu.orig/vl.c    2006-08-06 02:15:39.711878977 +0100
++++ ioemu/vl.c 2006-08-06 02:15:48.550893605 +0100
+@@ -3671,6 +3671,7 @@
              if (net_tap_fd_init(vlan, fd))
                  ret = 0;
          } else {
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/qemu-cleanup
--- a/tools/ioemu/patches/qemu-cleanup  Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/qemu-cleanup  Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/hw/vga.c
 Index: ioemu/hw/vga.c
 ===================================================================
---- ioemu.orig/hw/vga.c        2006-07-12 11:33:54.853085901 +0100
-+++ ioemu/hw/vga.c     2006-07-12 11:35:00.780818943 +0100
-@@ -1563,7 +1563,9 @@
+--- ioemu.orig/hw/vga.c        2006-08-06 02:03:51.906765409 +0100
++++ ioemu/hw/vga.c     2006-08-06 02:15:10.364150665 +0100
+@@ -1622,7 +1622,9 @@
  static void vga_save(QEMUFile *f, void *opaque)
  {
      VGAState *s = opaque;
@@ -12,7 +12,7 @@ Index: ioemu/hw/vga.c
  
      qemu_put_be32s(f, &s->latch);
      qemu_put_8s(f, &s->sr_index);
-@@ -1604,7 +1606,10 @@
+@@ -1663,7 +1665,10 @@
  static int vga_load(QEMUFile *f, void *opaque, int version_id)
  {
      VGAState *s = opaque;
@@ -26,8 +26,8 @@ Index: ioemu/hw/vga.c
          return -EINVAL;
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-12 11:35:00.708827963 +0100
-+++ ioemu/vl.c 2006-07-12 11:35:00.783818568 +0100
+--- ioemu.orig/vl.c    2006-08-06 02:15:01.774108287 +0100
++++ ioemu/vl.c 2006-08-06 02:15:31.040845624 +0100
 @@ -39,6 +39,7 @@
  #include <sys/ioctl.h>
  #include <sys/socket.h>
@@ -36,7 +36,7 @@ Index: ioemu/vl.c
  #include <dirent.h>
  #include <netdb.h>
  #ifdef _BSD
-@@ -4777,7 +4778,9 @@
+@@ -5308,7 +5309,9 @@
      QEMU_OPTION_d,
      QEMU_OPTION_hdachs,
      QEMU_OPTION_L,
@@ -46,7 +46,7 @@ Index: ioemu/vl.c
      QEMU_OPTION_k,
      QEMU_OPTION_localtime,
      QEMU_OPTION_cirrusvga,
-@@ -4844,7 +4847,9 @@
+@@ -5379,7 +5382,9 @@
      { "d", HAS_ARG, QEMU_OPTION_d },
      { "hdachs", HAS_ARG, QEMU_OPTION_hdachs },
      { "L", HAS_ARG, QEMU_OPTION_L },
@@ -56,10 +56,10 @@ Index: ioemu/vl.c
  #ifdef USE_KQEMU
      { "no-kqemu", 0, QEMU_OPTION_no_kqemu },
      { "kernel-kqemu", 0, QEMU_OPTION_kernel_kqemu },
-@@ -5274,9 +5279,11 @@
-             case QEMU_OPTION_fdb:
-                 fd_filename[1] = optarg;
+@@ -5849,9 +5854,11 @@
+                 fd_bootchk = 0;
                  break;
+ #endif
 +#ifdef USE_CODE_COPY
              case QEMU_OPTION_no_code_copy:
                  code_copy_enabled = 0;
@@ -70,9 +70,9 @@ Index: ioemu/vl.c
                      fprintf(stderr, "qemu: too many network clients\n");
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-07-12 11:35:00.709827838 +0100
-+++ ioemu/vl.h 2006-07-12 11:35:00.784818442 +0100
-@@ -892,7 +892,7 @@
+--- ioemu.orig/vl.h    2006-08-06 02:15:01.775108175 +0100
++++ ioemu/vl.h 2006-08-06 02:15:10.368150219 +0100
+@@ -957,7 +957,7 @@
               unsigned long vram_offset, int vram_size, int width, int height);
  
  /* slavio_intctl.c */
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/qemu-dm
--- a/tools/ioemu/patches/qemu-dm       Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/qemu-dm       Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/Makefile.target
 Index: ioemu/Makefile.target
 ===================================================================
---- ioemu.orig/Makefile.target 2006-07-14 15:50:41.320748096 +0100
-+++ ioemu/Makefile.target      2006-07-14 15:55:04.753733845 +0100
-@@ -285,7 +285,7 @@
+--- ioemu.orig/Makefile.target 2006-08-06 02:14:04.797460093 +0100
++++ ioemu/Makefile.target      2006-08-06 02:14:09.794902973 +0100
+@@ -302,7 +302,7 @@
  endif
  
  # must use static linking to avoid leaving stuff in virtual address space
@@ -13,8 +13,8 @@ Index: ioemu/Makefile.target
  VL_OBJS+=tap-win32.o
 Index: ioemu/configure
 ===================================================================
---- ioemu.orig/configure       2006-07-14 15:50:41.320748096 +0100
-+++ ioemu/configure    2006-07-14 15:55:04.753733845 +0100
+--- ioemu.orig/configure       2006-08-06 02:14:04.797460093 +0100
++++ ioemu/configure    2006-08-06 02:14:09.795902861 +0100
 @@ -75,8 +75,8 @@
  bigendian="no"
  mingw32="no"
@@ -26,7 +26,7 @@ Index: ioemu/configure
  adlib="no"
  oss="no"
  dsound="no"
-@@ -727,6 +727,8 @@
+@@ -749,6 +749,8 @@
  if expr $target : '.*-softmmu' > /dev/null ; then
    target_softmmu="yes"
  fi
@@ -37,8 +37,8 @@ Index: ioemu/configure
    target_user_only="yes"
 Index: ioemu/cpu-all.h
 ===================================================================
---- ioemu.orig/cpu-all.h       2006-07-14 15:50:30.488983278 +0100
-+++ ioemu/cpu-all.h    2006-07-14 15:55:04.544757636 +0100
+--- ioemu.orig/cpu-all.h       2006-08-06 02:14:04.797460093 +0100
++++ ioemu/cpu-all.h    2006-08-06 02:14:09.796902750 +0100
 @@ -690,7 +690,9 @@
  void page_set_flags(target_ulong start, target_ulong end, int flags);
  void page_unprotect_range(target_ulong data, target_ulong data_size);
@@ -64,8 +64,8 @@ Index: ioemu/cpu-all.h
  void cpu_dump_state(CPUState *env, FILE *f, 
 Index: ioemu/disas.h
 ===================================================================
---- ioemu.orig/disas.h 2006-07-14 15:50:30.489983164 +0100
-+++ ioemu/disas.h      2006-07-14 15:50:41.334746500 +0100
+--- ioemu.orig/disas.h 2006-08-06 02:14:04.797460093 +0100
++++ ioemu/disas.h      2006-08-06 02:14:09.796902750 +0100
 @@ -1,6 +1,7 @@
  #ifndef _QEMU_DISAS_H
  #define _QEMU_DISAS_H
@@ -83,8 +83,8 @@ Index: ioemu/disas.h
  #endif /* _QEMU_DISAS_H */
 Index: ioemu/exec-all.h
 ===================================================================
---- ioemu.orig/exec-all.h      2006-07-14 15:50:30.490983050 +0100
-+++ ioemu/exec-all.h   2006-07-14 15:50:41.335746386 +0100
+--- ioemu.orig/exec-all.h      2006-08-06 02:14:04.798459982 +0100
++++ ioemu/exec-all.h   2006-08-06 02:14:09.796902750 +0100
 @@ -509,7 +509,7 @@
  
  extern int tb_invalidated_flag;
@@ -105,17 +105,17 @@ Index: ioemu/exec-all.h
      return addr;
 Index: ioemu/hw/pc.c
 ===================================================================
---- ioemu.orig/hw/pc.c 2006-07-14 15:50:30.491982936 +0100
-+++ ioemu/hw/pc.c      2006-07-14 15:55:04.543757750 +0100
-@@ -65,6 +65,7 @@
-     return qemu_get_clock(vm_clock);
+--- ioemu.orig/hw/pc.c 2006-08-06 02:14:04.797460093 +0100
++++ ioemu/hw/pc.c      2006-08-06 02:14:09.797902638 +0100
+@@ -73,6 +73,7 @@
+     }
  }
  
 +#ifndef CONFIG_DM
  /* IRQ handling */
  int cpu_get_pic_interrupt(CPUState *env)
  {
-@@ -81,6 +82,7 @@
+@@ -89,6 +90,7 @@
      intno = pic_read_irq(isa_pic);
      return intno;
  }
@@ -123,7 +123,7 @@ Index: ioemu/hw/pc.c
  
  static void pic_irq_request(void *opaque, int level)
  {
-@@ -394,6 +396,7 @@
+@@ -400,6 +402,7 @@
  
  /*************************************************/
  
@@ -131,7 +131,7 @@ Index: ioemu/hw/pc.c
  static void putb(uint8_t **pp, int val)
  {
      uint8_t *q;
-@@ -540,6 +543,7 @@
+@@ -546,6 +549,7 @@
      float_pointer_struct[10] = 
          -mpf_checksum(float_pointer_struct, q - float_pointer_struct);
  }
@@ -139,7 +139,7 @@ Index: ioemu/hw/pc.c
  
  
  static const int ide_iobase[2] = { 0x1f0, 0x170 };
-@@ -619,12 +623,14 @@
+@@ -626,12 +630,14 @@
      /* init CPUs */
      for(i = 0; i < smp_cpus; i++) {
          env = cpu_init();
@@ -154,7 +154,7 @@ Index: ioemu/hw/pc.c
          register_savevm("cpu", i, 3, cpu_save, cpu_load, env);
          qemu_register_reset(main_cpu_reset, env);
          if (pci_enabled) {
-@@ -683,6 +689,7 @@
+@@ -690,6 +696,7 @@
      
      bochs_bios_init();
  
@@ -162,7 +162,7 @@ Index: ioemu/hw/pc.c
      if (linux_boot) {
          uint8_t bootsect[512];
          uint8_t old_bootsect[512];
-@@ -738,6 +745,7 @@
+@@ -745,6 +752,7 @@
          /* loader type */
          stw_raw(phys_ram_base + KERNEL_PARAMS_ADDR + 0x210, 0x01);
      }
@@ -170,7 +170,7 @@ Index: ioemu/hw/pc.c
  
      if (pci_enabled) {
          pci_bus = i440fx_init();
-@@ -776,9 +784,11 @@
+@@ -783,9 +791,11 @@
      isa_pic = pic_init(pic_irq_request, first_cpu);
      pit = pit_init(0x40, 0);
      pcspk_init(pit);
@@ -184,8 +184,8 @@ Index: ioemu/hw/pc.c
          if (serial_hds[i]) {
 Index: ioemu/hw/vga_int.h
 ===================================================================
---- ioemu.orig/hw/vga_int.h    2006-07-14 15:50:30.491982936 +0100
-+++ ioemu/hw/vga_int.h 2006-07-14 15:55:02.931941245 +0100
+--- ioemu.orig/hw/vga_int.h    2006-08-06 02:14:04.797460093 +0100
++++ ioemu/hw/vga_int.h 2006-08-06 02:14:09.797902638 +0100
 @@ -28,7 +28,7 @@
  #define ST01_DISP_ENABLE    0x01
  
@@ -193,12 +193,12 @@ Index: ioemu/hw/vga_int.h
 -#define CONFIG_BOCHS_VBE
 +//#define CONFIG_BOCHS_VBE
  
- #define VBE_DISPI_MAX_XRES              1024
- #define VBE_DISPI_MAX_YRES              768
+ #define VBE_DISPI_MAX_XRES              1600
+ #define VBE_DISPI_MAX_YRES              1200
 Index: ioemu/monitor.c
 ===================================================================
---- ioemu.orig/monitor.c       2006-07-14 15:50:30.493982708 +0100
-+++ ioemu/monitor.c    2006-07-14 15:55:04.754733732 +0100
+--- ioemu.orig/monitor.c       2006-08-06 02:14:04.798459982 +0100
++++ ioemu/monitor.c    2006-08-06 02:14:49.574468309 +0100
 @@ -68,6 +68,12 @@
  
  void term_flush(void)
@@ -212,7 +212,7 @@ Index: ioemu/monitor.c
      if (term_outbuf_index > 0) {
          qemu_chr_write(monitor_hd, term_outbuf, term_outbuf_index);
          term_outbuf_index = 0;
-@@ -104,6 +110,7 @@
+@@ -106,6 +112,7 @@
      va_end(ap);
  }
  
@@ -220,7 +220,7 @@ Index: ioemu/monitor.c
  static int monitor_fprintf(FILE *stream, const char *fmt, ...)
  {
      va_list ap;
-@@ -112,6 +119,7 @@
+@@ -114,6 +121,7 @@
      va_end(ap);
      return 0;
  }
@@ -228,7 +228,7 @@ Index: ioemu/monitor.c
  
  static int compare_cmd(const char *name, const char *list)
  {
-@@ -225,6 +233,7 @@
+@@ -227,6 +235,7 @@
      return mon_cpu;
  }
  
@@ -236,7 +236,7 @@ Index: ioemu/monitor.c
  static void do_info_registers(void)
  {
      CPUState *env;
-@@ -278,6 +287,7 @@
+@@ -280,6 +289,7 @@
  {
      dump_exec_info(NULL, monitor_fprintf);
  }
@@ -244,7 +244,7 @@ Index: ioemu/monitor.c
  
  static void do_info_history (void)
  {
-@@ -375,6 +385,7 @@
+@@ -377,6 +387,7 @@
      cpu_set_log(mask);
  }
  
@@ -252,7 +252,7 @@ Index: ioemu/monitor.c
  static void do_savevm(const char *filename)
  {
      if (qemu_savevm(filename) < 0)
-@@ -621,6 +632,7 @@
+@@ -623,6 +634,7 @@
  #endif
      term_printf("\n");
  }
@@ -260,23 +260,23 @@ Index: ioemu/monitor.c
  
  static void do_sum(uint32_t start, uint32_t size)
  {
-@@ -792,6 +804,7 @@
-     }
+@@ -841,6 +853,7 @@
+     kbd_mouse_event(0, 0, 0, mouse_button_state);
  }
  
 +#ifndef CONFIG_DM
  static void do_ioport_read(int count, int format, int size, int addr, int 
has_index, int index)
  {
      uint32_t val;
-@@ -952,6 +965,7 @@
-     }
- }
- #endif
-+#endif /* !CONFIG_DM */
- 
- static void do_info_kqemu(void)
- {
-@@ -1045,6 +1059,7 @@
+@@ -1031,6 +1044,7 @@
+     term_printf("kqemu support: not compiled\n");
+ #endif
+ } 
++#endif /* !CONFIG_DM */
+ 
+ #ifdef CONFIG_PROFILER
+ 
+@@ -1152,6 +1166,7 @@
        "filename", "save screen into PPM image 'filename'" },
      { "log", "s", do_log,
        "item1[,...]", "activate logging of the specified items to 
'/tmp/qemu.log'" }, 
@@ -284,7 +284,7 @@ Index: ioemu/monitor.c
      { "savevm", "F", do_savevm,
        "filename", "save the whole virtual machine state to 'filename'" }, 
      { "loadvm", "F", do_loadvm,
-@@ -1065,21 +1080,26 @@
+@@ -1172,21 +1187,26 @@
        "/fmt expr", "print expression value (use $reg for CPU register 
access)", },
      { "i", "/ii.", do_ioport_read, 
        "/fmt addr", "I/O port read" },
@@ -308,10 +308,10 @@ Index: ioemu/monitor.c
      { "cpu", "i", do_cpu_set, 
        "index", "set the default CPU" },
 +#endif /* !CONFIG_DM */
-     { NULL, NULL, }, 
- };
- 
-@@ -1090,10 +1110,12 @@
+     { "mouse_move", "sss?", do_mouse_move, 
+       "dx dy [dz]", "send mouse move events" },
+     { "mouse_button", "i", do_mouse_button, 
+@@ -1208,10 +1228,12 @@
        "", "show the network state" },
      { "block", "", do_info_block,
        "", "show the block devices" },
@@ -324,7 +324,7 @@ Index: ioemu/monitor.c
      { "history", "", do_info_history,
        "", "show the command line history", },
      { "irq", "", irq_info,
-@@ -1102,6 +1124,7 @@
+@@ -1220,6 +1242,7 @@
        "", "show i8259 (PIC) state", },
      { "pci", "", pci_info,
        "", "show PCI info", },
@@ -332,15 +332,15 @@ Index: ioemu/monitor.c
  #if defined(TARGET_I386)
      { "tlb", "", tlb_info,
        "", "show virtual to physical memory mappings", },
-@@ -1110,6 +1133,7 @@
- #endif
-     { "jit", "", do_info_jit,
+@@ -1230,6 +1253,7 @@
        "", "show dynamic compiler info", },
-+#endif /* !CONFIG_DM */
      { "kqemu", "", do_info_kqemu,
        "", "show kqemu information", },
++#endif /* !CONFIG_DM */
      { "usb", "", usb_info,
-@@ -1123,6 +1147,7 @@
+       "", "show guest USB devices", },
+     { "usbhost", "", usb_host_info,
+@@ -1243,6 +1267,7 @@
  
  /*******************************************************************/
  
@@ -348,7 +348,7 @@ Index: ioemu/monitor.c
  static const char *pch;
  static jmp_buf expr_env;
  
-@@ -1663,6 +1688,7 @@
+@@ -1786,6 +1811,7 @@
      *pp = pch;
      return 0;
  }
@@ -356,7 +356,7 @@ Index: ioemu/monitor.c
  
  static int get_str(char *buf, int buf_size, const char **pp)
  {
-@@ -1729,8 +1755,10 @@
+@@ -1852,8 +1878,10 @@
      return 0;
  }
  
@@ -367,7 +367,7 @@ Index: ioemu/monitor.c
  
  #define MAX_ARGS 16
  
-@@ -1738,7 +1766,10 @@
+@@ -1861,7 +1889,10 @@
  {
      const char *p, *pstart, *typestr;
      char *q;
@@ -379,7 +379,7 @@ Index: ioemu/monitor.c
      term_cmd_t *cmd;
      char cmdname[256];
      char buf[1024];
-@@ -1830,6 +1861,7 @@
+@@ -1953,6 +1984,7 @@
                  args[nb_args++] = str;
              }
              break;
@@ -387,7 +387,7 @@ Index: ioemu/monitor.c
          case '/':
              {
                  int count, format, size;
-@@ -1962,6 +1994,7 @@
+@@ -2085,6 +2117,7 @@
                  }
              }
              break;
@@ -395,7 +395,7 @@ Index: ioemu/monitor.c
          case '-':
              {
                  int has_option;
-@@ -1988,6 +2021,11 @@
+@@ -2111,6 +2144,11 @@
                  args[nb_args++] = (void *)has_option;
              }
              break;
@@ -407,7 +407,7 @@ Index: ioemu/monitor.c
          default:
          bad_type:
              term_printf("%s: unknown type '%c'\n", cmdname, c);
-@@ -2035,6 +2073,7 @@
+@@ -2161,6 +2199,7 @@
      return;
  }
  
@@ -415,7 +415,7 @@ Index: ioemu/monitor.c
  static void cmd_completion(const char *name, const char *list)
  {
      const char *p, *pstart;
-@@ -2222,6 +2261,11 @@
+@@ -2354,6 +2393,11 @@
      for(i = 0; i < nb_args; i++)
          qemu_free(args[i]);
  }
@@ -429,9 +429,9 @@ Index: ioemu/monitor.c
  {
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-14 15:50:30.496982366 +0100
-+++ ioemu/vl.c 2006-07-14 15:55:07.676401124 +0100
-@@ -423,12 +423,15 @@
+--- ioemu.orig/vl.c    2006-08-06 02:14:04.797460093 +0100
++++ ioemu/vl.c 2006-08-06 02:14:09.802902081 +0100
+@@ -422,12 +422,15 @@
  void hw_error(const char *fmt, ...)
  {
      va_list ap;
@@ -447,7 +447,7 @@ Index: ioemu/vl.c
      for(env = first_cpu; env != NULL; env = env->next_cpu) {
          fprintf(stderr, "CPU #%d:\n", env->cpu_index);
  #ifdef TARGET_I386
-@@ -437,6 +440,7 @@
+@@ -436,6 +439,7 @@
          cpu_dump_state(env, stderr, fprintf, 0);
  #endif
      }
@@ -455,7 +455,7 @@ Index: ioemu/vl.c
      va_end(ap);
      abort();
  }
-@@ -3800,6 +3804,7 @@
+@@ -4336,6 +4340,7 @@
      return ret;
  }
  
@@ -463,7 +463,7 @@ Index: ioemu/vl.c
  /***********************************************************/
  /* cpu save/restore */
  
-@@ -4234,6 +4239,25 @@
+@@ -4770,6 +4775,25 @@
      }
      return 0;
  }
@@ -489,7 +489,7 @@ Index: ioemu/vl.c
  
  /***********************************************************/
  /* machine registration */
-@@ -5481,6 +5505,7 @@
+@@ -6054,6 +6078,7 @@
      socket_init();
  #endif
  
@@ -497,7 +497,7 @@ Index: ioemu/vl.c
      /* init network clients */
      if (nb_net_clients == 0) {
          /* if no clients, we use a default config */
-@@ -5490,6 +5515,7 @@
+@@ -6063,6 +6088,7 @@
                  "user");
          nb_net_clients = 2;
      }
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/qemu-fix-memset-args
--- a/tools/ioemu/patches/qemu-fix-memset-args  Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/qemu-fix-memset-args  Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/audio/audio.c
 Index: ioemu/audio/audio.c
 ===================================================================
---- ioemu.orig/audio/audio.c   2006-07-14 13:43:45.000000000 +0100
-+++ ioemu/audio/audio.c        2006-08-04 10:18:17.243240246 +0100
-@@ -597,11 +597,11 @@
+--- ioemu.orig/audio/audio.c   2006-08-06 02:03:50.013976165 +0100
++++ ioemu/audio/audio.c        2006-08-06 02:42:28.991609008 +0100
+@@ -605,11 +605,11 @@
      }
  
      if (info->sign) {
diff -r 06e2a95d3395 -r ec8dd0528fc6 
tools/ioemu/patches/qemu-fix-write-to-disk-synchronous
--- a/tools/ioemu/patches/qemu-fix-write-to-disk-synchronous    Mon Aug 07 
18:27:27 2006 +0100
+++ b/tools/ioemu/patches/qemu-fix-write-to-disk-synchronous    Mon Aug 07 
18:28:50 2006 +0100
@@ -1,7 +1,7 @@ Index: ioemu/block-vmdk.c
 Index: ioemu/block-vmdk.c
 ===================================================================
---- ioemu.orig/block-vmdk.c    2006-07-14 13:43:45.000000000 +0100
-+++ ioemu/block-vmdk.c 2006-08-04 10:27:15.368803650 +0100
+--- ioemu.orig/block-vmdk.c    2006-08-06 02:03:45.756450226 +0100
++++ ioemu/block-vmdk.c 2006-08-06 02:42:31.884286728 +0100
 @@ -96,7 +96,7 @@
      uint32_t magic;
      int l1_size;
@@ -13,8 +13,8 @@ Index: ioemu/block-vmdk.c
          if (fd < 0)
 Index: ioemu/block-qcow.c
 ===================================================================
---- ioemu.orig/block-qcow.c    2006-07-14 13:43:45.000000000 +0100
-+++ ioemu/block-qcow.c 2006-08-04 10:27:15.367803766 +0100
+--- ioemu.orig/block-qcow.c    2006-08-06 02:03:45.754450449 +0100
++++ ioemu/block-qcow.c 2006-08-06 02:42:31.885286616 +0100
 @@ -95,7 +95,7 @@
      int fd, len, i, shift;
      QCowHeader header;
@@ -26,8 +26,8 @@ Index: ioemu/block-qcow.c
          if (fd < 0)
 Index: ioemu/block-bochs.c
 ===================================================================
---- ioemu.orig/block-bochs.c   2006-07-14 13:43:45.000000000 +0100
-+++ ioemu/block-bochs.c        2006-08-04 10:27:15.345806311 +0100
+--- ioemu.orig/block-bochs.c   2006-08-06 01:55:02.225741179 +0100
++++ ioemu/block-bochs.c        2006-08-06 02:42:31.885286616 +0100
 @@ -91,7 +91,7 @@
      int fd, i;
      struct bochs_header bochs;
@@ -39,9 +39,9 @@ Index: ioemu/block-bochs.c
          if (fd < 0)
 Index: ioemu/block.c
 ===================================================================
---- ioemu.orig/block.c 2006-08-03 19:19:39.000000000 +0100
-+++ ioemu/block.c      2006-08-04 10:27:15.357804923 +0100
-@@ -677,7 +677,7 @@
+--- ioemu.orig/block.c 2006-08-06 02:42:18.880735483 +0100
++++ ioemu/block.c      2006-08-06 02:42:31.886286505 +0100
+@@ -685,7 +685,7 @@
      int rv;
  #endif
  
@@ -52,8 +52,8 @@ Index: ioemu/block.c
          if (fd < 0)
 Index: ioemu/block-cow.c
 ===================================================================
---- ioemu.orig/block-cow.c     2006-07-14 13:43:45.000000000 +0100
-+++ ioemu/block-cow.c  2006-08-04 10:27:15.366803882 +0100
+--- ioemu.orig/block-cow.c     2006-08-06 02:03:45.751450783 +0100
++++ ioemu/block-cow.c  2006-08-06 02:42:31.886286505 +0100
 @@ -69,7 +69,7 @@
      struct cow_header_v2 cow_header;
      int64_t size;
@@ -65,8 +65,8 @@ Index: ioemu/block-cow.c
          if (fd < 0)
 Index: ioemu/block-cloop.c
 ===================================================================
---- ioemu.orig/block-cloop.c   2006-07-14 13:43:45.000000000 +0100
-+++ ioemu/block-cloop.c        2006-08-04 10:27:15.365803997 +0100
+--- ioemu.orig/block-cloop.c   2006-08-06 01:55:02.226741067 +0100
++++ ioemu/block-cloop.c        2006-08-06 02:42:31.886286505 +0100
 @@ -55,7 +55,7 @@
      BDRVCloopState *s = bs->opaque;
      uint32_t offsets_size,max_compressed_block_size=1,i;
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/qemu-hvm-banner
--- a/tools/ioemu/patches/qemu-hvm-banner       Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/qemu-hvm-banner       Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/monitor.c
 Index: ioemu/monitor.c
 ===================================================================
---- ioemu.orig/monitor.c       2006-07-12 11:35:00.705828339 +0100
-+++ ioemu/monitor.c    2006-07-12 11:35:01.307752925 +0100
-@@ -2293,15 +2293,14 @@
+--- ioemu.orig/monitor.c       2006-08-06 02:15:01.772108510 +0100
++++ ioemu/monitor.c    2006-08-06 02:17:10.847719223 +0100
+@@ -2425,15 +2425,14 @@
  
  static void monitor_start_input(void)
  {
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/qemu-init-vgabios
--- a/tools/ioemu/patches/qemu-init-vgabios     Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/qemu-init-vgabios     Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/hw/vga.c
 Index: ioemu/hw/vga.c
 ===================================================================
---- ioemu.orig/hw/vga.c        2006-07-27 11:10:44.847738090 +0100
-+++ ioemu/hw/vga.c     2006-07-27 11:11:02.008839258 +0100
-@@ -1669,6 +1669,136 @@
+--- ioemu.orig/hw/vga.c        2006-08-06 02:22:01.441324863 +0100
++++ ioemu/hw/vga.c     2006-08-06 02:22:46.606290142 +0100
+@@ -1728,6 +1728,136 @@
      }
  }
  
@@ -139,7 +139,7 @@ Index: ioemu/hw/vga.c
  void vga_common_init(VGAState *s, DisplayState *ds, uint8_t *vga_ram_base, 
                       unsigned long vga_ram_offset, int vga_ram_size)
  {
-@@ -1710,6 +1840,8 @@
+@@ -1769,6 +1899,8 @@
                           vga_screen_dump, s);
      /* XXX: currently needed for display */
      vga_state = s;
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/qemu-logging
--- a/tools/ioemu/patches/qemu-logging  Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/qemu-logging  Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/vl.c
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-27 11:16:57.756466882 +0100
-+++ ioemu/vl.c 2006-07-27 11:16:57.828458912 +0100
-@@ -4698,7 +4698,7 @@
+--- ioemu.orig/vl.c    2006-08-06 02:15:48.550893605 +0100
++++ ioemu/vl.c 2006-08-06 02:16:31.246133963 +0100
+@@ -5234,7 +5234,7 @@
             "-S              freeze CPU at startup (use 'c' to start 
execution)\n"
             "-s              wait gdb connection to port %d\n"
             "-p port         change gdb connection port\n"
@@ -11,7 +11,7 @@ Index: ioemu/vl.c
             "-hdachs c,h,s[,t]  force hard disk 0 physical geometry and the 
optional BIOS\n"
             "                translation (t=none or lba) (usually qemu can 
guess them)\n"
             "-L path         set the directory for the BIOS and VGA BIOS\n"
-@@ -4776,7 +4776,7 @@
+@@ -5307,7 +5307,7 @@
      QEMU_OPTION_S,
      QEMU_OPTION_s,
      QEMU_OPTION_p,
@@ -20,7 +20,7 @@ Index: ioemu/vl.c
      QEMU_OPTION_hdachs,
      QEMU_OPTION_L,
  #ifdef USE_CODE_COPY
-@@ -4845,7 +4845,7 @@
+@@ -5380,7 +5380,7 @@
      { "S", 0, QEMU_OPTION_S },
      { "s", 0, QEMU_OPTION_s },
      { "p", HAS_ARG, QEMU_OPTION_p },
@@ -29,16 +29,16 @@ Index: ioemu/vl.c
      { "hdachs", HAS_ARG, QEMU_OPTION_hdachs },
      { "L", HAS_ARG, QEMU_OPTION_L },
  #ifdef USE_CODE_COPY
-@@ -5096,6 +5096,8 @@
-     char usb_devices[MAX_VM_USB_PORTS][128];
+@@ -5640,6 +5640,8 @@
+     char usb_devices[MAX_USB_CMDLINE][128];
      int usb_devices_index;
  
 +    char qemu_dm_logfilename[64];
 +
      LIST_INIT (&vm_change_state_head);
- #if !defined(CONFIG_SOFTMMU)
-     /* we never want that malloc() uses mmap() */
-@@ -5145,6 +5147,11 @@
+ #ifndef _WIN32
+     {
+@@ -5715,6 +5717,11 @@
      nb_nics = 0;
      /* default mac address of the first network interface */
      
@@ -50,7 +50,7 @@ Index: ioemu/vl.c
      optind = 1;
      for(;;) {
          if (optind >= argc)
-@@ -5330,7 +5337,7 @@
+@@ -5905,7 +5912,7 @@
                      exit(1);
                  }
                  break;
@@ -59,12 +59,3 @@ Index: ioemu/vl.c
                  {
                      int mask;
                      CPULogItem *item;
-@@ -5701,7 +5708,7 @@
-         stk.ss_flags = 0;
- 
-         if (sigaltstack(&stk, NULL) < 0) {
--            perror("sigaltstack");
-+            fprintf(logfile, "sigaltstack returned error %d\n", errno);
-             exit(1);
-         }
-     }
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/qemu-no-apic
--- a/tools/ioemu/patches/qemu-no-apic  Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/qemu-no-apic  Mon Aug 07 18:28:50 2006 +0100
@@ -1,20 +1,20 @@ Index: ioemu/Makefile.target
 Index: ioemu/Makefile.target
 ===================================================================
---- ioemu.orig/Makefile.target 2006-07-12 11:35:00.704828464 +0100
-+++ ioemu/Makefile.target      2006-07-12 11:35:01.899678766 +0100
-@@ -334,7 +334,7 @@
+--- ioemu.orig/Makefile.target 2006-08-06 02:21:42.270461924 +0100
++++ ioemu/Makefile.target      2006-08-06 02:22:26.380544784 +0100
+@@ -355,7 +355,7 @@
  # Hardware support
  VL_OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
  VL_OBJS+= fdc.o mc146818rtc.o serial.o i8254.o pcspk.o pc.o
--VL_OBJS+= cirrus_vga.o mixeng.o apic.o parallel.o
-+VL_OBJS+= cirrus_vga.o mixeng.o parallel.o
+-VL_OBJS+= cirrus_vga.o mixeng.o apic.o parallel.o acpi.o piix_pci.o
++VL_OBJS+= cirrus_vga.o mixeng.o parallel.o acpi.o piix_pci.o
+ VL_OBJS+= usb-uhci.o
  DEFINES += -DHAS_AUDIO
  endif
- ifeq ($(TARGET_BASE_ARCH), ppc)
 Index: ioemu/hw/pc.c
 ===================================================================
---- ioemu.orig/hw/pc.c 2006-07-12 11:35:01.685705573 +0100
-+++ ioemu/hw/pc.c      2006-07-12 11:35:01.900678640 +0100
+--- ioemu.orig/hw/pc.c 2006-08-06 02:22:01.524315611 +0100
++++ ioemu/hw/pc.c      2006-08-06 02:22:11.875161758 +0100
 @@ -39,7 +39,9 @@
  static fdctrl_t *floppy_controller;
  static RTCState *rtc_state;
@@ -22,10 +22,10 @@ Index: ioemu/hw/pc.c
 +#ifndef CONFIG_DM
  static IOAPICState *ioapic;
 +#endif /* !CONFIG_DM */
- static USBPort *usb_root_ports[2];
  
  static void ioport80_write(void *opaque, uint32_t addr, uint32_t data)
-@@ -633,9 +635,11 @@
+ {
+@@ -640,9 +642,11 @@
  #endif /* !CONFIG_DM */
          register_savevm("cpu", i, 3, cpu_save, cpu_load, env);
          qemu_register_reset(main_cpu_reset, env);
@@ -37,7 +37,7 @@ Index: ioemu/hw/pc.c
      }
  
      /* allocate RAM */
-@@ -782,9 +786,11 @@
+@@ -789,9 +793,11 @@
      register_ioport_read(0x92, 1, 1, ioport92_read, NULL);
      register_ioport_write(0x92, 1, 1, ioport92_write, NULL);
  
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/qemu-nobios
--- a/tools/ioemu/patches/qemu-nobios   Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/qemu-nobios   Mon Aug 07 18:28:50 2006 +0100
@@ -1,7 +1,8 @@ diff -r 77a889b0aef8 hw/pc.c
-diff -r 77a889b0aef8 hw/pc.c
---- a/hw/pc.c  Wed Jun 14 19:29:20 2006 +0200
-+++ b/hw/pc.c  Wed Jun 14 19:29:35 2006 +0200
-@@ -605,6 +605,8 @@ static void pc_init_ne2k_isa(NICInfo *nd
+Index: ioemu/hw/pc.c
+===================================================================
+--- ioemu.orig/hw/pc.c 2006-08-06 02:22:11.875161758 +0100
++++ ioemu/hw/pc.c      2006-08-06 02:22:35.588518336 +0100
+@@ -611,6 +611,8 @@
      nb_ne2k++;
  }
  
@@ -10,7 +11,7 @@ diff -r 77a889b0aef8 hw/pc.c
  /* PC hardware initialisation */
  static void pc_init1(uint64_t ram_size, int vga_ram_size, int boot_device,
                       DisplayState *ds, const char **fd_filename, int snapshot,
-@@ -612,10 +614,15 @@ static void pc_init1(uint64_t ram_size, 
+@@ -618,10 +620,15 @@
                       const char *initrd_filename,
                       int pci_enabled)
  {
@@ -25,9 +26,9 @@ diff -r 77a889b0aef8 hw/pc.c
      int bios_size, isa_bios_size;
 +#endif /* !NOBIOS */
      PCIBus *pci_bus;
+     int piix3_devfn = -1;
      CPUState *env;
-     NICInfo *nd;
-@@ -647,6 +654,7 @@ static void pc_init1(uint64_t ram_size, 
+@@ -654,6 +661,7 @@
      cpu_register_physical_memory(0, ram_size, 0);
  #endif
  
@@ -35,7 +36,7 @@ diff -r 77a889b0aef8 hw/pc.c
      /* BIOS load */
      bios_offset = ram_size + vga_ram_size;
      vga_bios_offset = bios_offset + 256 * 1024;
-@@ -675,6 +683,7 @@ static void pc_init1(uint64_t ram_size, 
+@@ -682,6 +690,7 @@
          snprintf(buf, sizeof(buf), "%s/%s", bios_dir, VGABIOS_FILENAME);
      }
      ret = load_image(buf, phys_ram_base + vga_bios_offset);
@@ -43,7 +44,7 @@ diff -r 77a889b0aef8 hw/pc.c
      
      /* setup basic memory access */
  #ifndef CONFIG_DM             /* HVM domain owns memory */
-@@ -682,6 +691,7 @@ static void pc_init1(uint64_t ram_size, 
+@@ -689,6 +698,7 @@
                                   vga_bios_offset | IO_MEM_ROM);
  #endif
  
@@ -51,7 +52,7 @@ diff -r 77a889b0aef8 hw/pc.c
      /* map the last 128KB of the BIOS in ISA space */
      isa_bios_size = bios_size;
      if (isa_bios_size > (128 * 1024))
-@@ -694,6 +704,7 @@ static void pc_init1(uint64_t ram_size, 
+@@ -701,6 +711,7 @@
      /* map all the bios at the top of memory */
      cpu_register_physical_memory((uint32_t)(-bios_size), 
                                   bios_size, bios_offset | IO_MEM_ROM);
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/qemu-smp
--- a/tools/ioemu/patches/qemu-smp      Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/qemu-smp      Mon Aug 07 18:28:50 2006 +0100
@@ -1,17 +1,17 @@ Index: ioemu/vl.c
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-27 11:16:58.619371357 +0100
-+++ ioemu/vl.c 2006-07-27 11:16:58.823348777 +0100
-@@ -159,6 +159,8 @@
- #define MAX_CPUS 1
- #endif
+--- ioemu.orig/vl.c    2006-08-06 02:18:54.847125593 +0100
++++ ioemu/vl.c 2006-08-06 02:19:00.413505070 +0100
+@@ -158,6 +158,8 @@
+ int acpi_enabled = 1;
+ int fd_bootchk = 1;
  
 +extern int vcpus;
 +
  int xc_handle;
  
  char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
-@@ -4636,6 +4638,7 @@
+@@ -5172,6 +5174,7 @@
             "-m megs         set virtual RAM size to megs MB [default=%d]\n"
             "-smp n          set the number of CPUs to 'n' [default=1]\n"
             "-nographic      disable graphical output and redirect serial I/Os 
to console\n"
@@ -19,23 +19,23 @@ Index: ioemu/vl.c
  #ifndef _WIN32
           "-k language     use keyboard layout (for example \"fr\" for 
French)\n"
  #endif
-@@ -4810,6 +4813,7 @@
-     QEMU_OPTION_vnc,
+@@ -5342,6 +5345,7 @@
+     QEMU_OPTION_no_acpi,
  
      QEMU_OPTION_d,
 +    QEMU_OPTION_vcpus,
  };
  
  typedef struct QEMUOption {
-@@ -4887,6 +4891,7 @@
-     { "cirrusvga", 0, QEMU_OPTION_cirrusvga },
+@@ -5423,6 +5427,7 @@
+     { "no-acpi", 0, QEMU_OPTION_no_acpi },
      
      { "d", HAS_ARG, QEMU_OPTION_d },
 +    { "vcpus", 1, QEMU_OPTION_vcpus },
      { NULL },
  };
  
-@@ -5509,6 +5514,10 @@
+@@ -6087,6 +6092,10 @@
                  domid = atoi(optarg);
                  fprintf(logfile, "domid: %d\n", domid);
                  break;
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/qemu-target-i386-dm
--- a/tools/ioemu/patches/qemu-target-i386-dm   Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/qemu-target-i386-dm   Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/Makefile.target
 Index: ioemu/Makefile.target
 ===================================================================
---- ioemu.orig/Makefile.target 2006-07-28 09:56:49.468301708 +0100
-+++ ioemu/Makefile.target      2006-07-28 09:56:58.486281629 +0100
-@@ -57,6 +57,8 @@
+--- ioemu.orig/Makefile.target 2006-08-06 02:14:09.794902973 +0100
++++ ioemu/Makefile.target      2006-08-06 02:21:42.270461924 +0100
+@@ -62,6 +62,8 @@
  QEMU_SYSTEM=qemu-fast
  endif
  
@@ -11,7 +11,7 @@ Index: ioemu/Makefile.target
  ifdef CONFIG_USER_ONLY
  PROGS=$(QEMU_USER)
  else
-@@ -274,6 +276,9 @@
+@@ -291,6 +293,9 @@
  OBJS+=gdbstub.o
  endif
  
@@ -21,20 +21,20 @@ Index: ioemu/Makefile.target
  all: $(PROGS)
  
  $(QEMU_USER): $(OBJS)
-@@ -328,7 +333,7 @@
+@@ -349,7 +354,7 @@
  ifeq ($(TARGET_BASE_ARCH), i386)
  # Hardware support
  VL_OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
 -VL_OBJS+= fdc.o mc146818rtc.o serial.o i8259.o i8254.o pcspk.o pc.o
 +VL_OBJS+= fdc.o mc146818rtc.o serial.o i8254.o pcspk.o pc.o
- VL_OBJS+= cirrus_vga.o mixeng.o apic.o parallel.o
+ VL_OBJS+= cirrus_vga.o mixeng.o apic.o parallel.o acpi.o piix_pci.o
+ VL_OBJS+= usb-uhci.o
  DEFINES += -DHAS_AUDIO
- endif
 Index: ioemu/configure
 ===================================================================
---- ioemu.orig/configure       2006-07-28 09:56:49.469301595 +0100
-+++ ioemu/configure    2006-07-28 09:56:49.486299672 +0100
-@@ -359,6 +359,8 @@
+--- ioemu.orig/configure       2006-08-06 02:14:09.795902861 +0100
++++ ioemu/configure    2006-08-06 02:15:01.771108621 +0100
+@@ -373,6 +373,8 @@
      if [ "$user" = "yes" ] ; then
          target_list="i386-user arm-user armeb-user sparc-user ppc-user 
mips-user mipsel-user $target_list"
      fi
@@ -45,12 +45,12 @@ Index: ioemu/configure
  fi
 Index: ioemu/monitor.c
 ===================================================================
---- ioemu.orig/monitor.c       2006-07-28 09:56:49.472301255 +0100
-+++ ioemu/monitor.c    2006-07-28 09:56:58.720255164 +0100
-@@ -1142,6 +1142,10 @@
-       "", "show host USB devices", },
-     { "profile", "", do_info_profile,
+--- ioemu.orig/monitor.c       2006-08-06 02:14:49.574468309 +0100
++++ ioemu/monitor.c    2006-08-06 02:21:16.172371202 +0100
+@@ -1262,6 +1262,10 @@
        "", "show profiling information", },
+     { "capture", "", do_info_capture,
+       "show capture information" },
 +#ifdef CONFIG_DM
 +    { "hvmiopage", "", sp_info,
 +      "", "show HVM device model shared page info", },
@@ -60,8 +60,8 @@ Index: ioemu/monitor.c
  
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-28 09:56:49.475300916 +0100
-+++ ioemu/vl.c 2006-07-28 09:56:58.917232883 +0100
+--- ioemu.orig/vl.c    2006-08-06 02:14:09.802902081 +0100
++++ ioemu/vl.c 2006-08-06 02:21:16.369349244 +0100
 @@ -87,7 +87,7 @@
  
  #include "exec-all.h"
@@ -71,7 +71,7 @@ Index: ioemu/vl.c
  
  //#define DEBUG_UNUSED_IOPORT
  //#define DEBUG_IOPORT
-@@ -4382,7 +4382,7 @@
+@@ -4918,7 +4918,7 @@
  
  static QEMUResetEntry *first_reset_entry;
  static int reset_requested;
@@ -80,7 +80,7 @@ Index: ioemu/vl.c
  static int powerdown_requested;
  
  void qemu_register_reset(QEMUResetHandler *func, void *opaque)
-@@ -4534,6 +4534,7 @@
+@@ -5067,6 +5067,7 @@
                      qemu_get_clock(rt_clock));
  }
  
@@ -88,7 +88,7 @@ Index: ioemu/vl.c
  static CPUState *cur_cpu;
  
  int main_loop(void)
-@@ -4608,6 +4609,7 @@
+@@ -5141,6 +5142,7 @@
      cpu_disable_ticks();
      return ret;
  }
@@ -98,18 +98,18 @@ Index: ioemu/vl.c
  {
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-07-28 09:56:49.281322859 +0100
-+++ ioemu/vl.h 2006-07-28 09:56:58.917232883 +0100
-@@ -38,6 +38,8 @@
+--- ioemu.orig/vl.h    2006-08-06 02:13:56.733359091 +0100
++++ ioemu/vl.h 2006-08-06 02:21:16.369349244 +0100
+@@ -37,6 +37,8 @@
+ #include <unistd.h>
  #include <fcntl.h>
  #include <sys/stat.h>
- #include "audio/audio.h"
 +#include "xenctrl.h"
 +#include "xs.h"
  
  #ifndef O_LARGEFILE
  #define O_LARGEFILE 0
-@@ -131,6 +133,11 @@
+@@ -139,6 +141,11 @@
  
  void main_loop_wait(int timeout);
  
@@ -121,7 +121,7 @@ Index: ioemu/vl.h
  extern int ram_size;
  extern int bios_size;
  extern int rtc_utc;
-@@ -814,6 +821,7 @@
+@@ -873,6 +880,7 @@
  uint32_t pic_intack_read(PicState2 *s);
  void pic_info(void);
  void irq_info(void);
@@ -132,7 +132,7 @@ Index: ioemu/target-i386-dm/cpu.h
 Index: ioemu/target-i386-dm/cpu.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ ioemu/target-i386-dm/cpu.h 2006-07-28 09:56:58.572271903 +0100
++++ ioemu/target-i386-dm/cpu.h 2006-08-06 02:21:16.023387810 +0100
 @@ -0,0 +1,86 @@
 +/*
 + * i386 virtual CPU header
@@ -223,7 +223,7 @@ Index: ioemu/target-i386-dm/exec-dm.c
 Index: ioemu/target-i386-dm/exec-dm.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ ioemu/target-i386-dm/exec-dm.c     2006-07-28 09:58:22.882736989 +0100
++++ ioemu/target-i386-dm/exec-dm.c     2006-08-06 02:21:16.024387698 +0100
 @@ -0,0 +1,516 @@
 +/*
 + *  virtual page mapping and translated block handling
@@ -744,7 +744,7 @@ Index: ioemu/target-i386-dm/helper2.c
 Index: ioemu/target-i386-dm/helper2.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ ioemu/target-i386-dm/helper2.c     2006-07-28 09:56:58.312301309 +0100
++++ ioemu/target-i386-dm/helper2.c     2006-08-06 02:21:15.779415007 +0100
 @@ -0,0 +1,464 @@
 +/*
 + *  i386 helpers (without register variable usage)
@@ -1213,7 +1213,7 @@ Index: ioemu/target-i386-dm/i8259-dm.c
 Index: ioemu/target-i386-dm/i8259-dm.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ ioemu/target-i386-dm/i8259-dm.c    2006-07-28 09:56:49.492298993 +0100
++++ ioemu/target-i386-dm/i8259-dm.c    2006-08-06 02:15:01.777107952 +0100
 @@ -0,0 +1,107 @@
 +/* Xen 8259 stub for interrupt controller emulation
 + * 
@@ -1325,7 +1325,7 @@ Index: ioemu/target-i386-dm/qemu-dm.debu
 Index: ioemu/target-i386-dm/qemu-dm.debug
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ ioemu/target-i386-dm/qemu-dm.debug 2006-07-28 09:56:49.493298880 +0100
++++ ioemu/target-i386-dm/qemu-dm.debug 2006-08-06 02:15:01.778107841 +0100
 @@ -0,0 +1,5 @@
 +#!/bin/sh
 +
@@ -1335,7 +1335,7 @@ Index: ioemu/target-i386-dm/qemu-ifup
 Index: ioemu/target-i386-dm/qemu-ifup
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ ioemu/target-i386-dm/qemu-ifup     2006-07-28 09:56:49.493298880 +0100
++++ ioemu/target-i386-dm/qemu-ifup     2006-08-06 02:15:01.778107841 +0100
 @@ -0,0 +1,10 @@
 +#!/bin/sh
 +
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/qemu-timer
--- a/tools/ioemu/patches/qemu-timer    Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/qemu-timer    Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/vl.c
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-12 11:35:02.126650330 +0100
-+++ ioemu/vl.c 2006-07-12 11:35:02.273631916 +0100
-@@ -861,6 +861,16 @@
+--- ioemu.orig/vl.c    2006-08-06 02:22:53.925474246 +0100
++++ ioemu/vl.c 2006-08-06 02:22:56.618174081 +0100
+@@ -824,6 +824,16 @@
      }
  }
  
@@ -19,16 +19,16 @@ Index: ioemu/vl.c
  static void timer_save(QEMUFile *f, void *opaque)
  {
      if (cpu_ticks_enabled) {
-@@ -977,6 +987,8 @@
+@@ -940,6 +950,8 @@
  
  #endif /* !defined(_WIN32) */
  
 +#endif /* !CONFIG_DM */
 +
- static void init_timers(void)
+ static void init_timer_alarm(void)
  {
-     rt_clock = qemu_new_clock(QEMU_TIMER_REALTIME);
-@@ -1011,12 +1023,15 @@
+ #ifdef _WIN32
+@@ -971,12 +983,15 @@
      pit_min_timer_count = ((uint64_t)10000 * PIT_FREQ) / 1000000;
  #else
      {
@@ -44,7 +44,7 @@ Index: ioemu/vl.c
          /* timer signal */
          sigfillset(&act.sa_mask);
         act.sa_flags = 0;
-@@ -1062,6 +1077,7 @@
+@@ -1022,6 +1037,7 @@
              pit_min_timer_count = ((uint64_t)itv.it_interval.tv_usec * 
                                     PIT_FREQ) / 1000000;
          }
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/serial-non-block
--- a/tools/ioemu/patches/serial-non-block      Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/serial-non-block      Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/vl.c
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-12 11:35:02.880555879 +0100
-+++ ioemu/vl.c 2006-07-12 11:35:03.004540346 +0100
-@@ -1215,19 +1215,34 @@
+--- ioemu.orig/vl.c    2006-08-06 02:23:29.827472129 +0100
++++ ioemu/vl.c 2006-08-06 02:23:36.856688561 +0100
+@@ -1175,19 +1175,34 @@
  
  static int unix_write(int fd, const uint8_t *buf, int len1)
  {
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/series
--- a/tools/ioemu/patches/series        Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/series        Mon Aug 07 18:28:50 2006 +0100
@@ -26,7 +26,6 @@ serial-non-block
 serial-non-block
 ide-hd-multithread
 domain-timeoffset
-sdl-mouse-invisible-wall
 acpi-support
 acpi-timer-support
 acpi-poweroff-support
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/shadow-vram
--- a/tools/ioemu/patches/shadow-vram   Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/shadow-vram   Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/hw/vga.c
 Index: ioemu/hw/vga.c
 ===================================================================
---- ioemu.orig/hw/vga.c        2006-07-26 15:17:39.821306797 +0100
-+++ ioemu/hw/vga.c     2006-07-26 15:17:40.017285449 +0100
-@@ -1287,6 +1287,105 @@
+--- ioemu.orig/hw/vga.c        2006-08-06 02:23:29.824472464 +0100
++++ ioemu/hw/vga.c     2006-08-06 02:23:33.873021159 +0100
+@@ -1359,6 +1359,105 @@
      }
  }
  
@@ -108,7 +108,7 @@ Index: ioemu/hw/vga.c
  /* 
   * graphic modes
   */
-@@ -1382,6 +1481,11 @@
+@@ -1454,6 +1553,11 @@
      printf("w=%d h=%d v=%d line_offset=%d cr[0x09]=0x%02x cr[0x17]=0x%02x 
linecmp=%d sr[0x01]=0x%02x\n",
             width, height, v, line_offset, s->cr[9], s->cr[0x17], 
s->line_compare, s->sr[0x01]);
  #endif
@@ -120,7 +120,7 @@ Index: ioemu/hw/vga.c
      addr1 = (s->start_addr * 4);
      bwidth = width * 4;
      y_start = -1;
-@@ -1830,6 +1934,14 @@
+@@ -1889,6 +1993,14 @@
  
      vga_reset(s);
  
@@ -137,9 +137,9 @@ Index: ioemu/hw/vga.c
      s->vram_size = vga_ram_size;
 Index: ioemu/hw/vga_int.h
 ===================================================================
---- ioemu.orig/hw/vga_int.h    2006-07-26 15:17:39.822306688 +0100
-+++ ioemu/hw/vga_int.h 2006-07-26 15:17:40.017285449 +0100
-@@ -76,6 +76,7 @@
+--- ioemu.orig/hw/vga_int.h    2006-08-06 02:23:29.824472464 +0100
++++ ioemu/hw/vga_int.h 2006-08-06 02:23:33.874021048 +0100
+@@ -79,6 +79,7 @@
  
  #define VGA_STATE_COMMON                                                \
      uint8_t *vram_ptr;                                                  \
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/shared-vram
--- a/tools/ioemu/patches/shared-vram   Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/shared-vram   Mon Aug 07 18:28:50 2006 +0100
@@ -1,7 +1,7 @@ Index: ioemu/hw/cirrus_vga.c
 Index: ioemu/hw/cirrus_vga.c
 ===================================================================
---- ioemu.orig/hw/cirrus_vga.c 2006-07-27 11:16:53.059986783 +0100
-+++ ioemu/hw/cirrus_vga.c      2006-07-27 11:16:59.923227020 +0100
+--- ioemu.orig/hw/cirrus_vga.c 2006-08-06 01:55:02.822674718 +0100
++++ ioemu/hw/cirrus_vga.c      2006-08-06 02:23:29.822472686 +0100
 @@ -28,6 +28,9 @@
   */
  #include "vl.h"
@@ -176,9 +176,9 @@ Index: ioemu/hw/cirrus_vga.c
  }
 Index: ioemu/hw/pc.c
 ===================================================================
---- ioemu.orig/hw/pc.c 2006-07-27 11:16:59.759245173 +0100
-+++ ioemu/hw/pc.c      2006-07-27 11:16:59.924226909 +0100
-@@ -783,14 +783,14 @@
+--- ioemu.orig/hw/pc.c 2006-08-06 02:23:07.875919141 +0100
++++ ioemu/hw/pc.c      2006-08-06 02:23:29.823472575 +0100
+@@ -790,14 +790,14 @@
      if (cirrus_vga_enabled) {
          if (pci_enabled) {
              pci_cirrus_vga_init(pci_bus, 
@@ -198,9 +198,9 @@ Index: ioemu/hw/pc.c
  
 Index: ioemu/hw/vga.c
 ===================================================================
---- ioemu.orig/hw/vga.c        2006-07-27 11:16:59.103317784 +0100
-+++ ioemu/hw/vga.c     2006-07-27 11:16:59.925226798 +0100
-@@ -1799,6 +1799,7 @@
+--- ioemu.orig/hw/vga.c        2006-08-06 02:22:46.606290142 +0100
++++ ioemu/hw/vga.c     2006-08-06 02:23:29.824472464 +0100
+@@ -1858,6 +1858,7 @@
      /* TODO: add vbe support if enabled */
  }
  
@@ -208,7 +208,7 @@ Index: ioemu/hw/vga.c
  void vga_common_init(VGAState *s, DisplayState *ds, uint8_t *vga_ram_base, 
                       unsigned long vga_ram_offset, int vga_ram_size)
  {
-@@ -1829,7 +1830,7 @@
+@@ -1888,7 +1889,7 @@
  
      vga_reset(s);
  
@@ -217,7 +217,7 @@ Index: ioemu/hw/vga.c
      s->vram_offset = vga_ram_offset;
      s->vram_size = vga_ram_size;
      s->ds = ds;
-@@ -1943,6 +1944,31 @@
+@@ -2002,6 +2003,31 @@
      return 0;
  }
  
@@ -251,9 +251,9 @@ Index: ioemu/hw/vga.c
  
 Index: ioemu/hw/vga_int.h
 ===================================================================
---- ioemu.orig/hw/vga_int.h    2006-07-27 11:16:57.447501084 +0100
-+++ ioemu/hw/vga_int.h 2006-07-27 11:16:59.925226798 +0100
-@@ -166,5 +166,6 @@
+--- ioemu.orig/hw/vga_int.h    2006-08-06 02:14:09.797902638 +0100
++++ ioemu/hw/vga_int.h 2006-08-06 02:23:29.824472464 +0100
+@@ -169,5 +169,6 @@
                               unsigned int color0, unsigned int color1,
                               unsigned int color_xor);
  
@@ -262,9 +262,9 @@ Index: ioemu/hw/vga_int.h
  extern const uint8_t gr_mask[16];
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-27 11:16:59.762244841 +0100
-+++ ioemu/vl.c 2006-07-27 11:16:59.928226466 +0100
-@@ -5149,6 +5149,78 @@
+--- ioemu.orig/vl.c    2006-08-06 02:23:07.878918807 +0100
++++ ioemu/vl.c 2006-08-06 02:23:29.827472129 +0100
+@@ -5693,6 +5693,78 @@
  
  #define MAX_NET_CLIENTS 32
  
@@ -345,9 +345,9 @@ Index: ioemu/vl.c
  #ifdef CONFIG_GDBSTUB
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-07-27 11:16:59.549268417 +0100
-+++ ioemu/vl.h 2006-07-27 11:16:59.929226356 +0100
-@@ -136,6 +136,13 @@
+--- ioemu.orig/vl.h    2006-08-06 02:23:02.271543880 +0100
++++ ioemu/vl.h 2006-08-06 02:23:29.828472018 +0100
+@@ -144,6 +144,13 @@
  
  void main_loop_wait(int timeout);
  
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/support-xm-console
--- a/tools/ioemu/patches/support-xm-console    Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/support-xm-console    Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/vl.c
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-27 11:16:59.384286681 +0100
-+++ ioemu/vl.c 2006-07-27 11:16:59.614261222 +0100
-@@ -1535,26 +1535,65 @@
+--- ioemu.orig/vl.c    2006-08-06 02:22:59.254880158 +0100
++++ ioemu/vl.c 2006-08-06 02:23:05.216215627 +0100
+@@ -1536,26 +1536,65 @@
      return chr;
  }
  
@@ -77,7 +77,7 @@ Index: ioemu/vl.c
      return qemu_chr_open_fd(master_fd, master_fd);
  }
  
-@@ -5298,7 +5337,9 @@
+@@ -5868,7 +5907,9 @@
                  break;
              case QEMU_OPTION_nographic:
                  pstrcpy(monitor_device, sizeof(monitor_device), "stdio");
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/vnc-access-monitor-vt
--- a/tools/ioemu/patches/vnc-access-monitor-vt Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/vnc-access-monitor-vt Mon Aug 07 18:28:50 2006 +0100
@@ -1,7 +1,7 @@ Index: ioemu/vnc.c
 Index: ioemu/vnc.c
 ===================================================================
---- ioemu.orig/vnc.c   2006-07-26 14:33:57.906165040 +0100
-+++ ioemu/vnc.c        2006-07-26 14:44:09.972552689 +0100
+--- ioemu.orig/vnc.c   2006-08-07 17:44:33.084748631 +0100
++++ ioemu/vnc.c        2006-08-07 17:44:33.224733389 +0100
 @@ -32,6 +32,10 @@
  #include "vnc_keysym.h"
  #include "keymaps.c"
@@ -13,15 +13,16 @@ Index: ioemu/vnc.c
  typedef struct Buffer
  {
      size_t capacity;
-@@ -64,6 +68,7 @@
-     Buffer output;
-     Buffer input;
-     kbd_layout_t *kbd_layout;
+@@ -95,6 +99,8 @@
+     int visible_h;
+ 
+     int slow_client;
++
 +    int ctl_keys;               /* Ctrl+Alt starts calibration */
+ };
  
-     VncReadEvent *read_handler;
-     size_t read_handler_expect;
-@@ -679,16 +684,80 @@
+ #define DIRTY_PIXEL_BITS 64
+@@ -794,16 +800,80 @@
  
  static void do_key_event(VncState *vs, int down, uint32_t sym)
  {
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/vnc-cleanup
--- a/tools/ioemu/patches/vnc-cleanup   Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/vnc-cleanup   Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/vnc.c
 Index: ioemu/vnc.c
 ===================================================================
---- ioemu.orig/vnc.c   2006-08-04 10:42:19.575024607 +0100
-+++ ioemu/vnc.c        2006-08-04 10:42:26.918176009 +0100
-@@ -83,13 +83,16 @@
+--- ioemu.orig/vnc.c   2006-08-07 17:42:21.888055419 +0100
++++ ioemu/vnc.c        2006-08-07 17:42:28.001363557 +0100
+@@ -143,13 +143,16 @@
  static void vnc_dpy_update(DisplayState *ds, int x, int y, int w, int h)
  {
      VncState *vs = ds->opaque;
@@ -17,12 +17,12 @@ Index: ioemu/vnc.c
  
      for (; y < h; y++)
 -      for (i = 0; i < w; i += 16)
--          vs->dirty_row[y] |= (1ULL << ((x + i) / 16));
+-          vnc_set_bit(vs->dirty_row[y], (x + i) / 16);
 +      vs->dirty_row[y] |= mask;
  }
  
  static void vnc_framebuffer_update(VncState *vs, int x, int y, int w, int h,
-@@ -262,6 +265,7 @@
+@@ -373,6 +376,7 @@
  static void vnc_update_client(void *opaque)
  {
      VncState *vs = opaque;
@@ -30,16 +30,16 @@ Index: ioemu/vnc.c
  
      if (vs->need_update && vs->csock != -1) {
        int y;
-@@ -282,7 +286,7 @@
+@@ -390,7 +394,7 @@
        row = vs->ds->data;
        old_row = vs->old_data;
  
 -      for (y = 0; y < vs->height; y++) {
 +      for (y = 0; y < vs->ds->height; y++) {
-           if (vs->dirty_row[y] & width_mask) {
+           if (vnc_and_bits(vs->dirty_row[y], width_mask, VNC_DIRTY_WORDS)) {
                int x;
                char *ptr, *old_ptr;
-@@ -307,10 +311,8 @@
+@@ -415,10 +419,8 @@
            old_row += vs->ds->linesize;
        }
  
@@ -52,7 +52,7 @@ Index: ioemu/vnc.c
  
        /* Count rectangles */
        n_rectangles = 0;
-@@ -348,7 +350,9 @@
+@@ -456,7 +458,9 @@
        vnc_flush(vs);
  
      }
@@ -65,9 +65,9 @@ Index: ioemu/vnc.c
  static void vnc_timer_init(VncState *vs)
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-08-04 10:42:26.723198541 +0100
-+++ ioemu/vl.c 2006-08-04 10:42:26.921175663 +0100
-@@ -4589,10 +4589,10 @@
+--- ioemu.orig/vl.c    2006-08-07 17:42:27.807385506 +0100
++++ ioemu/vl.c 2006-08-07 17:42:28.004363230 +0100
+@@ -5120,10 +5120,10 @@
          /* XXX: better handling of removal */
          for(ioh = first_io_handler; ioh != NULL; ioh = ioh_next) {
              ioh_next = ioh->next;
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/vnc-fixes
--- a/tools/ioemu/patches/vnc-fixes     Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/vnc-fixes     Mon Aug 07 18:28:50 2006 +0100
@@ -1,10 +1,10 @@ Index: ioemu/vl.c
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-08-04 10:57:29.116972627 +0100
-+++ ioemu/vl.c 2006-08-04 10:57:29.186964560 +0100
-@@ -6026,8 +6026,10 @@
-                   kernel_filename, kernel_cmdline, initrd_filename,
-                   timeoffset);
+--- ioemu.orig/vl.c    2006-08-07 17:42:28.004363230 +0100
++++ ioemu/vl.c 2006-08-07 17:43:16.361100898 +0100
+@@ -6516,8 +6516,10 @@
+         }
+     }
  
 -    gui_timer = qemu_new_timer(rt_clock, gui_update, NULL);
 -    qemu_mod_timer(gui_timer, qemu_get_clock(rt_clock));
@@ -17,8 +17,8 @@ Index: ioemu/vl.c
      if (use_gdbstub) {
 Index: ioemu/vnc.c
 ===================================================================
---- ioemu.orig/vnc.c   2006-08-04 10:57:29.114972858 +0100
-+++ ioemu/vnc.c        2006-08-04 10:57:29.187964445 +0100
+--- ioemu.orig/vnc.c   2006-08-07 17:42:28.001363557 +0100
++++ ioemu/vnc.c        2006-08-07 17:43:33.593225293 +0100
 @@ -3,6 +3,7 @@
   * 
   * Copyright (C) 2006 Anthony Liguori <anthony@xxxxxxxxxxxxx>
@@ -27,20 +27,32 @@ Index: ioemu/vnc.c
   * 
   * Permission is hereby granted, free of charge, to any person obtaining a 
copy
   * of this software and associated documentation files (the "Software"), to 
deal
-@@ -51,7 +52,11 @@
+@@ -50,9 +51,11 @@
+                                 uint32_t *last_fg,
+                                 int *has_bg, int *has_fg);
+ 
++#if 0
+ #define VNC_MAX_WIDTH 2048
+ #define VNC_MAX_HEIGHT 2048
+ #define VNC_DIRTY_WORDS (VNC_MAX_WIDTH / (16 * 32))
++#endif
+ 
+ struct VncState
+ {
+@@ -63,7 +66,11 @@
      int need_update;
      int width;
      int height;
--    uint64_t dirty_row[768];
+-    uint32_t dirty_row[VNC_MAX_HEIGHT][VNC_DIRTY_WORDS];
 +    uint64_t *dirty_row;      /* screen regions which are possibly dirty */
 +    int dirty_pixel_shift;
 +    uint64_t *update_row;     /* outstanding updates */
 +    int has_update;           /* there's outstanding updates in the
 +                               * visible area */
      char *old_data;
-     int depth;
+     int depth; /* internal VNC frame buffer byte per pixel */
      int has_resize;
-@@ -62,13 +67,25 @@
+@@ -81,13 +88,25 @@
  
      VncReadEvent *read_handler;
      size_t read_handler_expect;
@@ -67,7 +79,7 @@ Index: ioemu/vnc.c
  */
  
  static void vnc_write(VncState *vs, const void *data, size_t len);
-@@ -77,22 +94,38 @@
+@@ -96,9 +115,12 @@
  static void vnc_write_u16(VncState *vs, uint16_t value);
  static void vnc_write_u8(VncState *vs, uint8_t value);
  static void vnc_flush(VncState *vs);
@@ -76,6 +88,16 @@ Index: ioemu/vnc.c
  static void vnc_client_read(void *opaque);
 +static void framebuffer_set_updated(VncState *vs, int x, int y, int w, int h);
  
++#if 0
+ static inline void vnc_set_bit(uint32_t *d, int k)
+ {
+     d[k >> 5] |= 1 << (k & 0x1f);
+@@ -139,20 +161,35 @@
+     }
+     return 0;
+ }
++#endif
+ 
 -static void vnc_dpy_update(DisplayState *ds, int x, int y, int w, int h)
 +static void set_bits_in_row(VncState *vs, uint64_t *row,
 +                          int x, int y, int w, int h)
@@ -112,7 +134,7 @@ Index: ioemu/vnc.c
  }
  
  static void vnc_framebuffer_update(VncState *vs, int x, int y, int w, int h,
-@@ -109,16 +142,23 @@
+@@ -169,16 +206,23 @@
  static void vnc_dpy_resize(DisplayState *ds, int w, int h)
  {
      VncState *vs = ds->opaque;
@@ -138,7 +160,7 @@ Index: ioemu/vnc.c
      ds->width = w;
      ds->height = h;
      ds->linesize = w * vs->depth;
-@@ -131,6 +171,10 @@
+@@ -191,6 +235,10 @@
        vs->width = ds->width;
        vs->height = ds->height;
      }
@@ -148,8 +170,8 @@ Index: ioemu/vnc.c
 +    framebuffer_set_updated(vs, 0, 0, ds->width, ds->height);
  }
  
- static void send_framebuffer_update_raw(VncState *vs, int x, int y, int w, 
int h)
-@@ -215,8 +259,20 @@
+ /* fastest code */
+@@ -326,8 +374,20 @@
      int y = 0;
      int pitch = ds->linesize;
      VncState *vs = ds->opaque;
@@ -171,7 +193,7 @@ Index: ioemu/vnc.c
  
      if (dst_y > src_y) {
        y = h - 1;
-@@ -238,31 +294,34 @@
+@@ -349,31 +409,34 @@
        old_row += pitch;
      }
  
@@ -202,11 +224,11 @@ Index: ioemu/vnc.c
 -    for (h = 1; h < (vs->height - y); h++) {
 +    for (h = 1; y + h < maxy; h++) {
        int tmp_x;
--      if (!(vs->dirty_row[y + h] & (1ULL << last_x)))
+-      if (!vnc_get_bit(vs->dirty_row[y + h], last_x))
 +      if (!(vs->update_row[y + h] & (1ULL << last_x)))
            break;
        for (tmp_x = last_x; tmp_x < x; tmp_x++)
--          vs->dirty_row[y + h] &= ~(1ULL << tmp_x);
+-          vnc_clear_bit(vs->dirty_row[y + h], tmp_x);
 +          vs->update_row[y + h] &= ~(1ULL << tmp_x);
      }
  
@@ -218,30 +240,41 @@ Index: ioemu/vnc.c
  {
      VncState *vs = opaque;
      int64_t now = qemu_get_clock(rt_clock);
-@@ -274,11 +333,12 @@
-       uint64_t width_mask;
+@@ -382,12 +445,16 @@
+       int y;
+       char *row;
+       char *old_row;
+-      uint32_t width_mask[VNC_DIRTY_WORDS];
++      uint64_t width_mask;
        int n_rectangles;
        int saved_offset;
 -      int has_dirty = 0;
--
--      width_mask = (1ULL << (vs->width / 16)) - 1;
 +      int maxx, maxy;
 +      int tile_bytes = vs->depth * DP2X(vs, 1);
  
--      if (vs->width == 1024)
+-        vnc_set_bits(width_mask, (vs->width / 16), VNC_DIRTY_WORDS);
 +      if (vs->width != DP2X(vs, DIRTY_PIXEL_BITS))
 +          width_mask = (1ULL << X2DP_UP(vs, vs->ds->width)) - 1;
 +      else
-           width_mask = ~(0ULL);
++          width_mask = ~(0ULL);
  
        /* Walk through the dirty map and eliminate tiles that
-@@ -294,16 +354,18 @@
+          really aren't dirty */
+@@ -395,23 +462,25 @@
+       old_row = vs->old_data;
+ 
+       for (y = 0; y < vs->ds->height; y++) {
+-          if (vnc_and_bits(vs->dirty_row[y], width_mask, VNC_DIRTY_WORDS)) {
++          if (vs->dirty_row[y] & width_mask) {
+               int x;
+               char *ptr, *old_ptr;
+ 
                ptr = row;
                old_ptr = old_row;
  
 -              for (x = 0; x < vs->ds->width; x += 16) {
 -                  if (memcmp(old_ptr, ptr, 16 * vs->depth) == 0) {
--                      vs->dirty_row[y] &= ~(1ULL << (x / 16));
+-                      vnc_clear_bit(vs->dirty_row[y], (x / 16));
 -                  } else {
 -                      has_dirty = 1;
 -                      memcpy(old_ptr, ptr, 16 * vs->depth);
@@ -262,7 +295,7 @@ Index: ioemu/vnc.c
                }
            }
  
-@@ -311,7 +373,8 @@
+@@ -419,7 +488,8 @@
            old_row += vs->ds->linesize;
        }
  
@@ -272,7 +305,7 @@ Index: ioemu/vnc.c
            goto out;
  
        /* Count rectangles */
-@@ -321,40 +384,61 @@
+@@ -429,40 +499,61 @@
        saved_offset = vs->output.offset;
        vnc_write_u16(vs, 0);
  
@@ -288,7 +321,7 @@ Index: ioemu/vnc.c
            int x;
            int last_x = -1;
 -          for (x = 0; x < vs->width / 16; x++) {
--              if (vs->dirty_row[y] & (1ULL << x)) {
+-              if (vnc_get_bit(vs->dirty_row[y], x)) {
 -                  if (last_x == -1) {
 +          for (x = X2DP_DOWN(vs, vs->visible_x);
 +               x < X2DP_UP(vs, maxx); x++) {
@@ -296,7 +329,7 @@ Index: ioemu/vnc.c
 +                  if (last_x == -1)
                        last_x = x;
 -                  }
--                  vs->dirty_row[y] &= ~(1ULL << x);
+-                  vnc_clear_bit(vs->dirty_row[y], x);
 +                  vs->update_row[y] &= ~(1ULL << x);
                } else {
                    if (last_x != -1) {
@@ -346,7 +379,7 @@ Index: ioemu/vnc.c
  static void vnc_timer_init(VncState *vs)
  {
      if (vs->timer == NULL) {
-@@ -365,8 +449,6 @@
+@@ -473,8 +564,6 @@
  
  static void vnc_dpy_refresh(DisplayState *ds)
  {
@@ -355,7 +388,7 @@ Index: ioemu/vnc.c
      vga_hw_update();
  }
  
-@@ -402,7 +484,7 @@
+@@ -510,7 +599,7 @@
  
  static void buffer_reset(Buffer *buffer)
  {
@@ -364,7 +397,7 @@ Index: ioemu/vnc.c
  }
  
  static void buffer_append(Buffer *buffer, const void *data, size_t len)
-@@ -443,12 +525,12 @@
+@@ -551,12 +640,12 @@
      if (!ret)
        return;
  
@@ -380,7 +413,7 @@ Index: ioemu/vnc.c
  }
  
  static void vnc_read_when(VncState *vs, VncReadEvent *func, size_t expecting)
-@@ -480,11 +562,11 @@
+@@ -588,11 +677,11 @@
            return;
  
        if (!ret) {
@@ -395,7 +428,7 @@ Index: ioemu/vnc.c
      }
  }
  
-@@ -492,9 +574,9 @@
+@@ -600,9 +689,9 @@
  {
      buffer_reserve(&vs->output, len);
  
@@ -408,7 +441,7 @@ Index: ioemu/vnc.c
  
      buffer_append(&vs->output, data, len);
  }
-@@ -616,24 +698,25 @@
+@@ -724,22 +813,25 @@
      do_key_event(vs, down, sym);
  }
  
@@ -430,10 +463,8 @@ Index: ioemu/vnc.c
 -      char *old_row = vs->old_data + y_position * vs->ds->linesize;
 -
 -      for (i = 0; i < h; i++) {
--          vs->dirty_row[y_position + i] = (1ULL << (vs->ds->width / 16)) - 1;
--          if (vs->ds->width == 1024) {
--            vs->dirty_row[y_position + i] = ~(0ULL);
--          }
+-            vnc_set_bits(vs->dirty_row[y_position + i], 
+-                         (vs->ds->width / 16), VNC_DIRTY_WORDS);
 -          memset(old_row, 42, vs->ds->width * vs->depth);
 -          old_row += vs->ds->linesize;
 -      }
@@ -447,8 +478,8 @@ Index: ioemu/vnc.c
  }
  
  static void set_encodings(VncState *vs, int32_t *encodings, size_t 
n_encodings)
-@@ -690,8 +773,6 @@
-       vnc_client_error(vs);
+@@ -845,8 +937,6 @@
+     }
  
      vnc_dpy_resize(vs->ds, vs->ds->width, vs->ds->height);
 -    memset(vs->dirty_row, 0xFF, sizeof(vs->dirty_row));
@@ -456,7 +487,7 @@ Index: ioemu/vnc.c
  
      vga_hw_invalidate();
      vga_hw_update();
-@@ -848,11 +929,11 @@
+@@ -1012,11 +1102,11 @@
        vnc_write(vs, "RFB 003.003\n", 12);
        vnc_flush(vs);
        vnc_read_when(vs, protocol_version, 12);
@@ -470,7 +501,7 @@ Index: ioemu/vnc.c
      }
  }
  
-@@ -909,17 +990,15 @@
+@@ -1073,17 +1163,15 @@
        exit(1);
      }
  
@@ -493,9 +524,9 @@ Index: ioemu/vnc.c
  }
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-08-04 10:57:28.925994639 +0100
-+++ ioemu/vl.h 2006-08-04 10:57:29.187964445 +0100
-@@ -302,6 +302,7 @@
+--- ioemu.orig/vl.h    2006-08-07 17:42:27.807385506 +0100
++++ ioemu/vl.h 2006-08-07 17:43:16.361100898 +0100
+@@ -318,6 +318,7 @@
  int is_graphic_console(void);
  CharDriverState *text_console_init(DisplayState *ds);
  void console_select(unsigned int index);
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/vnc-start-vncviewer
--- a/tools/ioemu/patches/vnc-start-vncviewer   Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/vnc-start-vncviewer   Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/vnc.c
 Index: ioemu/vnc.c
 ===================================================================
---- ioemu.orig/vnc.c   2006-08-04 10:57:29.187964445 +0100
-+++ ioemu/vnc.c        2006-08-04 10:57:29.351945544 +0100
-@@ -1002,3 +1002,25 @@
+--- ioemu.orig/vnc.c   2006-08-07 17:44:32.852773890 +0100
++++ ioemu/vnc.c        2006-08-07 17:44:32.915767031 +0100
+@@ -1175,3 +1175,25 @@
  
      vnc_dpy_resize(vs->ds, 640, 400);
  }
@@ -30,9 +30,9 @@ Index: ioemu/vnc.c
 +}
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-08-04 10:57:29.186964560 +0100
-+++ ioemu/vl.c 2006-08-04 10:57:29.354945198 +0100
-@@ -121,6 +121,7 @@
+--- ioemu.orig/vl.c    2006-08-07 17:44:32.851773999 +0100
++++ ioemu/vl.c 2006-08-07 17:44:32.918766704 +0100
+@@ -120,6 +120,7 @@
  int bios_size;
  static DisplayState display_state;
  int nographic;
@@ -40,7 +40,7 @@ Index: ioemu/vl.c
  const char* keyboard_layout = NULL;
  int64_t ticks_per_sec;
  int boot_device = 'c';
-@@ -4804,6 +4805,7 @@
+@@ -5340,6 +5341,7 @@
  #endif
             "-loadvm file    start right away with a saved state (loadvm in 
monitor)\n"
           "-vnc display    start a VNC server on display\n"
@@ -48,15 +48,15 @@ Index: ioemu/vl.c
             "-timeoffset     time offset (in seconds) from local time\n"
             "-acpi           disable or enable ACPI of HVM domain \n"
             "\n"
-@@ -4893,6 +4895,7 @@
-     QEMU_OPTION_usbdevice,
-     QEMU_OPTION_smp,
-     QEMU_OPTION_vnc,
+@@ -5428,6 +5430,7 @@
+     QEMU_OPTION_vcpus,
+     QEMU_OPTION_timeoffset,
+     QEMU_OPTION_acpi,
 +    QEMU_OPTION_vncviewer,
+ };
  
-     QEMU_OPTION_d,
-     QEMU_OPTION_vcpus,
-@@ -4969,6 +4972,7 @@
+ typedef struct QEMUOption {
+@@ -5502,6 +5505,7 @@
      { "usbdevice", HAS_ARG, QEMU_OPTION_usbdevice },
      { "smp", HAS_ARG, QEMU_OPTION_smp },
      { "vnc", HAS_ARG, QEMU_OPTION_vnc },
@@ -64,7 +64,7 @@ Index: ioemu/vl.c
      
      /* temporary options */
      { "usb", 0, QEMU_OPTION_usb },
-@@ -5300,6 +5304,7 @@
+@@ -5868,6 +5872,7 @@
  #endif
      snapshot = 0;
      nographic = 0;
@@ -72,17 +72,17 @@ Index: ioemu/vl.c
      kernel_filename = NULL;
      kernel_cmdline = "";
  #ifdef TARGET_PPC
-@@ -5669,6 +5674,9 @@
-                   exit(1);
-               }
-               break;
+@@ -6262,6 +6267,9 @@
+             case QEMU_OPTION_acpi:
+                 acpi_enabled = 1;
+                 break;
 +            case QEMU_OPTION_vncviewer:
 +                vncviewer++;
 +                break;
-             case QEMU_OPTION_domainname:
-                 strncat(domain_name, optarg, sizeof(domain_name) - 20);
-                 break;
-@@ -5933,6 +5941,8 @@
+             }
+         }
+     }
+@@ -6458,6 +6466,8 @@
          dumb_display_init(ds);
      } else if (vnc_display != -1) {
        vnc_display_init(ds, vnc_display);
@@ -93,9 +93,9 @@ Index: ioemu/vl.c
          sdl_display_init(ds, full_screen);
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-08-04 10:57:29.187964445 +0100
-+++ ioemu/vl.h 2006-08-04 10:57:29.355945083 +0100
-@@ -734,6 +734,7 @@
+--- ioemu.orig/vl.h    2006-08-07 17:44:32.853773781 +0100
++++ ioemu/vl.h 2006-08-07 17:44:32.919766595 +0100
+@@ -785,6 +785,7 @@
  
  /* vnc.c */
  void vnc_display_init(DisplayState *ds, int display);
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/vnc-title-domain-name
--- a/tools/ioemu/patches/vnc-title-domain-name Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/vnc-title-domain-name Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/vnc.c
 Index: ioemu/vnc.c
 ===================================================================
---- ioemu.orig/vnc.c   2006-07-26 14:23:52.426074956 +0100
-+++ ioemu/vnc.c        2006-07-26 14:24:15.210558295 +0100
-@@ -850,6 +850,7 @@
+--- ioemu.orig/vnc.c   2006-08-07 17:44:32.915767031 +0100
++++ ioemu/vnc.c        2006-08-07 17:44:33.084748631 +0100
+@@ -1014,6 +1014,7 @@
  
  static int protocol_client_init(VncState *vs, char *data, size_t len)
  {
@@ -10,7 +10,7 @@ Index: ioemu/vnc.c
      char pad[3] = { 0, 0, 0 };
  
      vs->width = vs->ds->width;
-@@ -886,8 +887,10 @@
+@@ -1059,8 +1060,10 @@
        
      vnc_write(vs, pad, 3);           /* padding */
  
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/xen-build
--- a/tools/ioemu/patches/xen-build     Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/xen-build     Mon Aug 07 18:28:50 2006 +0100
@@ -1,29 +1,38 @@ Index: ioemu/Makefile
 Index: ioemu/Makefile
 ===================================================================
---- ioemu.orig/Makefile        2006-07-25 14:18:33.163941149 +0100
-+++ ioemu/Makefile     2006-07-25 14:24:31.695096861 +0100
-@@ -1,6 +1,9 @@
+--- ioemu.orig/Makefile        2006-08-06 02:03:44.915543858 +0100
++++ ioemu/Makefile     2006-08-06 02:11:33.461331417 +0100
+@@ -1,11 +1,14 @@
+ # Makefile for QEMU.
+ 
 -include config-host.mak
 +XEN_ROOT=../..
 +include $(XEN_ROOT)/tools/Rules.mk
++
++-include config-host.mak
+ 
+ .PHONY: all clean distclean dvi info install install-doc tar tarbin \
+       speed test test2 html dvi info
  
 -CFLAGS=-Wall -O2 -g -fno-strict-aliasing -I.
-+-include config-host.mak
-+
 +CFLAGS+=-Wall -O2 -g -fno-strict-aliasing -I.
  ifdef CONFIG_DARWIN
  CFLAGS+= -mdynamic-no-pic
  endif
-@@ -17,7 +20,7 @@
+@@ -25,9 +28,11 @@
  DOCS=
  endif
  
--all: dyngen$(EXESUF) $(TOOLS) $(DOCS)
-+all: $(DOCS)
-       for d in $(TARGET_DIRS); do \
-       $(MAKE) -C $$d $@ || exit 1 ; \
-         done
-@@ -34,7 +37,7 @@
++TOOLS=
++
+ all: $(TOOLS) $(DOCS) recurse-all
+ 
+-subdir-%: dyngen$(EXESUF)
++subdir-%:
+       $(MAKE) -C $(subst subdir-,,$@) all
+ 
+ recurse-all: $(patsubst %,subdir-%, $(TARGET_DIRS))
+@@ -44,7 +49,7 @@
        rm -f *.o *.a $(TOOLS) dyngen$(EXESUF) TAGS *.pod *~ */*~
        $(MAKE) -C tests clean
        for d in $(TARGET_DIRS); do \
@@ -32,26 +41,26 @@ Index: ioemu/Makefile
          done
  
  distclean: clean
-@@ -57,12 +60,12 @@
+@@ -68,12 +73,12 @@
  
  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 \
+-                      video.x openbios-sparc32 linux_boot.bin; do \
 -              $(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x 
"$(DESTDIR)$(datadir)"; \
 -      done
 +#     $(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 \
++#                     video.x openbios-sparc32 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 \
-@@ -96,11 +99,11 @@
+@@ -107,11 +112,11 @@
        texi2dvi $<
  
  qemu.1: qemu-doc.texi
@@ -64,11 +73,11 @@ Index: ioemu/Makefile
 +      perl -w $(SRC_PATH)/texi2pod.pl $< qemu-img.pod
        pod2man --section=1 --center=" " --release=" " qemu-img.pod > $@
  
- FILE=qemu-$(shell cat VERSION)
+ info: qemu-doc.info qemu-tech.info
 Index: ioemu/Makefile.target
 ===================================================================
---- ioemu.orig/Makefile.target 2006-07-25 14:18:33.163941149 +0100
-+++ ioemu/Makefile.target      2006-07-25 14:24:17.501562050 +0100
+--- ioemu.orig/Makefile.target 2006-08-06 02:03:44.922543079 +0100
++++ ioemu/Makefile.target      2006-08-06 02:09:22.320951557 +0100
 @@ -1,5 +1,8 @@
  include config.mak
  
@@ -102,7 +111,7 @@ Index: ioemu/Makefile.target
  #CFLAGS+=-Werror
  LDFLAGS=-g
  LIBS=
-@@ -155,6 +165,9 @@
+@@ -167,6 +177,9 @@
  
  DEFINES+=-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
  LIBS+=-lm
@@ -112,7 +121,7 @@ Index: ioemu/Makefile.target
  ifndef CONFIG_USER_ONLY
  LIBS+=-lz
  endif
-@@ -264,7 +277,7 @@
+@@ -281,7 +294,7 @@
  all: $(PROGS)
  
  $(QEMU_USER): $(OBJS)
@@ -121,7 +130,7 @@ Index: ioemu/Makefile.target
  ifeq ($(ARCH),alpha)
  # Mark as 32 bit binary, i. e. it will be mapped into the low 31 bit of
  # the address space (31 bit so sign extending doesn't matter)
-@@ -490,10 +503,16 @@
+@@ -528,10 +541,16 @@
  clean:
        rm -f *.o  *.a *~ $(PROGS) gen-op.h opc.h op.h nwfpe/*.o slirp/*.o 
fpu/*.o
  
@@ -140,8 +149,8 @@ Index: ioemu/Makefile.target
  include .depend
 Index: ioemu/configure
 ===================================================================
---- ioemu.orig/configure       2006-07-25 14:18:33.163941149 +0100
-+++ ioemu/configure    2006-07-25 14:24:17.501562050 +0100
+--- ioemu.orig/configure       2006-08-06 02:03:45.783447220 +0100
++++ ioemu/configure    2006-08-06 02:09:41.076860544 +0100
 @@ -18,8 +18,8 @@
  
  # default parameters
@@ -169,7 +178,7 @@ Index: ioemu/configure
  softmmu="yes"
  user="no"
  build_docs="no"
-@@ -366,6 +367,8 @@
+@@ -380,6 +381,8 @@
      exit 1
  fi
  
@@ -178,7 +187,7 @@ Index: ioemu/configure
  if test -z "$cross_prefix" ; then
  
  # ---
-@@ -491,14 +494,16 @@
+@@ -505,14 +508,16 @@
  datadir="$prefix"
  docdir="$prefix"
  bindir="$prefix"
@@ -197,7 +206,7 @@ Index: ioemu/configure
  fi
  
  echo "Install prefix    $prefix"
-@@ -567,6 +572,8 @@
+@@ -583,6 +588,8 @@
  echo "mandir=$mandir" >> $config_mak
  echo "datadir=$datadir" >> $config_mak
  echo "docdir=$docdir" >> $config_mak
@@ -206,7 +215,7 @@ Index: ioemu/configure
  echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
  echo "MAKE=$make" >> $config_mak
  echo "INSTALL=$install" >> $config_mak
-@@ -748,7 +755,7 @@
+@@ -770,7 +777,7 @@
  # don't use ln -sf as not all "ln -sf" over write the file/link
  #
  rm -f $target_dir/Makefile
@@ -215,7 +224,7 @@ Index: ioemu/configure
  
  
  echo "# Automatically generated by configure - do not modify" > $config_mak
-@@ -761,6 +768,12 @@
+@@ -784,6 +791,12 @@
  interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
  echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
  
@@ -228,7 +237,7 @@ Index: ioemu/configure
  if test "$target_cpu" = "i386" ; then
    echo "TARGET_ARCH=i386" >> $config_mak
    echo "#define TARGET_ARCH \"i386\"" >> $config_h
-@@ -823,6 +836,10 @@
+@@ -850,6 +863,10 @@
    echo "#define CONFIG_USER_ONLY 1" >> $config_h
  fi
  
@@ -236,6 +245,6 @@ Index: ioemu/configure
 +  echo "#define CONFIG_DM 1" >> $config_h
 +fi
 +
- if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
+ if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = 
"sparc" -o "$target_cpu" = "sparc64"; then
    echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
    echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/xen-domain-name
--- a/tools/ioemu/patches/xen-domain-name       Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/xen-domain-name       Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/sdl.c
 Index: ioemu/sdl.c
 ===================================================================
---- ioemu.orig/sdl.c   2006-07-27 11:16:53.590928008 +0100
-+++ ioemu/sdl.c        2006-07-27 11:16:58.124426148 +0100
-@@ -268,14 +268,14 @@
+--- ioemu.orig/sdl.c   2006-08-06 02:03:48.563137711 +0100
++++ ioemu/sdl.c        2006-08-06 02:17:16.063137816 +0100
+@@ -273,14 +273,14 @@
  static void sdl_update_caption(void)
  {
      char buf[1024];
@@ -21,18 +21,18 @@ Index: ioemu/sdl.c
  static void sdl_hide_cursor(void)
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-27 11:16:57.828458912 +0100
-+++ ioemu/vl.c 2006-07-27 11:16:58.126425927 +0100
-@@ -159,6 +159,8 @@
- #define MAX_CPUS 1
- #endif
+--- ioemu.orig/vl.c    2006-08-06 02:16:31.246133963 +0100
++++ ioemu/vl.c 2006-08-06 02:17:31.428424918 +0100
+@@ -158,6 +158,8 @@
+ int acpi_enabled = 1;
+ int fd_bootchk = 1;
  
 +char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
 +
  /***********************************************************/
  /* x86 ISA bus support */
  
-@@ -4699,6 +4701,7 @@
+@@ -5235,6 +5237,7 @@
             "-s              wait gdb connection to port %d\n"
             "-p port         change gdb connection port\n"
             "-l item1,...    output log to %s (use -d ? for a list of log 
items)\n"
@@ -40,7 +40,7 @@ Index: ioemu/vl.c
             "-hdachs c,h,s[,t]  force hard disk 0 physical geometry and the 
optional BIOS\n"
             "                translation (t=none or lba) (usually qemu can 
guess them)\n"
             "-L path         set the directory for the BIOS and VGA BIOS\n"
-@@ -4788,6 +4791,7 @@
+@@ -5319,6 +5322,7 @@
      QEMU_OPTION_g,
      QEMU_OPTION_std_vga,
      QEMU_OPTION_monitor,
@@ -48,7 +48,7 @@ Index: ioemu/vl.c
      QEMU_OPTION_serial,
      QEMU_OPTION_parallel,
      QEMU_OPTION_loadvm,
-@@ -4861,6 +4865,7 @@
+@@ -5396,6 +5400,7 @@
      { "localtime", 0, QEMU_OPTION_localtime },
      { "std-vga", 0, QEMU_OPTION_std_vga },
      { "monitor", 1, QEMU_OPTION_monitor },
@@ -56,10 +56,10 @@ Index: ioemu/vl.c
      { "serial", 1, QEMU_OPTION_serial },
      { "parallel", 1, QEMU_OPTION_parallel },
      { "loadvm", HAS_ARG, QEMU_OPTION_loadvm },
-@@ -5484,6 +5489,9 @@
-                   exit(1);
-               }
-               break;
+@@ -6062,6 +6067,9 @@
+             case QEMU_OPTION_no_acpi:
+                 acpi_enabled = 0;
+                 break;
 +            case QEMU_OPTION_domainname:
 +                strncat(domain_name, optarg, sizeof(domain_name) - 20);
 +                break;
@@ -68,9 +68,9 @@ Index: ioemu/vl.c
      }
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-07-27 11:16:57.682475072 +0100
-+++ ioemu/vl.h 2006-07-27 11:16:58.127425816 +0100
-@@ -1094,4 +1094,5 @@
+--- ioemu.orig/vl.h    2006-08-06 02:15:39.711878977 +0100
++++ ioemu/vl.h 2006-08-06 02:17:16.068137258 +0100
+@@ -1185,4 +1185,5 @@
  
  void kqemu_record_dump(void);
  
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/xen-domid
--- a/tools/ioemu/patches/xen-domid     Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/xen-domid     Mon Aug 07 18:28:50 2006 +0100
@@ -1,16 +1,16 @@ Index: ioemu/vl.c
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-27 11:16:58.126425927 +0100
-+++ ioemu/vl.c 2006-07-27 11:16:58.296407110 +0100
-@@ -160,6 +160,7 @@
- #endif
+--- ioemu.orig/vl.c    2006-08-06 02:17:31.428424918 +0100
++++ ioemu/vl.c 2006-08-06 02:18:12.550840673 +0100
+@@ -159,6 +159,7 @@
+ int fd_bootchk = 1;
  
  char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
 +extern int domid;
  
  /***********************************************************/
  /* x86 ISA bus support */
-@@ -4701,6 +4702,7 @@
+@@ -5237,6 +5238,7 @@
             "-s              wait gdb connection to port %d\n"
             "-p port         change gdb connection port\n"
             "-l item1,...    output log to %s (use -d ? for a list of log 
items)\n"
@@ -18,25 +18,25 @@ Index: ioemu/vl.c
             "-domain-name    domain name that we're serving\n"
             "-hdachs c,h,s[,t]  force hard disk 0 physical geometry and the 
optional BIOS\n"
             "                translation (t=none or lba) (usually qemu can 
guess them)\n"
-@@ -4804,6 +4806,8 @@
-     QEMU_OPTION_usbdevice,
+@@ -5336,6 +5338,8 @@
      QEMU_OPTION_smp,
      QEMU_OPTION_vnc,
+     QEMU_OPTION_no_acpi,
 +
 +    QEMU_OPTION_d,
  };
  
  typedef struct QEMUOption {
-@@ -4879,6 +4883,8 @@
-     /* temporary options */
+@@ -5415,6 +5419,8 @@
      { "usb", 0, QEMU_OPTION_usb },
      { "cirrusvga", 0, QEMU_OPTION_cirrusvga },
+     { "no-acpi", 0, QEMU_OPTION_no_acpi },
 +    
 +    { "d", HAS_ARG, QEMU_OPTION_d },
      { NULL },
  };
  
-@@ -5492,6 +5498,10 @@
+@@ -6070,6 +6076,10 @@
              case QEMU_OPTION_domainname:
                  strncat(domain_name, optarg, sizeof(domain_name) - 20);
                  break;
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/xen-mm
--- a/tools/ioemu/patches/xen-mm        Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/xen-mm        Mon Aug 07 18:28:50 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/hw/pc.c
 Index: ioemu/hw/pc.c
 ===================================================================
---- ioemu.orig/hw/pc.c 2006-08-04 10:53:02.019794255 +0100
-+++ ioemu/hw/pc.c      2006-08-04 10:54:56.876531492 +0100
-@@ -639,7 +639,9 @@
+--- ioemu.orig/hw/pc.c 2006-08-06 02:15:39.708879311 +0100
++++ ioemu/hw/pc.c      2006-08-06 02:18:18.875135656 +0100
+@@ -646,7 +646,9 @@
      }
  
      /* allocate RAM */
@@ -12,7 +12,7 @@ Index: ioemu/hw/pc.c
  
      /* BIOS load */
      bios_offset = ram_size + vga_ram_size;
-@@ -671,8 +673,10 @@
+@@ -678,8 +680,10 @@
      ret = load_image(buf, phys_ram_base + vga_bios_offset);
      
      /* setup basic memory access */
@@ -25,20 +25,20 @@ Index: ioemu/hw/pc.c
      isa_bios_size = bios_size;
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-08-04 10:53:02.472741926 +0100
-+++ ioemu/vl.c 2006-08-04 10:55:48.361590787 +0100
-@@ -159,6 +159,8 @@
- #define MAX_CPUS 1
- #endif
+--- ioemu.orig/vl.c    2006-08-06 02:18:12.550840673 +0100
++++ ioemu/vl.c 2006-08-06 02:18:45.608155528 +0100
+@@ -158,6 +158,8 @@
+ int acpi_enabled = 1;
+ int fd_bootchk = 1;
  
 +int xc_handle;
 +
  char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
  extern int domid;
  
-@@ -5106,6 +5108,9 @@
+@@ -5650,6 +5652,9 @@
      QEMUMachine *machine;
-     char usb_devices[MAX_VM_USB_PORTS][128];
+     char usb_devices[MAX_USB_CMDLINE][128];
      int usb_devices_index;
 +    unsigned long nr_pages;
 +    xen_pfn_t *page_array;
@@ -46,7 +46,7 @@ Index: ioemu/vl.c
  
      char qemu_dm_logfilename[64];
  
-@@ -5342,11 +5347,13 @@
+@@ -5917,11 +5922,13 @@
                  ram_size = atol(optarg) * 1024 * 1024;
                  if (ram_size <= 0)
                      help();
@@ -60,7 +60,7 @@ Index: ioemu/vl.c
                  break;
              case QEMU_OPTION_l:
                  {
-@@ -5560,6 +5567,41 @@
+@@ -6133,12 +6140,49 @@
      /* init the memory */
      phys_ram_size = ram_size + vga_ram_size + bios_size;
  
@@ -99,12 +99,11 @@ Index: ioemu/vl.c
 +
 +#else  /* !CONFIG_DM */
 +
- #ifdef CONFIG_SOFTMMU
      phys_ram_base = qemu_vmalloc(phys_ram_size);
      if (!phys_ram_base) {
-@@ -5600,6 +5642,8 @@
+         fprintf(stderr, "Could not allocate physical memory\n");
+         exit(1);
      }
- #endif
  
 +#endif /* !CONFIG_DM */
 +
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/xen-network
--- a/tools/ioemu/patches/xen-network   Mon Aug 07 18:27:27 2006 +0100
+++ b/tools/ioemu/patches/xen-network   Mon Aug 07 18:28:50 2006 +0100
@@ -1,7 +1,7 @@ Index: ioemu/vl.c
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-07-27 11:16:58.823348777 +0100
-+++ ioemu/vl.c 2006-07-27 11:16:59.169310479 +0100
+--- ioemu.orig/vl.c    2006-08-06 02:22:01.556312045 +0100
++++ ioemu/vl.c 2006-08-06 02:22:53.925474246 +0100
 @@ -89,6 +89,7 @@
  #include "exec-all.h"
  
@@ -10,7 +10,7 @@ Index: ioemu/vl.c
  
  //#define DEBUG_UNUSED_IOPORT
  //#define DEBUG_IOPORT
-@@ -2621,11 +2622,11 @@
+@@ -3090,11 +3091,11 @@
  #endif
  
  static int net_tap_init(VLANState *vlan, const char *ifname1,
@@ -24,7 +24,7 @@ Index: ioemu/vl.c
      char **parg;
      char ifname[128];
  
-@@ -2647,6 +2648,7 @@
+@@ -3116,6 +3117,7 @@
                  parg = args;
                  *parg++ = (char *)setup_script;
                  *parg++ = ifname;
@@ -32,7 +32,7 @@ Index: ioemu/vl.c
                  *parg++ = NULL;
                  execv(setup_script, args);
                  _exit(1);
-@@ -3201,6 +3203,7 @@
+@@ -3671,6 +3673,7 @@
      if (!strcmp(device, "tap")) {
          char ifname[64];
          char setup_script[1024];
@@ -40,7 +40,7 @@ Index: ioemu/vl.c
          int fd;
          if (get_param_value(buf, sizeof(buf), "fd", p) > 0) {
              fd = strtol(buf, NULL, 0);
-@@ -3213,7 +3216,10 @@
+@@ -3683,7 +3686,10 @@
              if (get_param_value(setup_script, sizeof(setup_script), "script", 
p) == 0) {
                  pstrcpy(setup_script, sizeof(setup_script), 
DEFAULT_NETWORK_SCRIPT);
              }
@@ -52,7 +52,7 @@ Index: ioemu/vl.c
          }
      } else
  #endif
-@@ -4672,7 +4678,7 @@
+@@ -5208,7 +5214,7 @@
             "-net tap[,vlan=n],ifname=name\n"
             "                connect the host TAP network interface to VLAN 
'n'\n"
  #else
diff -r 06e2a95d3395 -r ec8dd0528fc6 
tools/ioemu/patches/xenstore-block-device-config
--- a/tools/ioemu/patches/xenstore-block-device-config  Mon Aug 07 18:27:27 
2006 +0100
+++ b/tools/ioemu/patches/xenstore-block-device-config  Mon Aug 07 18:28:50 
2006 +0100
@@ -1,10 +1,10 @@ Index: ioemu/Makefile.target
 Index: ioemu/Makefile.target
 ===================================================================
---- ioemu.orig/Makefile.target 2006-08-04 10:57:28.920995216 +0100
-+++ ioemu/Makefile.target      2006-08-04 10:57:29.641912123 +0100
-@@ -336,6 +336,7 @@
- VL_OBJS+= fdc.o mc146818rtc.o serial.o pc.o
- VL_OBJS+= cirrus_vga.o mixeng.o parallel.o
+--- ioemu.orig/Makefile.target 2006-08-07 17:42:27.802386071 +0100
++++ ioemu/Makefile.target      2006-08-07 17:42:28.683289358 +0100
+@@ -358,6 +358,7 @@
+ VL_OBJS+= cirrus_vga.o mixeng.o parallel.o acpi.o piix_pci.o
+ VL_OBJS+= usb-uhci.o
  VL_OBJS+= piix4acpi.o
 +VL_OBJS+= xenstore.o
  DEFINES += -DHAS_AUDIO
@@ -13,7 +13,7 @@ Index: ioemu/xenstore.c
 Index: ioemu/xenstore.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ ioemu/xenstore.c   2006-08-04 10:57:29.641912123 +0100
++++ ioemu/xenstore.c   2006-08-07 17:42:28.684289249 +0100
 @@ -0,0 +1,187 @@
 +/*
 + * This file is subject to the terms and conditions of the GNU General
@@ -204,9 +204,9 @@ Index: ioemu/xenstore.c
 +}
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-08-04 10:57:29.354945198 +0100
-+++ ioemu/vl.c 2006-08-04 10:57:29.644911777 +0100
-@@ -4711,9 +4711,11 @@
+--- ioemu.orig/vl.c    2006-08-07 17:42:28.393320909 +0100
++++ ioemu/vl.c 2006-08-07 17:42:28.687288922 +0100
+@@ -5242,9 +5242,11 @@
             "Standard options:\n"
             "-M machine      select emulated machine (-M ? for list)\n"
             "-fda/-fdb file  use 'file' as floppy disk 0/1 image\n"
@@ -217,8 +217,8 @@ Index: ioemu/vl.c
 +#endif /* !CONFIG_DM */
             "-boot [a|c|d]   boot on floppy (a), hard disk (c) or CD-ROM (d)\n"
           "-snapshot       write to temporary files instead of disk image 
files\n"
-            "-m megs         set virtual RAM size to megs MB [default=%d]\n"
-@@ -4844,11 +4846,13 @@
+ #ifdef TARGET_I386
+@@ -5370,11 +5372,13 @@
      QEMU_OPTION_M,
      QEMU_OPTION_fda,
      QEMU_OPTION_fdb,
@@ -231,8 +231,8 @@ Index: ioemu/vl.c
 +#endif /* !CONFIG_DM */
      QEMU_OPTION_boot,
      QEMU_OPTION_snapshot,
-     QEMU_OPTION_m,
-@@ -4915,11 +4919,13 @@
+ #ifdef TARGET_I386
+@@ -5445,11 +5449,13 @@
      { "M", HAS_ARG, QEMU_OPTION_M },
      { "fda", HAS_ARG, QEMU_OPTION_fda },
      { "fdb", HAS_ARG, QEMU_OPTION_fdb },
@@ -245,8 +245,8 @@ Index: ioemu/vl.c
 +#endif /* !CONFIG_DM */
      { "boot", HAS_ARG, QEMU_OPTION_boot },
      { "snapshot", 0, QEMU_OPTION_snapshot },
-     { "m", HAS_ARG, QEMU_OPTION_m },
-@@ -5255,10 +5261,16 @@
+ #ifdef TARGET_I386
+@@ -5797,10 +5803,16 @@
  #ifdef CONFIG_GDBSTUB
      int use_gdbstub, gdbstub_port;
  #endif
@@ -265,7 +265,7 @@ Index: ioemu/vl.c
      const char *kernel_filename, *kernel_cmdline;
      DisplayState *ds = &display_state;
      int cyls, heads, secs, translation;
-@@ -5293,8 +5305,10 @@
+@@ -5861,8 +5873,10 @@
      initrd_filename = NULL;
      for(i = 0; i < MAX_FD; i++)
          fd_filename[i] = NULL;
@@ -276,7 +276,7 @@ Index: ioemu/vl.c
      ram_size = DEFAULT_RAM_SIZE * 1024 * 1024;
      vga_ram_size = VGA_RAM_SIZE;
      bios_size = BIOS_SIZE;
-@@ -5307,11 +5321,13 @@
+@@ -5875,11 +5889,13 @@
      vncviewer = 0;
      kernel_filename = NULL;
      kernel_cmdline = "";
@@ -290,7 +290,7 @@ Index: ioemu/vl.c
      cyls = heads = secs = 0;
      translation = BIOS_ATA_TRANSLATION_AUTO;
      pstrcpy(monitor_device, sizeof(monitor_device), "vc");
-@@ -5344,7 +5360,11 @@
+@@ -5912,7 +5928,11 @@
              break;
          r = argv[optind];
          if (r[0] != '-') {
@@ -302,7 +302,7 @@ Index: ioemu/vl.c
          } else {
              const QEMUOption *popt;
  
-@@ -5388,6 +5408,7 @@
+@@ -5956,6 +5976,7 @@
              case QEMU_OPTION_initrd:
                  initrd_filename = optarg;
                  break;
@@ -310,7 +310,7 @@ Index: ioemu/vl.c
              case QEMU_OPTION_hda:
              case QEMU_OPTION_hdb:
              case QEMU_OPTION_hdc:
-@@ -5400,6 +5421,7 @@
+@@ -5968,6 +5989,7 @@
                          cdrom_index = -1;
                  }
                  break;
@@ -318,7 +318,7 @@ Index: ioemu/vl.c
              case QEMU_OPTION_snapshot:
                  snapshot = 1;
                  break;
-@@ -5452,11 +5474,13 @@
+@@ -6020,11 +6042,13 @@
              case QEMU_OPTION_append:
                  kernel_cmdline = optarg;
                  break;
@@ -332,7 +332,7 @@ Index: ioemu/vl.c
              case QEMU_OPTION_boot:
                  boot_device = optarg[0];
                  if (boot_device != 'a' && 
-@@ -5698,12 +5722,18 @@
+@@ -6274,12 +6298,18 @@
          }
      }
  
@@ -351,15 +351,15 @@ Index: ioemu/vl.c
      if (!linux_boot && 
          hd_filename[0] == '\0' && 
          (cdrom_index >= 0 && hd_filename[cdrom_index] == '\0') &&
-@@ -5717,6 +5747,7 @@
+@@ -6293,6 +6323,7 @@
          else
              boot_device = 'd';
      }
 +#endif /* !CONFIG_DM */
  
- #if !defined(CONFIG_SOFTMMU)
-     /* must avoid mmap() usage of glibc by setting a buffer "by hand" */
-@@ -5870,6 +5901,7 @@
+     setvbuf(stdout, NULL, _IOLBF, 0);
+     
+@@ -6407,6 +6438,7 @@
  
  #endif /* !CONFIG_DM */
  
@@ -367,7 +367,7 @@ Index: ioemu/vl.c
      /* we always create the cdrom drive, even if no disk is there */
      bdrv_init();
      if (cdrom_index >= 0) {
-@@ -5896,6 +5928,7 @@
+@@ -6433,6 +6465,7 @@
              }
          }
      }
@@ -375,9 +375,9 @@ Index: ioemu/vl.c
  
      /* we always create at least one floppy disk */
      fd_table[0] = bdrv_new("fda");
-@@ -6031,6 +6064,8 @@
- #endif
-     init_timers();
+@@ -6511,6 +6544,8 @@
+         }
+     }
  
 +    qemu_set_fd_handler(xenstore_fd(), xenstore_process_event, NULL, NULL);
 +
@@ -386,8 +386,8 @@ Index: ioemu/vl.c
                    kernel_filename, kernel_cmdline, initrd_filename,
 Index: ioemu/monitor.c
 ===================================================================
---- ioemu.orig/monitor.c       2006-08-04 10:57:28.195078886 +0100
-+++ ioemu/monitor.c    2006-08-04 10:57:29.645911662 +0100
+--- ioemu.orig/monitor.c       2006-08-07 17:42:27.132461888 +0100
++++ ioemu/monitor.c    2006-08-07 17:42:28.688288814 +0100
 @@ -24,6 +24,7 @@
  #include "vl.h"
  #include "disas.h"
@@ -396,7 +396,7 @@ Index: ioemu/monitor.c
  
  //#define DEBUG
  //#define DEBUG_COMPLETION
-@@ -328,7 +329,7 @@
+@@ -330,7 +331,7 @@
      return 0;
  }
  
@@ -405,7 +405,7 @@ Index: ioemu/monitor.c
  {
      BlockDriverState *bs;
  
-@@ -340,7 +341,7 @@
+@@ -342,7 +343,7 @@
      eject_device(bs, force);
  }
  
@@ -416,9 +416,9 @@ Index: ioemu/monitor.c
      int i;
 Index: ioemu/block.c
 ===================================================================
---- ioemu.orig/block.c 2006-08-04 10:57:21.718825369 +0100
-+++ ioemu/block.c      2006-08-04 10:57:29.646911546 +0100
-@@ -750,6 +750,7 @@
+--- ioemu.orig/block.c 2006-08-07 17:42:21.704076241 +0100
++++ ioemu/block.c      2006-08-07 17:42:28.689288705 +0100
+@@ -758,6 +758,7 @@
  static void raw_close(BlockDriverState *bs)
  {
      BDRVRawState *s = bs->opaque;
@@ -428,9 +428,9 @@ Index: ioemu/block.c
  
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-08-04 10:57:29.355945083 +0100
-+++ ioemu/vl.h 2006-08-04 10:57:29.647911431 +0100
-@@ -1093,6 +1093,8 @@
+--- ioemu.orig/vl.h    2006-08-07 17:42:28.394320800 +0100
++++ ioemu/vl.h 2006-08-07 17:42:28.689288705 +0100
+@@ -1184,6 +1184,8 @@
  void term_print_help(void);
  void monitor_readline(const char *prompt, int is_password,
                        char *buf, int buf_size);
@@ -439,7 +439,7 @@ Index: ioemu/vl.h
  
  /* readline.c */
  typedef void ReadLineFunc(void *opaque, const char *str);
-@@ -1105,6 +1107,13 @@
+@@ -1196,6 +1198,13 @@
  void readline_start(const char *prompt, int is_password,
                      ReadLineFunc *readline_func, void *opaque);
  
@@ -455,9 +455,9 @@ Index: ioemu/vl.h
  extern char domain_name[];
 Index: ioemu/hw/ide.c
 ===================================================================
---- ioemu.orig/hw/ide.c        2006-08-04 10:57:28.612030827 +0100
-+++ ioemu/hw/ide.c     2006-08-04 10:57:29.648911316 +0100
-@@ -1279,6 +1279,7 @@
+--- ioemu.orig/hw/ide.c        2006-08-07 17:42:27.552414361 +0100
++++ ioemu/hw/ide.c     2006-08-07 17:42:28.691288487 +0100
+@@ -1158,6 +1158,7 @@
          } else {
              ide_atapi_cmd_error(s, SENSE_NOT_READY, 
                                  ASC_MEDIUM_NOT_PRESENT);
diff -r 06e2a95d3395 -r ec8dd0528fc6 tools/ioemu/patches/xenstore-write-vnc-port
--- a/tools/ioemu/patches/xenstore-write-vnc-port       Mon Aug 07 18:27:27 
2006 +0100
+++ b/tools/ioemu/patches/xenstore-write-vnc-port       Mon Aug 07 18:28:50 
2006 +0100
@@ -1,7 +1,7 @@ Index: ioemu/xenstore.c
 Index: ioemu/xenstore.c
 ===================================================================
---- ioemu.orig/xenstore.c      2006-08-04 10:57:29.641912123 +0100
-+++ ioemu/xenstore.c   2006-08-04 10:57:30.244842629 +0100
+--- ioemu.orig/xenstore.c      2006-08-07 17:42:28.684289249 +0100
++++ ioemu/xenstore.c   2006-08-07 17:42:28.891266728 +0100
 @@ -185,3 +185,31 @@
      free(image);
      free(vec);
@@ -36,9 +36,9 @@ Index: ioemu/xenstore.c
 +}
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-08-04 10:57:29.644911777 +0100
-+++ ioemu/vl.c 2006-08-04 10:57:30.246842399 +0100
-@@ -5976,6 +5976,7 @@
+--- ioemu.orig/vl.c    2006-08-07 17:42:28.687288922 +0100
++++ ioemu/vl.c 2006-08-07 17:42:28.894266401 +0100
+@@ -6501,6 +6501,7 @@
        vnc_display_init(ds, vnc_display);
        if (vncviewer)
            vnc_start_viewer(vnc_display);
@@ -48,9 +48,9 @@ Index: ioemu/vl.c
          sdl_display_init(ds, full_screen);
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-08-04 10:57:29.647911431 +0100
-+++ ioemu/vl.h 2006-08-04 10:57:30.247842283 +0100
-@@ -1112,6 +1112,7 @@
+--- ioemu.orig/vl.h    2006-08-07 17:42:28.689288705 +0100
++++ ioemu/vl.h 2006-08-07 17:42:28.895266293 +0100
+@@ -1203,6 +1203,7 @@
  int xenstore_fd(void);
  void xenstore_process_event(void *opaque);
  void xenstore_check_new_media_present(int timeout);

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.