ia64/xen-unstable

changeset 10988:ec8dd0528fc6

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

Signed-off-by: Christian Limpach <Christian.Limpach@xensource.com>
author chris@kneesaa.uk.xensource.com
date Mon Aug 07 18:28:50 2006 +0100 (2006-08-07)
parents 06e2a95d3395
children 600da8225858 87cefa5f7c5e
files tools/ioemu/patches/acpi-poweroff-support tools/ioemu/patches/acpi-support tools/ioemu/patches/acpi-timer-support tools/ioemu/patches/domain-destroy tools/ioemu/patches/domain-reset tools/ioemu/patches/domain-timeoffset tools/ioemu/patches/hypervisor-pit tools/ioemu/patches/ide-hd-multithread tools/ioemu/patches/ioemu-ia64 tools/ioemu/patches/qemu-64bit tools/ioemu/patches/qemu-allow-disable-sdl tools/ioemu/patches/qemu-bugfixes tools/ioemu/patches/qemu-cleanup tools/ioemu/patches/qemu-dm tools/ioemu/patches/qemu-fix-memset-args tools/ioemu/patches/qemu-fix-write-to-disk-synchronous tools/ioemu/patches/qemu-hvm-banner tools/ioemu/patches/qemu-init-vgabios tools/ioemu/patches/qemu-logging tools/ioemu/patches/qemu-no-apic tools/ioemu/patches/qemu-nobios tools/ioemu/patches/qemu-smp tools/ioemu/patches/qemu-target-i386-dm tools/ioemu/patches/qemu-timer tools/ioemu/patches/serial-non-block tools/ioemu/patches/series tools/ioemu/patches/shadow-vram tools/ioemu/patches/shared-vram tools/ioemu/patches/support-xm-console tools/ioemu/patches/vnc-access-monitor-vt tools/ioemu/patches/vnc-cleanup tools/ioemu/patches/vnc-fixes tools/ioemu/patches/vnc-start-vncviewer tools/ioemu/patches/vnc-title-domain-name tools/ioemu/patches/xen-build tools/ioemu/patches/xen-domain-name tools/ioemu/patches/xen-domid tools/ioemu/patches/xen-mm tools/ioemu/patches/xen-network tools/ioemu/patches/xenstore-block-device-config tools/ioemu/patches/xenstore-write-vnc-port
line diff
     1.1 --- a/tools/ioemu/patches/acpi-poweroff-support	Mon Aug 07 18:27:27 2006 +0100
     1.2 +++ b/tools/ioemu/patches/acpi-poweroff-support	Mon Aug 07 18:28:50 2006 +0100
     1.3 @@ -1,10 +1,10 @@
     1.4  Index: ioemu/hw/piix4acpi.c
     1.5  ===================================================================
     1.6 ---- ioemu.orig/hw/piix4acpi.c	2006-07-12 11:35:03.574468946 +0100
     1.7 -+++ ioemu/hw/piix4acpi.c	2006-07-12 11:35:03.631461806 +0100
     1.8 +--- ioemu.orig/hw/piix4acpi.c	2006-08-06 02:30:29.288761563 +0100
     1.9 ++++ ioemu/hw/piix4acpi.c	2006-08-06 02:30:42.131331446 +0100
    1.10  @@ -45,6 +45,10 @@
    1.11   #define GBL_RLS           (1 << 2)
    1.12 - #define SLP_EN   	  (1 << 13)
    1.13 + #define SLP_EN            (1 << 13)
    1.14   
    1.15  +/* Bits of PM1a register define here  */
    1.16  +#define SLP_TYP_MASK    0x1C00
    1.17 @@ -13,7 +13,7 @@ Index: ioemu/hw/piix4acpi.c
    1.18   typedef struct AcpiDeviceState AcpiDeviceState;
    1.19   AcpiDeviceState *acpi_device_table;
    1.20   
    1.21 -@@ -270,7 +274,14 @@
    1.22 +@@ -190,7 +194,14 @@
    1.23       s->pm1_control = (val<<8)||(s->pm1_control);
    1.24   /*    printf("acpiPm1ControlP1_writeb \n addr %x val:%x\n", addr, val); */
    1.25   
    1.26 @@ -29,7 +29,7 @@ Index: ioemu/hw/piix4acpi.c
    1.27   
    1.28   static uint32_t acpiPm1ControlP1_readb(void *opaque, uint32_t addr)
    1.29   {
    1.30 -@@ -337,7 +348,14 @@
    1.31 +@@ -257,7 +268,14 @@
    1.32       s->pm1_control = val;
    1.33   /*    printf("acpiPm1Control_writew \n addr %x val:%x\n", addr, val); */
    1.34   
     2.1 --- a/tools/ioemu/patches/acpi-support	Mon Aug 07 18:27:27 2006 +0100
     2.2 +++ b/tools/ioemu/patches/acpi-support	Mon Aug 07 18:28:50 2006 +0100
     2.3 @@ -1,94 +1,50 @@
     2.4  Index: ioemu/Makefile.target
     2.5  ===================================================================
     2.6 ---- ioemu.orig/Makefile.target	2006-08-03 19:19:39.000000000 +0100
     2.7 -+++ ioemu/Makefile.target	2006-08-04 10:35:36.445703379 +0100
     2.8 -@@ -335,6 +335,7 @@
     2.9 - VL_OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
    2.10 +--- ioemu.orig/Makefile.target	2006-08-06 02:23:23.000000000 +0100
    2.11 ++++ ioemu/Makefile.target	2006-08-07 17:38:47.698306442 +0100
    2.12 +@@ -357,6 +357,7 @@
    2.13   VL_OBJS+= fdc.o mc146818rtc.o serial.o pc.o
    2.14 - VL_OBJS+= cirrus_vga.o mixeng.o parallel.o
    2.15 + VL_OBJS+= cirrus_vga.o mixeng.o parallel.o acpi.o piix_pci.o
    2.16 + VL_OBJS+= usb-uhci.o
    2.17  +VL_OBJS+= piix4acpi.o
    2.18   DEFINES += -DHAS_AUDIO
    2.19   endif
    2.20   ifeq ($(TARGET_BASE_ARCH), ppc)
    2.21  Index: ioemu/hw/pc.c
    2.22  ===================================================================
    2.23 ---- ioemu.orig/hw/pc.c	2006-08-03 19:19:39.000000000 +0100
    2.24 -+++ ioemu/hw/pc.c	2006-08-04 10:38:05.559415853 +0100
    2.25 -@@ -566,6 +566,9 @@
    2.26 +--- ioemu.orig/hw/pc.c	2006-08-06 02:23:45.000000000 +0100
    2.27 ++++ ioemu/hw/pc.c	2006-08-07 17:42:00.939426374 +0100
    2.28 +@@ -572,6 +572,9 @@
    2.29   static int parallel_io[MAX_PARALLEL_PORTS] = { 0x378, 0x278, 0x3bc };
    2.30   static int parallel_irq[MAX_PARALLEL_PORTS] = { 7, 7, 7 };
    2.31   
    2.32  +/* PIIX4 acpi pci configuration space, func 3 */
    2.33 -+extern void pci_piix4_acpi_init(PCIBus *bus);
    2.34 ++extern void pci_piix4_acpi_init(PCIBus *bus, int devfn);
    2.35  +
    2.36   #ifdef HAS_AUDIO
    2.37   static void audio_init (PCIBus *pci_bus)
    2.38   {
    2.39 -@@ -867,6 +870,10 @@
    2.40 +@@ -874,11 +877,15 @@
    2.41   
    2.42       cmos_init(ram_size, boot_device, bs_table, timeoffset);
    2.43   
    2.44  +    /* using PIIX4 acpi model */
    2.45  +    if (pci_enabled && acpi_enabled)
    2.46 -+        pci_piix4_acpi_init(pci_bus);
    2.47 ++        pci_piix4_acpi_init(pci_bus, piix3_devfn + 3);
    2.48  +
    2.49       if (pci_enabled && usb_enabled) {
    2.50 -         usb_uhci_init(pci_bus, usb_root_ports);
    2.51 -         usb_attach(usb_root_ports[0], vm_usb_hub);
    2.52 -Index: ioemu/hw/pci.c
    2.53 -===================================================================
    2.54 ---- ioemu.orig/hw/pci.c	2006-08-03 19:19:35.000000000 +0100
    2.55 -+++ ioemu/hw/pci.c	2006-08-03 19:19:39.000000000 +0100
    2.56 -@@ -1697,7 +1697,7 @@
    2.57 - static uint32_t pci_bios_io_addr;
    2.58 - static uint32_t pci_bios_mem_addr;
    2.59 - /* host irqs corresponding to PCI irqs A-D */
    2.60 --static uint8_t pci_irqs[4] = { 11, 9, 11, 9 };
    2.61 -+static uint8_t pci_irqs[4] = { 10, 11, 10, 11 };
    2.62 +         usb_uhci_init(pci_bus, piix3_devfn + 2);
    2.63 +     }
    2.64   
    2.65 - static void pci_set_io_region_addr(PCIDevice *d, int region_num, uint32_t addr)
    2.66 - {
    2.67 -@@ -1750,12 +1750,22 @@
    2.68 -             pci_set_io_region_addr(d, 3, 0x374);
    2.69 -         }
    2.70 -         break;
    2.71 -+       case 0x0680:
    2.72 -+       if (vendor_id == 0x8086 && device_id == 0x7113) {
    2.73 -+          // PIIX4 ACPI PM 
    2.74 -+        pci_config_writew(d, 0x20, 0x0000); // NO smb bus IO enable in PIIX4
    2.75 -+        pci_config_writew(d, 0x22, 0x0000); 
    2.76 -+        goto default_map;
    2.77 -+ 	}
    2.78 -+         break;
    2.79 -+
    2.80 -     case 0x0300:
    2.81 -         if (vendor_id != 0x1234)
    2.82 -             goto default_map;
    2.83 -         /* VGA: map frame buffer to default Bochs VBE address */
    2.84 -         pci_set_io_region_addr(d, 0, 0xE0000000);
    2.85 -         break;
    2.86 -+
    2.87 -     case 0x0800:
    2.88 -         /* PIC */
    2.89 -         vendor_id = pci_config_readw(d, PCI_VENDOR_ID);
    2.90 -@@ -1800,6 +1810,13 @@
    2.91 -         pic_irq = pci_irqs[pin];
    2.92 -         pci_config_writeb(d, PCI_INTERRUPT_LINE, pic_irq);
    2.93 +-    if (pci_enabled && acpi_enabled) {
    2.94 ++    if (pci_enabled && acpi_enabled && 0) {
    2.95 +         piix4_pm_init(pci_bus, piix3_devfn + 3);
    2.96       }
    2.97 -+    if (class== 0x0680&& vendor_id == 0x8086 && device_id == 0x7113) {
    2.98 -+         // PIIX4 ACPI PM
    2.99 -+       pci_config_writew(d, 0x20, 0x0000); // NO smb bus IO enable in PIIX4
   2.100 -+       pci_config_writew(d, 0x22, 0x0000);
   2.101 -+       pci_config_writew(d, 0x3c, 0x0009); // Hardcodeed IRQ9
   2.102 -+       pci_config_writew(d, 0x3d, 0x0001);
   2.103 -+    }
   2.104 - }
   2.105   
   2.106 - /*
   2.107  Index: ioemu/hw/piix4acpi.c
   2.108  ===================================================================
   2.109  --- /dev/null	1970-01-01 00:00:00.000000000 +0000
   2.110 -+++ ioemu/hw/piix4acpi.c	2006-08-04 10:35:36.762666604 +0100
   2.111 ++++ ioemu/hw/piix4acpi.c	2006-08-07 17:41:41.932577728 +0100
   2.112  @@ -0,0 +1,388 @@
   2.113  +/*
   2.114  + * PIIX4 ACPI controller emulation
   2.115 @@ -450,7 +406,7 @@ Index: ioemu/hw/piix4acpi.c
   2.116  +													
   2.117  +
   2.118  +/* PIIX4 acpi pci configuration space, func 3 */
   2.119 -+void pci_piix4_acpi_init(PCIBus *bus)
   2.120 ++void pci_piix4_acpi_init(PCIBus *bus, int devfn)
   2.121  +{
   2.122  +    PCIAcpiState *d;
   2.123  +    uint8_t *pci_conf;
   2.124 @@ -458,7 +414,7 @@ Index: ioemu/hw/piix4acpi.c
   2.125  +    /* register a function 3 of PIIX4 */
   2.126  +    d = (PCIAcpiState *)pci_register_device(
   2.127  +        bus, "PIIX4 ACPI", sizeof(PCIAcpiState),
   2.128 -+        ((PCIDevice *)piix3_state)->devfn + 3, NULL, NULL);
   2.129 ++        devfn, NULL, NULL);
   2.130  +
   2.131  +    acpi_state = d;
   2.132  +    pci_conf = d->dev.config;
   2.133 @@ -480,18 +436,18 @@ Index: ioemu/hw/piix4acpi.c
   2.134  +}
   2.135  Index: ioemu/vl.c
   2.136  ===================================================================
   2.137 ---- ioemu.orig/vl.c	2006-08-04 10:35:36.697674145 +0100
   2.138 -+++ ioemu/vl.c	2006-08-04 10:37:38.001608828 +0100
   2.139 -@@ -166,6 +166,8 @@
   2.140 - 
   2.141 - time_t timeoffset = 0;
   2.142 +--- ioemu.orig/vl.c	2006-08-06 02:23:45.000000000 +0100
   2.143 ++++ ioemu/vl.c	2006-08-07 17:41:40.613727012 +0100
   2.144 +@@ -156,7 +156,7 @@
   2.145 + #else
   2.146 + #define MAX_CPUS 1
   2.147 + #endif
   2.148 +-int acpi_enabled = 1;
   2.149 ++int acpi_enabled = 0;
   2.150 + int fd_bootchk = 1;
   2.151   
   2.152 -+int acpi_enabled = 0;
   2.153 -+
   2.154 - char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
   2.155 - extern int domid;
   2.156 - 
   2.157 -@@ -4803,6 +4805,7 @@
   2.158 + extern int vcpus;
   2.159 +@@ -5341,6 +5341,7 @@
   2.160              "-loadvm file    start right away with a saved state (loadvm in monitor)\n"
   2.161   	   "-vnc display    start a VNC server on display\n"
   2.162              "-timeoffset     time offset (in seconds) from local time\n"
   2.163 @@ -499,7 +455,7 @@ Index: ioemu/vl.c
   2.164              "\n"
   2.165              "During emulation, the following keys are useful:\n"
   2.166              "ctrl-alt-f      toggle full screen\n"
   2.167 -@@ -4894,6 +4897,7 @@
   2.168 +@@ -5426,6 +5427,7 @@
   2.169       QEMU_OPTION_d,
   2.170       QEMU_OPTION_vcpus,
   2.171       QEMU_OPTION_timeoffset,
   2.172 @@ -507,7 +463,7 @@ Index: ioemu/vl.c
   2.173   };
   2.174   
   2.175   typedef struct QEMUOption {
   2.176 -@@ -4973,6 +4977,7 @@
   2.177 +@@ -5509,6 +5511,7 @@
   2.178       { "d", HAS_ARG, QEMU_OPTION_d },
   2.179       { "vcpus", 1, QEMU_OPTION_vcpus },
   2.180       { "timeoffset", HAS_ARG, QEMU_OPTION_timeoffset },
   2.181 @@ -515,7 +471,7 @@ Index: ioemu/vl.c
   2.182       { NULL },
   2.183   };
   2.184   
   2.185 -@@ -5678,6 +5683,9 @@
   2.186 +@@ -6256,6 +6259,9 @@
   2.187               case QEMU_OPTION_timeoffset:
   2.188                   timeoffset = strtol(optarg, NULL, 0);
   2.189                   break;
   2.190 @@ -527,9 +483,9 @@ Index: ioemu/vl.c
   2.191       }
   2.192  Index: ioemu/vl.h
   2.193  ===================================================================
   2.194 ---- ioemu.orig/vl.h	2006-08-04 10:35:36.629682033 +0100
   2.195 -+++ ioemu/vl.h	2006-08-04 10:36:21.513475699 +0100
   2.196 -@@ -159,6 +159,7 @@
   2.197 +--- ioemu.orig/vl.h	2006-08-06 02:23:45.000000000 +0100
   2.198 ++++ ioemu/vl.h	2006-08-07 17:38:47.847289567 +0100
   2.199 +@@ -167,6 +167,7 @@
   2.200   extern int kqemu_allowed;
   2.201   extern int win2k_install_hack;
   2.202   extern int usb_enabled;
   2.203 @@ -537,3 +493,46 @@ Index: ioemu/vl.h
   2.204   extern int smp_cpus;
   2.205   
   2.206   /* XXX: make it dynamic */
   2.207 +Index: ioemu/hw/piix_pci.c
   2.208 +===================================================================
   2.209 +--- ioemu.orig/hw/piix_pci.c	2006-08-06 02:29:41.000000000 +0100
   2.210 ++++ ioemu/hw/piix_pci.c	2006-08-07 17:38:57.480198468 +0100
   2.211 +@@ -241,7 +241,7 @@
   2.212 + static uint32_t pci_bios_io_addr;
   2.213 + static uint32_t pci_bios_mem_addr;
   2.214 + /* host irqs corresponding to PCI irqs A-D */
   2.215 +-static uint8_t pci_irqs[4] = { 11, 9, 11, 9 };
   2.216 ++static uint8_t pci_irqs[4] = { 10, 11, 10, 11 };
   2.217 + 
   2.218 + static void pci_config_writel(PCIDevice *d, uint32_t addr, uint32_t val)
   2.219 + {
   2.220 +@@ -336,6 +336,14 @@
   2.221 +             pci_set_io_region_addr(d, 3, 0x374);
   2.222 +         }
   2.223 +         break;
   2.224 ++    case 0x0680:
   2.225 ++        if (vendor_id == 0x8086 && device_id == 0x7113) {
   2.226 ++            /* PIIX4 ACPI PM */
   2.227 ++            pci_config_writew(d, 0x20, 0x0000); /* NO smb bus IO enable in PIIX4 */
   2.228 ++            pci_config_writew(d, 0x22, 0x0000);
   2.229 ++            goto default_map;
   2.230 ++        }
   2.231 ++        break;
   2.232 +     case 0x0300:
   2.233 +         if (vendor_id != 0x1234)
   2.234 +             goto default_map;
   2.235 +@@ -386,6 +394,14 @@
   2.236 +         pic_irq = pci_irqs[pin];
   2.237 +         pci_config_writeb(d, PCI_INTERRUPT_LINE, pic_irq);
   2.238 +     }
   2.239 ++
   2.240 ++    if (class== 0x0680&& vendor_id == 0x8086 && device_id == 0x7113) {
   2.241 ++         // PIIX4 ACPI PM
   2.242 ++       pci_config_writew(d, 0x20, 0x0000); // NO smb bus IO enable in PIIX4
   2.243 ++       pci_config_writew(d, 0x22, 0x0000);
   2.244 ++       pci_config_writew(d, 0x3c, 0x0009); // Hardcodeed IRQ9
   2.245 ++       pci_config_writew(d, 0x3d, 0x0001);
   2.246 ++    }
   2.247 + }
   2.248 + 
   2.249 + /*
     3.1 --- a/tools/ioemu/patches/acpi-timer-support	Mon Aug 07 18:27:27 2006 +0100
     3.2 +++ b/tools/ioemu/patches/acpi-timer-support	Mon Aug 07 18:28:50 2006 +0100
     3.3 @@ -1,7 +1,7 @@
     3.4  Index: ioemu/hw/piix4acpi.c
     3.5  ===================================================================
     3.6 ---- ioemu.orig/hw/piix4acpi.c	2006-08-04 10:57:28.922994985 +0100
     3.7 -+++ ioemu/hw/piix4acpi.c	2006-08-04 11:35:15.177574467 +0100
     3.8 +--- ioemu.orig/hw/piix4acpi.c	2006-08-06 02:24:54.262068457 +0100
     3.9 ++++ ioemu/hw/piix4acpi.c	2006-08-06 02:30:29.288761563 +0100
    3.10  @@ -24,31 +24,30 @@
    3.11    */
    3.12   
     4.1 --- a/tools/ioemu/patches/domain-destroy	Mon Aug 07 18:27:27 2006 +0100
     4.2 +++ b/tools/ioemu/patches/domain-destroy	Mon Aug 07 18:28:50 2006 +0100
     4.3 @@ -1,7 +1,8 @@
     4.4 -diff -r e1dce5114e92 monitor.c
     4.5 ---- a/monitor.c	Mon Jun 26 16:04:15 2006 +0100
     4.6 -+++ b/monitor.c	Mon Jun 26 16:04:26 2006 +0100
     4.7 -@@ -306,6 +306,7 @@ static void do_info_history (void)
     4.8 +Index: ioemu/monitor.c
     4.9 +===================================================================
    4.10 +--- ioemu.orig/monitor.c	2006-08-06 02:22:01.487319736 +0100
    4.11 ++++ ioemu/monitor.c	2006-08-06 02:23:02.269544103 +0100
    4.12 +@@ -308,6 +308,7 @@
    4.13   
    4.14   static void do_quit(void)
    4.15   {
    4.16 @@ -9,10 +10,11 @@ diff -r e1dce5114e92 monitor.c
    4.17       exit(0);
    4.18   }
    4.19   
    4.20 -diff -r e1dce5114e92 target-i386-dm/helper2.c
    4.21 ---- a/target-i386-dm/helper2.c	Mon Jun 26 16:04:15 2006 +0100
    4.22 -+++ b/target-i386-dm/helper2.c	Mon Jun 26 16:04:26 2006 +0100
    4.23 -@@ -483,5 +483,25 @@ int main_loop(void)
    4.24 +Index: ioemu/target-i386-dm/helper2.c
    4.25 +===================================================================
    4.26 +--- ioemu.orig/target-i386-dm/helper2.c	2006-08-06 02:22:59.251880493 +0100
    4.27 ++++ ioemu/target-i386-dm/helper2.c	2006-08-06 02:23:02.270543991 +0100
    4.28 +@@ -483,5 +483,25 @@
    4.29                                shared_page->vcpu_iodata[send_vcpu].dm_eport);
    4.30           }
    4.31       }
    4.32 @@ -38,10 +40,11 @@ diff -r e1dce5114e92 target-i386-dm/help
    4.33  +        xc_interface_close(xcHandle);
    4.34  +    }
    4.35  +}
    4.36 -diff -r e1dce5114e92 vl.h
    4.37 ---- a/vl.h	Mon Jun 26 16:04:15 2006 +0100
    4.38 -+++ b/vl.h	Mon Jun 26 16:04:26 2006 +0100
    4.39 -@@ -1098,4 +1098,7 @@ void kqemu_record_dump(void);
    4.40 +Index: ioemu/vl.h
    4.41 +===================================================================
    4.42 +--- ioemu.orig/vl.h	2006-08-06 02:22:59.255880047 +0100
    4.43 ++++ ioemu/vl.h	2006-08-06 02:23:02.271543880 +0100
    4.44 +@@ -1189,4 +1189,7 @@
    4.45   void kqemu_record_dump(void);
    4.46   
    4.47   extern char domain_name[];
     5.1 --- a/tools/ioemu/patches/domain-reset	Mon Aug 07 18:27:27 2006 +0100
     5.2 +++ b/tools/ioemu/patches/domain-reset	Mon Aug 07 18:28:50 2006 +0100
     5.3 @@ -1,7 +1,7 @@
     5.4  Index: ioemu/target-i386-dm/helper2.c
     5.5  ===================================================================
     5.6 ---- ioemu.orig/target-i386-dm/helper2.c	2006-07-27 11:16:57.527492229 +0100
     5.7 -+++ ioemu/target-i386-dm/helper2.c	2006-07-27 11:16:59.381287013 +0100
     5.8 +--- ioemu.orig/target-i386-dm/helper2.c	2006-08-06 02:21:15.779415007 +0100
     5.9 ++++ ioemu/target-i386-dm/helper2.c	2006-08-06 02:22:59.251880493 +0100
    5.10  @@ -123,6 +123,25 @@
    5.11   /* called from main_cpu_reset */
    5.12   void cpu_reset(CPUX86State *env)
    5.13 @@ -41,9 +41,9 @@ Index: ioemu/target-i386-dm/helper2.c
    5.14           /* Wait up to 10 msec. */
    5.15  Index: ioemu/vl.c
    5.16  ===================================================================
    5.17 ---- ioemu.orig/vl.c	2006-07-27 11:16:59.317294097 +0100
    5.18 -+++ ioemu/vl.c	2006-07-27 11:16:59.384286681 +0100
    5.19 -@@ -4412,7 +4412,7 @@
    5.20 +--- ioemu.orig/vl.c	2006-08-06 02:22:56.618174081 +0100
    5.21 ++++ ioemu/vl.c	2006-08-06 02:22:59.254880158 +0100
    5.22 +@@ -4948,7 +4948,7 @@
    5.23   } QEMUResetEntry;
    5.24   
    5.25   static QEMUResetEntry *first_reset_entry;
    5.26 @@ -54,9 +54,9 @@ Index: ioemu/vl.c
    5.27   
    5.28  Index: ioemu/vl.h
    5.29  ===================================================================
    5.30 ---- ioemu.orig/vl.h	2006-07-27 11:16:58.127425816 +0100
    5.31 -+++ ioemu/vl.h	2006-07-27 11:16:59.384286681 +0100
    5.32 -@@ -122,6 +122,7 @@
    5.33 +--- ioemu.orig/vl.h	2006-08-06 02:22:01.501318175 +0100
    5.34 ++++ ioemu/vl.h	2006-08-06 02:22:59.255880047 +0100
    5.35 +@@ -130,6 +130,7 @@
    5.36   
    5.37   void qemu_register_reset(QEMUResetHandler *func, void *opaque);
    5.38   void qemu_system_reset_request(void);
    5.39 @@ -64,7 +64,7 @@ Index: ioemu/vl.h
    5.40   void qemu_system_shutdown_request(void);
    5.41   void qemu_system_powerdown_request(void);
    5.42   #if !defined(TARGET_SPARC)
    5.43 -@@ -131,6 +132,8 @@
    5.44 +@@ -139,6 +140,8 @@
    5.45   void qemu_system_powerdown(void);
    5.46   #endif
    5.47   
     6.1 --- a/tools/ioemu/patches/domain-timeoffset	Mon Aug 07 18:27:27 2006 +0100
     6.2 +++ b/tools/ioemu/patches/domain-timeoffset	Mon Aug 07 18:28:50 2006 +0100
     6.3 @@ -1,7 +1,7 @@
     6.4  Index: ioemu/hw/mc146818rtc.c
     6.5  ===================================================================
     6.6 ---- ioemu.orig/hw/mc146818rtc.c	2006-08-04 10:57:22.049787220 +0100
     6.7 -+++ ioemu/hw/mc146818rtc.c	2006-08-04 10:57:28.677023336 +0100
     6.8 +--- ioemu.orig/hw/mc146818rtc.c	2006-08-07 17:44:43.593604340 +0100
     6.9 ++++ ioemu/hw/mc146818rtc.c	2006-08-07 17:44:47.594168708 +0100
    6.10  @@ -178,10 +178,27 @@
    6.11       }
    6.12   }
    6.13 @@ -46,9 +46,9 @@ Index: ioemu/hw/mc146818rtc.c
    6.14   static void rtc_copy_date(RTCState *s)
    6.15  Index: ioemu/hw/pc.c
    6.16  ===================================================================
    6.17 ---- ioemu.orig/hw/pc.c	2006-08-04 10:57:28.406054568 +0100
    6.18 -+++ ioemu/hw/pc.c	2006-08-04 10:57:28.678023221 +0100
    6.19 -@@ -151,7 +151,7 @@
    6.20 +--- ioemu.orig/hw/pc.c	2006-08-07 17:44:47.324198106 +0100
    6.21 ++++ ioemu/hw/pc.c	2006-08-07 17:44:54.830380715 +0100
    6.22 +@@ -159,7 +159,7 @@
    6.23   }
    6.24   
    6.25   /* hd_table must contain 4 block drivers */
    6.26 @@ -57,7 +57,7 @@ Index: ioemu/hw/pc.c
    6.27   {
    6.28       RTCState *s = rtc_state;
    6.29       int val;
    6.30 -@@ -162,6 +162,7 @@
    6.31 +@@ -170,6 +170,7 @@
    6.32   
    6.33       /* set the CMOS date */
    6.34       time(&ti);
    6.35 @@ -65,7 +65,7 @@ Index: ioemu/hw/pc.c
    6.36       if (rtc_utc)
    6.37           tm = gmtime(&ti);
    6.38       else
    6.39 -@@ -613,7 +614,7 @@
    6.40 +@@ -619,7 +620,7 @@
    6.41   static void pc_init1(uint64_t ram_size, int vga_ram_size, int boot_device,
    6.42                        DisplayState *ds, const char **fd_filename, int snapshot,
    6.43                        const char *kernel_filename, const char *kernel_cmdline,
    6.44 @@ -74,7 +74,7 @@ Index: ioemu/hw/pc.c
    6.45                        int pci_enabled)
    6.46   {
    6.47   #ifndef NOBIOS
    6.48 -@@ -864,7 +865,7 @@
    6.49 +@@ -871,7 +872,7 @@
    6.50   
    6.51       floppy_controller = fdctrl_init(6, 2, 0, 0x3f0, fd_table);
    6.52   
    6.53 @@ -82,8 +82,8 @@ Index: ioemu/hw/pc.c
    6.54  +    cmos_init(ram_size, boot_device, bs_table, timeoffset);
    6.55   
    6.56       if (pci_enabled && usb_enabled) {
    6.57 -         usb_uhci_init(pci_bus, usb_root_ports);
    6.58 -@@ -883,12 +884,13 @@
    6.59 +         usb_uhci_init(pci_bus, piix3_devfn + 2);
    6.60 +@@ -912,12 +913,13 @@
    6.61                           int snapshot, 
    6.62                           const char *kernel_filename, 
    6.63                           const char *kernel_cmdline,
    6.64 @@ -99,7 +99,7 @@ Index: ioemu/hw/pc.c
    6.65   }
    6.66   
    6.67   static void pc_init_isa(uint64_t ram_size, int vga_ram_size, int boot_device,
    6.68 -@@ -896,12 +898,13 @@
    6.69 +@@ -925,12 +927,13 @@
    6.70                           int snapshot, 
    6.71                           const char *kernel_filename, 
    6.72                           const char *kernel_cmdline,
    6.73 @@ -117,9 +117,9 @@ Index: ioemu/hw/pc.c
    6.74   QEMUMachine pc_machine = {
    6.75  Index: ioemu/vl.c
    6.76  ===================================================================
    6.77 ---- ioemu.orig/vl.c	2006-08-04 10:57:28.545038549 +0100
    6.78 -+++ ioemu/vl.c	2006-08-04 10:57:28.680022990 +0100
    6.79 -@@ -164,6 +164,8 @@
    6.80 +--- ioemu.orig/vl.c	2006-08-07 17:44:47.464182863 +0100
    6.81 ++++ ioemu/vl.c	2006-08-07 17:44:54.830380715 +0100
    6.82 +@@ -163,6 +163,8 @@
    6.83   
    6.84   int xc_handle;
    6.85   
    6.86 @@ -128,7 +128,7 @@ Index: ioemu/vl.c
    6.87   char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
    6.88   extern int domid;
    6.89   
    6.90 -@@ -4800,6 +4802,7 @@
    6.91 +@@ -5338,6 +5340,7 @@
    6.92   #endif
    6.93              "-loadvm file    start right away with a saved state (loadvm in monitor)\n"
    6.94   	   "-vnc display    start a VNC server on display\n"
    6.95 @@ -136,7 +136,7 @@ Index: ioemu/vl.c
    6.96              "\n"
    6.97              "During emulation, the following keys are useful:\n"
    6.98              "ctrl-alt-f      toggle full screen\n"
    6.99 -@@ -4890,6 +4893,7 @@
   6.100 +@@ -5422,6 +5425,7 @@
   6.101   
   6.102       QEMU_OPTION_d,
   6.103       QEMU_OPTION_vcpus,
   6.104 @@ -144,7 +144,7 @@ Index: ioemu/vl.c
   6.105   };
   6.106   
   6.107   typedef struct QEMUOption {
   6.108 -@@ -4968,6 +4972,7 @@
   6.109 +@@ -5504,6 +5508,7 @@
   6.110       
   6.111       { "d", HAS_ARG, QEMU_OPTION_d },
   6.112       { "vcpus", 1, QEMU_OPTION_vcpus },
   6.113 @@ -152,7 +152,7 @@ Index: ioemu/vl.c
   6.114       { NULL },
   6.115   };
   6.116   
   6.117 -@@ -5670,6 +5675,9 @@
   6.118 +@@ -6248,6 +6253,9 @@
   6.119                   vcpus = atoi(optarg);
   6.120                   fprintf(logfile, "qemu: the number of cpus is %d\n", vcpus);
   6.121                   break;
   6.122 @@ -162,7 +162,7 @@ Index: ioemu/vl.c
   6.123               }
   6.124           }
   6.125       }
   6.126 -@@ -6007,7 +6015,8 @@
   6.127 +@@ -6489,7 +6497,8 @@
   6.128   
   6.129       machine->init(ram_size, vga_ram_size, boot_device,
   6.130                     ds, fd_filename, snapshot,
   6.131 @@ -170,13 +170,13 @@ Index: ioemu/vl.c
   6.132  +                  kernel_filename, kernel_cmdline, initrd_filename,
   6.133  +                  timeoffset);
   6.134   
   6.135 -     gui_timer = qemu_new_timer(rt_clock, gui_update, NULL);
   6.136 -     qemu_mod_timer(gui_timer, qemu_get_clock(rt_clock));
   6.137 +     /* init USB devices */
   6.138 +     if (usb_enabled) {
   6.139  Index: ioemu/vl.h
   6.140  ===================================================================
   6.141 ---- ioemu.orig/vl.h	2006-08-04 10:57:28.411053992 +0100
   6.142 -+++ ioemu/vl.h	2006-08-04 10:57:28.681022875 +0100
   6.143 -@@ -556,7 +556,7 @@
   6.144 +--- ioemu.orig/vl.h	2006-08-07 17:44:47.329197562 +0100
   6.145 ++++ ioemu/vl.h	2006-08-07 17:44:54.830380715 +0100
   6.146 +@@ -575,7 +575,7 @@
   6.147                                    int boot_device,
   6.148                DisplayState *ds, const char **fd_filename, int snapshot,
   6.149                const char *kernel_filename, const char *kernel_cmdline,
     7.1 --- a/tools/ioemu/patches/hypervisor-pit	Mon Aug 07 18:27:27 2006 +0100
     7.2 +++ b/tools/ioemu/patches/hypervisor-pit	Mon Aug 07 18:28:50 2006 +0100
     7.3 @@ -1,20 +1,20 @@
     7.4  Index: ioemu/Makefile.target
     7.5  ===================================================================
     7.6 ---- ioemu.orig/Makefile.target	2006-07-27 11:16:58.970332506 +0100
     7.7 -+++ ioemu/Makefile.target	2006-07-27 11:16:59.758245283 +0100
     7.8 -@@ -333,7 +333,7 @@
     7.9 +--- ioemu.orig/Makefile.target	2006-08-06 02:22:26.380544784 +0100
    7.10 ++++ ioemu/Makefile.target	2006-08-06 02:23:23.059226607 +0100
    7.11 +@@ -354,7 +354,7 @@
    7.12   ifeq ($(TARGET_BASE_ARCH), i386)
    7.13   # Hardware support
    7.14   VL_OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
    7.15  -VL_OBJS+= fdc.o mc146818rtc.o serial.o i8254.o pcspk.o pc.o
    7.16  +VL_OBJS+= fdc.o mc146818rtc.o serial.o pc.o
    7.17 - VL_OBJS+= cirrus_vga.o mixeng.o parallel.o
    7.18 + VL_OBJS+= cirrus_vga.o mixeng.o parallel.o acpi.o piix_pci.o
    7.19 + VL_OBJS+= usb-uhci.o
    7.20   DEFINES += -DHAS_AUDIO
    7.21 - endif
    7.22  Index: ioemu/hw/pc.c
    7.23  ===================================================================
    7.24 ---- ioemu.orig/hw/pc.c	2006-07-27 11:16:59.036325200 +0100
    7.25 -+++ ioemu/hw/pc.c	2006-07-27 11:16:59.759245173 +0100
    7.26 +--- ioemu.orig/hw/pc.c	2006-08-06 02:22:35.588518336 +0100
    7.27 ++++ ioemu/hw/pc.c	2006-08-06 02:23:07.875919141 +0100
    7.28  @@ -38,7 +38,9 @@
    7.29   
    7.30   static fdctrl_t *floppy_controller;
    7.31 @@ -25,7 +25,7 @@ Index: ioemu/hw/pc.c
    7.32   #ifndef CONFIG_DM
    7.33   static IOAPICState *ioapic;
    7.34   #endif /* !CONFIG_DM */
    7.35 -@@ -803,8 +805,10 @@
    7.36 +@@ -810,8 +812,10 @@
    7.37       }
    7.38   #endif /* !CONFIG_DM */
    7.39       isa_pic = pic_init(pic_irq_request, first_cpu);
    7.40 @@ -38,9 +38,9 @@ Index: ioemu/hw/pc.c
    7.41           pic_set_alt_irq_func(isa_pic, ioapic_set_irq, ioapic);
    7.42  Index: ioemu/vl.c
    7.43  ===================================================================
    7.44 ---- ioemu.orig/vl.c	2006-07-27 11:16:59.614261222 +0100
    7.45 -+++ ioemu/vl.c	2006-07-27 11:16:59.762244841 +0100
    7.46 -@@ -5034,6 +5034,7 @@
    7.47 +--- ioemu.orig/vl.c	2006-08-06 02:23:05.216215627 +0100
    7.48 ++++ ioemu/vl.c	2006-08-06 02:23:07.878918807 +0100
    7.49 +@@ -5570,6 +5570,7 @@
    7.50   
    7.51   #ifdef HAS_AUDIO
    7.52   struct soundhw soundhw[] = {
    7.53 @@ -48,7 +48,7 @@ Index: ioemu/vl.c
    7.54   #ifdef TARGET_I386
    7.55       {
    7.56           "pcspk",
    7.57 -@@ -5043,6 +5044,7 @@
    7.58 +@@ -5579,6 +5580,7 @@
    7.59           { .init_isa = pcspk_audio_init }
    7.60       },
    7.61   #endif
     8.1 --- a/tools/ioemu/patches/ide-hd-multithread	Mon Aug 07 18:27:27 2006 +0100
     8.2 +++ b/tools/ioemu/patches/ide-hd-multithread	Mon Aug 07 18:28:50 2006 +0100
     8.3 @@ -1,6 +1,7 @@
     8.4 -diff -r d711aa4fa261 hw/ide.c
     8.5 ---- a/hw/ide.c	Fri Jun 16 10:13:37 2006 +0200
     8.6 -+++ b/hw/ide.c	Fri Jun 16 10:30:28 2006 +0200
     8.7 +Index: ioemu/hw/ide.c
     8.8 +===================================================================
     8.9 +--- ioemu.orig/hw/ide.c	2006-08-06 02:03:50.520919718 +0100
    8.10 ++++ ioemu/hw/ide.c	2006-08-06 02:23:41.153209614 +0100
    8.11  @@ -22,6 +22,7 @@
    8.12    * THE SOFTWARE.
    8.13    */
    8.14 @@ -9,7 +10,7 @@ diff -r d711aa4fa261 hw/ide.c
    8.15   
    8.16   /* debug IDE devices */
    8.17   //#define DEBUG_IDE
    8.18 -@@ -390,6 +391,48 @@ typedef struct PCIIDEState {
    8.19 +@@ -390,6 +391,48 @@
    8.20       int type; /* see IDE_TYPE_xxx */
    8.21   } PCIIDEState;
    8.22   
    8.23 @@ -58,7 +59,7 @@ diff -r d711aa4fa261 hw/ide.c
    8.24   static void ide_dma_start(IDEState *s, IDEDMAFunc *dma_cb);
    8.25   
    8.26   static void padstr(char *str, const char *src, int len)
    8.27 -@@ -695,7 +738,9 @@ static int ide_read_dma_cb(IDEState *s,
    8.28 +@@ -695,7 +738,9 @@
    8.29       }
    8.30       if (s->io_buffer_index >= s->io_buffer_size && s->nsector == 0) {
    8.31           s->status = READY_STAT | SEEK_STAT;
    8.32 @@ -68,7 +69,7 @@ diff -r d711aa4fa261 hw/ide.c
    8.33   #ifdef DEBUG_IDE_ATAPI
    8.34           printf("dma status=0x%x\n", s->status);
    8.35   #endif
    8.36 -@@ -795,7 +840,11 @@ static int ide_write_dma_cb(IDEState *s,
    8.37 +@@ -795,7 +840,11 @@
    8.38                               qemu_get_clock(vm_clock) + (ticks_per_sec / 1000));
    8.39                   } else 
    8.40   #endif
    8.41 @@ -80,7 +81,7 @@ diff -r d711aa4fa261 hw/ide.c
    8.42                   return 0;
    8.43               }
    8.44               if (n > MAX_MULT_SECTORS)
    8.45 -@@ -1046,7 +1095,9 @@ static int ide_atapi_cmd_read_dma_cb(IDE
    8.46 +@@ -1046,7 +1095,9 @@
    8.47       if (s->packet_transfer_size <= 0) {
    8.48           s->status = READY_STAT;
    8.49           s->nsector = (s->nsector & ~7) | ATAPI_INT_REASON_IO | ATAPI_INT_REASON_CD;
    8.50 @@ -90,7 +91,7 @@ diff -r d711aa4fa261 hw/ide.c
    8.51   #ifdef DEBUG_IDE_ATAPI
    8.52           printf("dma status=0x%x\n", s->status);
    8.53   #endif
    8.54 -@@ -2219,9 +2270,30 @@ static void ide_map(PCIDevice *pci_dev, 
    8.55 +@@ -2103,9 +2154,30 @@
    8.56       }
    8.57   }
    8.58   
    8.59 @@ -110,18 +111,18 @@ diff -r d711aa4fa261 hw/ide.c
    8.60   /* XXX: full callback usage to prepare non blocking I/Os support -
    8.61      error handling */
    8.62  +#ifdef DMA_MULTI_THREAD
    8.63 - static void ide_dma_loop(BMDMAState *bm)
    8.64 ++static void ide_dma_loop(BMDMAState *bm)
    8.65  +{
    8.66  +    write(file_pipes[1], &bm, sizeof(bm));
    8.67  +}
    8.68  +static void dma_thread_loop(BMDMAState *bm)
    8.69  +#else  /* DMA_MULTI_THREAD */
    8.70 -+static void ide_dma_loop(BMDMAState *bm)
    8.71 + static void ide_dma_loop(BMDMAState *bm)
    8.72  +#endif /* !DMA_MULTI_THREAD */
    8.73   {
    8.74       struct {
    8.75           uint32_t addr;
    8.76 -@@ -2257,10 +2329,7 @@ static void ide_dma_loop(BMDMAState *bm)
    8.77 +@@ -2141,10 +2213,7 @@
    8.78       }
    8.79       /* end of transfer */
    8.80    the_end:
    8.81 @@ -133,7 +134,7 @@ diff -r d711aa4fa261 hw/ide.c
    8.82   }
    8.83   
    8.84   static void ide_dma_start(IDEState *s, IDEDMAFunc *dma_cb)
    8.85 -@@ -2486,6 +2555,9 @@ void pci_cmd646_ide_init(PCIBus *bus, Bl
    8.86 +@@ -2370,6 +2439,9 @@
    8.87                 cmd646_set_irq, d, 0);
    8.88       ide_init2(&d->ide_if[2], hd_table[2], hd_table[3],
    8.89                 cmd646_set_irq, d, 1);
    8.90 @@ -143,7 +144,7 @@ diff -r d711aa4fa261 hw/ide.c
    8.91   }
    8.92   
    8.93   /* hd_table must contain 4 block drivers */
    8.94 -@@ -2521,6 +2593,9 @@ void pci_piix3_ide_init(PCIBus *bus, Blo
    8.95 +@@ -2405,6 +2477,9 @@
    8.96                 pic_set_irq_new, isa_pic, 15);
    8.97       ide_init_ioport(&d->ide_if[0], 0x1f0, 0x3f6);
    8.98       ide_init_ioport(&d->ide_if[2], 0x170, 0x376);
     9.1 --- a/tools/ioemu/patches/ioemu-ia64	Mon Aug 07 18:27:27 2006 +0100
     9.2 +++ b/tools/ioemu/patches/ioemu-ia64	Mon Aug 07 18:28:50 2006 +0100
     9.3 @@ -1,7 +1,7 @@
     9.4  Index: ioemu/hw/iommu.c
     9.5  ===================================================================
     9.6 ---- ioemu.orig/hw/iommu.c	2006-08-04 10:57:22.606723023 +0100
     9.7 -+++ ioemu/hw/iommu.c	2006-08-04 10:57:27.489160251 +0100
     9.8 +--- ioemu.orig/hw/iommu.c	2006-08-06 01:55:03.240628184 +0100
     9.9 ++++ ioemu/hw/iommu.c	2006-08-06 02:18:54.843126039 +0100
    9.10  @@ -82,7 +82,11 @@
    9.11   #define IOPTE_VALID         0x00000002 /* IOPTE is valid */
    9.12   #define IOPTE_WAZ           0x00000001 /* Write as zeros */
    9.13 @@ -16,8 +16,8 @@ Index: ioemu/hw/iommu.c
    9.14   
    9.15  Index: ioemu/cpu-all.h
    9.16  ===================================================================
    9.17 ---- ioemu.orig/cpu-all.h	2006-08-04 10:57:27.123202432 +0100
    9.18 -+++ ioemu/cpu-all.h	2006-08-04 10:57:27.490160136 +0100
    9.19 +--- ioemu.orig/cpu-all.h	2006-08-06 02:17:09.392881406 +0100
    9.20 ++++ ioemu/cpu-all.h	2006-08-06 02:18:54.844125928 +0100
    9.21  @@ -835,6 +835,31 @@
    9.22                   :"=m" (*(volatile long *)addr)
    9.23                   :"dIr" (nr));
    9.24 @@ -52,9 +52,9 @@ Index: ioemu/cpu-all.h
    9.25   /* memory API */
    9.26  Index: ioemu/vl.c
    9.27  ===================================================================
    9.28 ---- ioemu.orig/vl.c	2006-08-04 10:57:27.419168318 +0100
    9.29 -+++ ioemu/vl.c	2006-08-04 10:57:27.493159790 +0100
    9.30 -@@ -5567,6 +5567,11 @@
    9.31 +--- ioemu.orig/vl.c	2006-08-06 02:18:45.608155528 +0100
    9.32 ++++ ioemu/vl.c	2006-08-06 02:18:54.847125593 +0100
    9.33 +@@ -6140,6 +6140,11 @@
    9.34       /* init the memory */
    9.35       phys_ram_size = ram_size + vga_ram_size + bios_size;
    9.36   
    9.37 @@ -66,7 +66,7 @@ Index: ioemu/vl.c
    9.38   #ifdef CONFIG_DM
    9.39   
    9.40       nr_pages = ram_size/PAGE_SIZE;
    9.41 -@@ -5578,6 +5583,7 @@
    9.42 +@@ -6151,6 +6156,7 @@
    9.43           exit(-1);
    9.44       }
    9.45   
    9.46 @@ -74,7 +74,7 @@ Index: ioemu/vl.c
    9.47       if (xc_get_pfn_list(xc_handle, domid, page_array, nr_pages) != nr_pages) {
    9.48           fprintf(logfile, "xc_get_pfn_list returned error %d\n", errno);
    9.49           exit(-1);
    9.50 -@@ -5600,6 +5606,41 @@
    9.51 +@@ -6173,6 +6179,41 @@
    9.52   
    9.53       free(page_array);
    9.54   
    9.55 @@ -115,11 +115,11 @@ Index: ioemu/vl.c
    9.56  +#endif
    9.57   #else  /* !CONFIG_DM */
    9.58   
    9.59 - #ifdef CONFIG_SOFTMMU
    9.60 +     phys_ram_base = qemu_vmalloc(phys_ram_size);
    9.61  Index: ioemu/target-i386-dm/exec-dm.c
    9.62  ===================================================================
    9.63 ---- ioemu.orig/target-i386-dm/exec-dm.c	2006-08-04 10:57:26.738246803 +0100
    9.64 -+++ ioemu/target-i386-dm/exec-dm.c	2006-08-04 10:57:27.493159790 +0100
    9.65 +--- ioemu.orig/target-i386-dm/exec-dm.c	2006-08-06 02:15:01.776108064 +0100
    9.66 ++++ ioemu/target-i386-dm/exec-dm.c	2006-08-06 02:18:54.848125482 +0100
    9.67  @@ -341,6 +341,23 @@
    9.68       return io_mem_read[io_index >> IO_MEM_SHIFT];
    9.69   }
    9.70 @@ -156,8 +156,8 @@ Index: ioemu/target-i386-dm/exec-dm.c
    9.71                   memset(buf, 0xff, len);
    9.72  Index: ioemu/exec-all.h
    9.73  ===================================================================
    9.74 ---- ioemu.orig/exec-all.h	2006-08-04 10:57:26.651256830 +0100
    9.75 -+++ ioemu/exec-all.h	2006-08-04 10:57:27.494159675 +0100
    9.76 +--- ioemu.orig/exec-all.h	2006-08-06 02:14:09.796902750 +0100
    9.77 ++++ ioemu/exec-all.h	2006-08-06 02:18:54.848125482 +0100
    9.78  @@ -462,12 +462,13 @@
    9.79   }
    9.80   #endif
    9.81 @@ -177,8 +177,8 @@ Index: ioemu/exec-all.h
    9.82   
    9.83  Index: ioemu/target-i386-dm/cpu.h
    9.84  ===================================================================
    9.85 ---- ioemu.orig/target-i386-dm/cpu.h	2006-08-04 10:57:26.737246918 +0100
    9.86 -+++ ioemu/target-i386-dm/cpu.h	2006-08-04 10:57:27.494159675 +0100
    9.87 +--- ioemu.orig/target-i386-dm/cpu.h	2006-08-06 02:15:01.776108064 +0100
    9.88 ++++ ioemu/target-i386-dm/cpu.h	2006-08-06 02:18:54.848125482 +0100
    9.89  @@ -80,7 +80,11 @@
    9.90   /* helper2.c */
    9.91   int main_loop(void);
    9.92 @@ -194,7 +194,7 @@ Index: ioemu/target-i386-dm/cpu.h
    9.93  Index: ioemu/ia64_intrinsic.h
    9.94  ===================================================================
    9.95  --- /dev/null	1970-01-01 00:00:00.000000000 +0000
    9.96 -+++ ioemu/ia64_intrinsic.h	2006-08-04 10:57:27.495159560 +0100
    9.97 ++++ ioemu/ia64_intrinsic.h	2006-08-06 02:18:54.849125370 +0100
    9.98  @@ -0,0 +1,276 @@
    9.99  +#ifndef IA64_INTRINSIC_H
   9.100  +#define IA64_INTRINSIC_H
    10.1 --- a/tools/ioemu/patches/qemu-64bit	Mon Aug 07 18:27:27 2006 +0100
    10.2 +++ b/tools/ioemu/patches/qemu-64bit	Mon Aug 07 18:28:50 2006 +0100
    10.3 @@ -1,7 +1,7 @@
    10.4  Index: ioemu/cpu-all.h
    10.5  ===================================================================
    10.6 ---- ioemu.orig/cpu-all.h	2006-07-26 13:19:49.515051864 +0100
    10.7 -+++ ioemu/cpu-all.h	2006-07-26 13:19:49.563046860 +0100
    10.8 +--- ioemu.orig/cpu-all.h	2006-08-06 02:14:09.796902750 +0100
    10.9 ++++ ioemu/cpu-all.h	2006-08-06 02:15:39.707879423 +0100
   10.10  @@ -822,7 +822,7 @@
   10.11   
   10.12   /* memory API */
   10.13 @@ -13,9 +13,9 @@ Index: ioemu/cpu-all.h
   10.14   extern uint8_t *phys_ram_dirty;
   10.15  Index: ioemu/hw/pc.c
   10.16  ===================================================================
   10.17 ---- ioemu.orig/hw/pc.c	2006-07-26 13:19:49.516051760 +0100
   10.18 -+++ ioemu/hw/pc.c	2006-07-26 13:19:49.564046755 +0100
   10.19 -@@ -147,7 +147,7 @@
   10.20 +--- ioemu.orig/hw/pc.c	2006-08-06 02:14:09.797902638 +0100
   10.21 ++++ ioemu/hw/pc.c	2006-08-06 02:15:39.708879311 +0100
   10.22 +@@ -155,7 +155,7 @@
   10.23   }
   10.24   
   10.25   /* hd_table must contain 4 block drivers */
   10.26 @@ -24,7 +24,7 @@ Index: ioemu/hw/pc.c
   10.27   {
   10.28       RTCState *s = rtc_state;
   10.29       int val;
   10.30 -@@ -604,7 +604,7 @@
   10.31 +@@ -610,7 +610,7 @@
   10.32   }
   10.33   
   10.34   /* PC hardware initialisation */
   10.35 @@ -33,7 +33,7 @@ Index: ioemu/hw/pc.c
   10.36                        DisplayState *ds, const char **fd_filename, int snapshot,
   10.37                        const char *kernel_filename, const char *kernel_cmdline,
   10.38                        const char *initrd_filename,
   10.39 -@@ -853,7 +853,7 @@
   10.40 +@@ -882,7 +882,7 @@
   10.41       }
   10.42   }
   10.43   
   10.44 @@ -42,7 +42,7 @@ Index: ioemu/hw/pc.c
   10.45                           DisplayState *ds, const char **fd_filename, 
   10.46                           int snapshot, 
   10.47                           const char *kernel_filename, 
   10.48 -@@ -866,7 +866,7 @@
   10.49 +@@ -895,7 +895,7 @@
   10.50                initrd_filename, 1);
   10.51   }
   10.52   
   10.53 @@ -53,9 +53,9 @@ Index: ioemu/hw/pc.c
   10.54                           const char *kernel_filename, 
   10.55  Index: ioemu/vl.c
   10.56  ===================================================================
   10.57 ---- ioemu.orig/vl.c	2006-07-26 13:19:49.552048007 +0100
   10.58 -+++ ioemu/vl.c	2006-07-26 13:19:49.566046547 +0100
   10.59 -@@ -123,7 +123,7 @@
   10.60 +--- ioemu.orig/vl.c	2006-08-06 02:15:31.040845624 +0100
   10.61 ++++ ioemu/vl.c	2006-08-06 02:15:39.711878977 +0100
   10.62 +@@ -122,7 +122,7 @@
   10.63   const char* keyboard_layout = NULL;
   10.64   int64_t ticks_per_sec;
   10.65   int boot_device = 'c';
   10.66 @@ -64,7 +64,7 @@ Index: ioemu/vl.c
   10.67   int pit_min_timer_count = 0;
   10.68   int nb_nics;
   10.69   NICInfo nd_table[MAX_NICS];
   10.70 -@@ -5320,7 +5320,7 @@
   10.71 +@@ -5895,7 +5895,7 @@
   10.72                   help();
   10.73                   break;
   10.74               case QEMU_OPTION_m:
   10.75 @@ -75,9 +75,9 @@ Index: ioemu/vl.c
   10.76                   if (ram_size > PHYS_RAM_MAX_SIZE) {
   10.77  Index: ioemu/vl.h
   10.78  ===================================================================
   10.79 ---- ioemu.orig/vl.h	2006-07-26 13:19:49.552048007 +0100
   10.80 -+++ ioemu/vl.h	2006-07-26 13:19:49.567046443 +0100
   10.81 -@@ -138,7 +138,7 @@
   10.82 +--- ioemu.orig/vl.h	2006-08-06 02:15:10.368150219 +0100
   10.83 ++++ ioemu/vl.h	2006-08-06 02:15:39.711878977 +0100
   10.84 +@@ -146,7 +146,7 @@
   10.85   extern int xc_handle;
   10.86   extern int domid;
   10.87   
   10.88 @@ -86,7 +86,7 @@ Index: ioemu/vl.h
   10.89   extern int bios_size;
   10.90   extern int rtc_utc;
   10.91   extern int cirrus_vga_enabled;
   10.92 -@@ -542,7 +542,7 @@
   10.93 +@@ -561,7 +561,7 @@
   10.94   
   10.95   #ifndef QEMU_TOOL
   10.96   
   10.97 @@ -97,9 +97,9 @@ Index: ioemu/vl.h
   10.98                const char *kernel_filename, const char *kernel_cmdline,
   10.99  Index: ioemu/hw/vga.c
  10.100  ===================================================================
  10.101 ---- ioemu.orig/hw/vga.c	2006-07-26 13:19:49.549048319 +0100
  10.102 -+++ ioemu/hw/vga.c	2006-07-26 13:20:17.956085603 +0100
  10.103 -@@ -1293,7 +1293,8 @@
  10.104 +--- ioemu.orig/hw/vga.c	2006-08-06 02:15:10.364150665 +0100
  10.105 ++++ ioemu/hw/vga.c	2006-08-06 02:15:39.712878866 +0100
  10.106 +@@ -1365,7 +1365,8 @@
  10.107   static void vga_draw_graphic(VGAState *s, int full_update)
  10.108   {
  10.109       int y1, y, update, page_min, page_max, linesize, y_start, double_scan, mask;
    11.1 --- a/tools/ioemu/patches/qemu-allow-disable-sdl	Mon Aug 07 18:27:27 2006 +0100
    11.2 +++ b/tools/ioemu/patches/qemu-allow-disable-sdl	Mon Aug 07 18:28:50 2006 +0100
    11.3 @@ -1,8 +1,8 @@
    11.4  Index: ioemu/configure
    11.5  ===================================================================
    11.6 ---- ioemu.orig/configure	2006-08-03 19:19:38.000000000 +0100
    11.7 -+++ ioemu/configure	2006-08-03 23:38:19.000000000 +0100
    11.8 -@@ -226,8 +226,6 @@
    11.9 +--- ioemu.orig/configure	2006-08-06 02:15:01.771108621 +0100
   11.10 ++++ ioemu/configure	2006-08-06 02:42:26.213918476 +0100
   11.11 +@@ -228,8 +228,6 @@
   11.12     ;;
   11.13     --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
   11.14     ;;
   11.15 @@ -11,7 +11,7 @@ Index: ioemu/configure
   11.16     --disable-gcc-check) check_gcc="no"
   11.17     ;;
   11.18     --disable-system) softmmu="no"
   11.19 -@@ -736,14 +734,6 @@
   11.20 +@@ -758,14 +756,6 @@
   11.21     target_user_only="yes"
   11.22   fi
   11.23   
    12.1 --- a/tools/ioemu/patches/qemu-bugfixes	Mon Aug 07 18:27:27 2006 +0100
    12.2 +++ b/tools/ioemu/patches/qemu-bugfixes	Mon Aug 07 18:28:50 2006 +0100
    12.3 @@ -1,8 +1,8 @@
    12.4  Index: ioemu/console.c
    12.5  ===================================================================
    12.6 ---- ioemu.orig/console.c	2006-07-27 11:16:53.732912290 +0100
    12.7 -+++ ioemu/console.c	2006-07-27 11:16:57.753467214 +0100
    12.8 -@@ -449,7 +449,7 @@
    12.9 +--- ioemu.orig/console.c	2006-08-06 02:03:45.803444993 +0100
   12.10 ++++ ioemu/console.c	2006-08-06 02:15:48.546894051 +0100
   12.11 +@@ -505,7 +505,7 @@
   12.12               c++;
   12.13           }
   12.14       }
   12.15 @@ -11,7 +11,7 @@ Index: ioemu/console.c
   12.16       s->cells = cells;
   12.17   }
   12.18   
   12.19 -@@ -954,11 +954,21 @@
   12.20 +@@ -1032,11 +1032,21 @@
   12.21       return !active_console->text_console;
   12.22   }
   12.23   
   12.24 @@ -34,8 +34,8 @@ Index: ioemu/console.c
   12.25       static int color_inited;
   12.26   
   12.27       chr = qemu_mallocz(sizeof(CharDriverState));
   12.28 -@@ -976,12 +986,7 @@
   12.29 - 
   12.30 +@@ -1058,12 +1068,7 @@
   12.31 +     
   12.32       if (!color_inited) {
   12.33           color_inited = 1;
   12.34  -        for(j = 0; j < 2; j++) {
   12.35 @@ -48,23 +48,11 @@ Index: ioemu/console.c
   12.36       }
   12.37       s->y_displayed = 0;
   12.38       s->y_base = 0;
   12.39 -Index: ioemu/usb-linux.c
   12.40 -===================================================================
   12.41 ---- ioemu.orig/usb-linux.c	2006-07-27 11:16:53.732912290 +0100
   12.42 -+++ ioemu/usb-linux.c	2006-07-27 11:16:57.754467103 +0100
   12.43 -@@ -26,6 +26,7 @@
   12.44 - #if defined(__linux__)
   12.45 - #include <dirent.h>
   12.46 - #include <sys/ioctl.h>
   12.47 -+#define __user /* new versions of usbdevice_fs.h use this private attribute */
   12.48 - #include <linux/usbdevice_fs.h>
   12.49 - #include <linux/version.h>
   12.50 - 
   12.51  Index: ioemu/vl.c
   12.52  ===================================================================
   12.53 ---- ioemu.orig/vl.c	2006-07-27 11:16:57.681475183 +0100
   12.54 -+++ ioemu/vl.c	2006-07-27 11:17:33.279534373 +0100
   12.55 -@@ -3201,6 +3201,7 @@
   12.56 +--- ioemu.orig/vl.c	2006-08-06 02:15:39.711878977 +0100
   12.57 ++++ ioemu/vl.c	2006-08-06 02:15:48.550893605 +0100
   12.58 +@@ -3671,6 +3671,7 @@
   12.59               if (net_tap_fd_init(vlan, fd))
   12.60                   ret = 0;
   12.61           } else {
    13.1 --- a/tools/ioemu/patches/qemu-cleanup	Mon Aug 07 18:27:27 2006 +0100
    13.2 +++ b/tools/ioemu/patches/qemu-cleanup	Mon Aug 07 18:28:50 2006 +0100
    13.3 @@ -1,8 +1,8 @@
    13.4  Index: ioemu/hw/vga.c
    13.5  ===================================================================
    13.6 ---- ioemu.orig/hw/vga.c	2006-07-12 11:33:54.853085901 +0100
    13.7 -+++ ioemu/hw/vga.c	2006-07-12 11:35:00.780818943 +0100
    13.8 -@@ -1563,7 +1563,9 @@
    13.9 +--- ioemu.orig/hw/vga.c	2006-08-06 02:03:51.906765409 +0100
   13.10 ++++ ioemu/hw/vga.c	2006-08-06 02:15:10.364150665 +0100
   13.11 +@@ -1622,7 +1622,9 @@
   13.12   static void vga_save(QEMUFile *f, void *opaque)
   13.13   {
   13.14       VGAState *s = opaque;
   13.15 @@ -12,7 +12,7 @@ Index: ioemu/hw/vga.c
   13.16   
   13.17       qemu_put_be32s(f, &s->latch);
   13.18       qemu_put_8s(f, &s->sr_index);
   13.19 -@@ -1604,7 +1606,10 @@
   13.20 +@@ -1663,7 +1665,10 @@
   13.21   static int vga_load(QEMUFile *f, void *opaque, int version_id)
   13.22   {
   13.23       VGAState *s = opaque;
   13.24 @@ -26,8 +26,8 @@ Index: ioemu/hw/vga.c
   13.25           return -EINVAL;
   13.26  Index: ioemu/vl.c
   13.27  ===================================================================
   13.28 ---- ioemu.orig/vl.c	2006-07-12 11:35:00.708827963 +0100
   13.29 -+++ ioemu/vl.c	2006-07-12 11:35:00.783818568 +0100
   13.30 +--- ioemu.orig/vl.c	2006-08-06 02:15:01.774108287 +0100
   13.31 ++++ ioemu/vl.c	2006-08-06 02:15:31.040845624 +0100
   13.32  @@ -39,6 +39,7 @@
   13.33   #include <sys/ioctl.h>
   13.34   #include <sys/socket.h>
   13.35 @@ -36,7 +36,7 @@ Index: ioemu/vl.c
   13.36   #include <dirent.h>
   13.37   #include <netdb.h>
   13.38   #ifdef _BSD
   13.39 -@@ -4777,7 +4778,9 @@
   13.40 +@@ -5308,7 +5309,9 @@
   13.41       QEMU_OPTION_d,
   13.42       QEMU_OPTION_hdachs,
   13.43       QEMU_OPTION_L,
   13.44 @@ -46,7 +46,7 @@ Index: ioemu/vl.c
   13.45       QEMU_OPTION_k,
   13.46       QEMU_OPTION_localtime,
   13.47       QEMU_OPTION_cirrusvga,
   13.48 -@@ -4844,7 +4847,9 @@
   13.49 +@@ -5379,7 +5382,9 @@
   13.50       { "d", HAS_ARG, QEMU_OPTION_d },
   13.51       { "hdachs", HAS_ARG, QEMU_OPTION_hdachs },
   13.52       { "L", HAS_ARG, QEMU_OPTION_L },
   13.53 @@ -56,10 +56,10 @@ Index: ioemu/vl.c
   13.54   #ifdef USE_KQEMU
   13.55       { "no-kqemu", 0, QEMU_OPTION_no_kqemu },
   13.56       { "kernel-kqemu", 0, QEMU_OPTION_kernel_kqemu },
   13.57 -@@ -5274,9 +5279,11 @@
   13.58 -             case QEMU_OPTION_fdb:
   13.59 -                 fd_filename[1] = optarg;
   13.60 +@@ -5849,9 +5854,11 @@
   13.61 +                 fd_bootchk = 0;
   13.62                   break;
   13.63 + #endif
   13.64  +#ifdef USE_CODE_COPY
   13.65               case QEMU_OPTION_no_code_copy:
   13.66                   code_copy_enabled = 0;
   13.67 @@ -70,9 +70,9 @@ Index: ioemu/vl.c
   13.68                       fprintf(stderr, "qemu: too many network clients\n");
   13.69  Index: ioemu/vl.h
   13.70  ===================================================================
   13.71 ---- ioemu.orig/vl.h	2006-07-12 11:35:00.709827838 +0100
   13.72 -+++ ioemu/vl.h	2006-07-12 11:35:00.784818442 +0100
   13.73 -@@ -892,7 +892,7 @@
   13.74 +--- ioemu.orig/vl.h	2006-08-06 02:15:01.775108175 +0100
   13.75 ++++ ioemu/vl.h	2006-08-06 02:15:10.368150219 +0100
   13.76 +@@ -957,7 +957,7 @@
   13.77   	       unsigned long vram_offset, int vram_size, int width, int height);
   13.78   
   13.79   /* slavio_intctl.c */
    14.1 --- a/tools/ioemu/patches/qemu-dm	Mon Aug 07 18:27:27 2006 +0100
    14.2 +++ b/tools/ioemu/patches/qemu-dm	Mon Aug 07 18:28:50 2006 +0100
    14.3 @@ -1,8 +1,8 @@
    14.4  Index: ioemu/Makefile.target
    14.5  ===================================================================
    14.6 ---- ioemu.orig/Makefile.target	2006-07-14 15:50:41.320748096 +0100
    14.7 -+++ ioemu/Makefile.target	2006-07-14 15:55:04.753733845 +0100
    14.8 -@@ -285,7 +285,7 @@
    14.9 +--- ioemu.orig/Makefile.target	2006-08-06 02:14:04.797460093 +0100
   14.10 ++++ ioemu/Makefile.target	2006-08-06 02:14:09.794902973 +0100
   14.11 +@@ -302,7 +302,7 @@
   14.12   endif
   14.13   
   14.14   # must use static linking to avoid leaving stuff in virtual address space
   14.15 @@ -13,8 +13,8 @@ Index: ioemu/Makefile.target
   14.16   VL_OBJS+=tap-win32.o
   14.17  Index: ioemu/configure
   14.18  ===================================================================
   14.19 ---- ioemu.orig/configure	2006-07-14 15:50:41.320748096 +0100
   14.20 -+++ ioemu/configure	2006-07-14 15:55:04.753733845 +0100
   14.21 +--- ioemu.orig/configure	2006-08-06 02:14:04.797460093 +0100
   14.22 ++++ ioemu/configure	2006-08-06 02:14:09.795902861 +0100
   14.23  @@ -75,8 +75,8 @@
   14.24   bigendian="no"
   14.25   mingw32="no"
   14.26 @@ -26,7 +26,7 @@ Index: ioemu/configure
   14.27   adlib="no"
   14.28   oss="no"
   14.29   dsound="no"
   14.30 -@@ -727,6 +727,8 @@
   14.31 +@@ -749,6 +749,8 @@
   14.32   if expr $target : '.*-softmmu' > /dev/null ; then
   14.33     target_softmmu="yes"
   14.34   fi
   14.35 @@ -37,8 +37,8 @@ Index: ioemu/configure
   14.36     target_user_only="yes"
   14.37  Index: ioemu/cpu-all.h
   14.38  ===================================================================
   14.39 ---- ioemu.orig/cpu-all.h	2006-07-14 15:50:30.488983278 +0100
   14.40 -+++ ioemu/cpu-all.h	2006-07-14 15:55:04.544757636 +0100
   14.41 +--- ioemu.orig/cpu-all.h	2006-08-06 02:14:04.797460093 +0100
   14.42 ++++ ioemu/cpu-all.h	2006-08-06 02:14:09.796902750 +0100
   14.43  @@ -690,7 +690,9 @@
   14.44   void page_set_flags(target_ulong start, target_ulong end, int flags);
   14.45   void page_unprotect_range(target_ulong data, target_ulong data_size);
   14.46 @@ -64,8 +64,8 @@ Index: ioemu/cpu-all.h
   14.47   void cpu_dump_state(CPUState *env, FILE *f, 
   14.48  Index: ioemu/disas.h
   14.49  ===================================================================
   14.50 ---- ioemu.orig/disas.h	2006-07-14 15:50:30.489983164 +0100
   14.51 -+++ ioemu/disas.h	2006-07-14 15:50:41.334746500 +0100
   14.52 +--- ioemu.orig/disas.h	2006-08-06 02:14:04.797460093 +0100
   14.53 ++++ ioemu/disas.h	2006-08-06 02:14:09.796902750 +0100
   14.54  @@ -1,6 +1,7 @@
   14.55   #ifndef _QEMU_DISAS_H
   14.56   #define _QEMU_DISAS_H
   14.57 @@ -83,8 +83,8 @@ Index: ioemu/disas.h
   14.58   #endif /* _QEMU_DISAS_H */
   14.59  Index: ioemu/exec-all.h
   14.60  ===================================================================
   14.61 ---- ioemu.orig/exec-all.h	2006-07-14 15:50:30.490983050 +0100
   14.62 -+++ ioemu/exec-all.h	2006-07-14 15:50:41.335746386 +0100
   14.63 +--- ioemu.orig/exec-all.h	2006-08-06 02:14:04.798459982 +0100
   14.64 ++++ ioemu/exec-all.h	2006-08-06 02:14:09.796902750 +0100
   14.65  @@ -509,7 +509,7 @@
   14.66   
   14.67   extern int tb_invalidated_flag;
   14.68 @@ -105,17 +105,17 @@ Index: ioemu/exec-all.h
   14.69       return addr;
   14.70  Index: ioemu/hw/pc.c
   14.71  ===================================================================
   14.72 ---- ioemu.orig/hw/pc.c	2006-07-14 15:50:30.491982936 +0100
   14.73 -+++ ioemu/hw/pc.c	2006-07-14 15:55:04.543757750 +0100
   14.74 -@@ -65,6 +65,7 @@
   14.75 -     return qemu_get_clock(vm_clock);
   14.76 +--- ioemu.orig/hw/pc.c	2006-08-06 02:14:04.797460093 +0100
   14.77 ++++ ioemu/hw/pc.c	2006-08-06 02:14:09.797902638 +0100
   14.78 +@@ -73,6 +73,7 @@
   14.79 +     }
   14.80   }
   14.81   
   14.82  +#ifndef CONFIG_DM
   14.83   /* IRQ handling */
   14.84   int cpu_get_pic_interrupt(CPUState *env)
   14.85   {
   14.86 -@@ -81,6 +82,7 @@
   14.87 +@@ -89,6 +90,7 @@
   14.88       intno = pic_read_irq(isa_pic);
   14.89       return intno;
   14.90   }
   14.91 @@ -123,7 +123,7 @@ Index: ioemu/hw/pc.c
   14.92   
   14.93   static void pic_irq_request(void *opaque, int level)
   14.94   {
   14.95 -@@ -394,6 +396,7 @@
   14.96 +@@ -400,6 +402,7 @@
   14.97   
   14.98   /*************************************************/
   14.99   
  14.100 @@ -131,7 +131,7 @@ Index: ioemu/hw/pc.c
  14.101   static void putb(uint8_t **pp, int val)
  14.102   {
  14.103       uint8_t *q;
  14.104 -@@ -540,6 +543,7 @@
  14.105 +@@ -546,6 +549,7 @@
  14.106       float_pointer_struct[10] = 
  14.107           -mpf_checksum(float_pointer_struct, q - float_pointer_struct);
  14.108   }
  14.109 @@ -139,7 +139,7 @@ Index: ioemu/hw/pc.c
  14.110   
  14.111   
  14.112   static const int ide_iobase[2] = { 0x1f0, 0x170 };
  14.113 -@@ -619,12 +623,14 @@
  14.114 +@@ -626,12 +630,14 @@
  14.115       /* init CPUs */
  14.116       for(i = 0; i < smp_cpus; i++) {
  14.117           env = cpu_init();
  14.118 @@ -154,7 +154,7 @@ Index: ioemu/hw/pc.c
  14.119           register_savevm("cpu", i, 3, cpu_save, cpu_load, env);
  14.120           qemu_register_reset(main_cpu_reset, env);
  14.121           if (pci_enabled) {
  14.122 -@@ -683,6 +689,7 @@
  14.123 +@@ -690,6 +696,7 @@
  14.124       
  14.125       bochs_bios_init();
  14.126   
  14.127 @@ -162,7 +162,7 @@ Index: ioemu/hw/pc.c
  14.128       if (linux_boot) {
  14.129           uint8_t bootsect[512];
  14.130           uint8_t old_bootsect[512];
  14.131 -@@ -738,6 +745,7 @@
  14.132 +@@ -745,6 +752,7 @@
  14.133           /* loader type */
  14.134           stw_raw(phys_ram_base + KERNEL_PARAMS_ADDR + 0x210, 0x01);
  14.135       }
  14.136 @@ -170,7 +170,7 @@ Index: ioemu/hw/pc.c
  14.137   
  14.138       if (pci_enabled) {
  14.139           pci_bus = i440fx_init();
  14.140 -@@ -776,9 +784,11 @@
  14.141 +@@ -783,9 +791,11 @@
  14.142       isa_pic = pic_init(pic_irq_request, first_cpu);
  14.143       pit = pit_init(0x40, 0);
  14.144       pcspk_init(pit);
  14.145 @@ -184,8 +184,8 @@ Index: ioemu/hw/pc.c
  14.146           if (serial_hds[i]) {
  14.147  Index: ioemu/hw/vga_int.h
  14.148  ===================================================================
  14.149 ---- ioemu.orig/hw/vga_int.h	2006-07-14 15:50:30.491982936 +0100
  14.150 -+++ ioemu/hw/vga_int.h	2006-07-14 15:55:02.931941245 +0100
  14.151 +--- ioemu.orig/hw/vga_int.h	2006-08-06 02:14:04.797460093 +0100
  14.152 ++++ ioemu/hw/vga_int.h	2006-08-06 02:14:09.797902638 +0100
  14.153  @@ -28,7 +28,7 @@
  14.154   #define ST01_DISP_ENABLE    0x01
  14.155   
  14.156 @@ -193,12 +193,12 @@ Index: ioemu/hw/vga_int.h
  14.157  -#define CONFIG_BOCHS_VBE
  14.158  +//#define CONFIG_BOCHS_VBE
  14.159   
  14.160 - #define VBE_DISPI_MAX_XRES              1024
  14.161 - #define VBE_DISPI_MAX_YRES              768
  14.162 + #define VBE_DISPI_MAX_XRES              1600
  14.163 + #define VBE_DISPI_MAX_YRES              1200
  14.164  Index: ioemu/monitor.c
  14.165  ===================================================================
  14.166 ---- ioemu.orig/monitor.c	2006-07-14 15:50:30.493982708 +0100
  14.167 -+++ ioemu/monitor.c	2006-07-14 15:55:04.754733732 +0100
  14.168 +--- ioemu.orig/monitor.c	2006-08-06 02:14:04.798459982 +0100
  14.169 ++++ ioemu/monitor.c	2006-08-06 02:14:49.574468309 +0100
  14.170  @@ -68,6 +68,12 @@
  14.171   
  14.172   void term_flush(void)
  14.173 @@ -212,7 +212,7 @@ Index: ioemu/monitor.c
  14.174       if (term_outbuf_index > 0) {
  14.175           qemu_chr_write(monitor_hd, term_outbuf, term_outbuf_index);
  14.176           term_outbuf_index = 0;
  14.177 -@@ -104,6 +110,7 @@
  14.178 +@@ -106,6 +112,7 @@
  14.179       va_end(ap);
  14.180   }
  14.181   
  14.182 @@ -220,7 +220,7 @@ Index: ioemu/monitor.c
  14.183   static int monitor_fprintf(FILE *stream, const char *fmt, ...)
  14.184   {
  14.185       va_list ap;
  14.186 -@@ -112,6 +119,7 @@
  14.187 +@@ -114,6 +121,7 @@
  14.188       va_end(ap);
  14.189       return 0;
  14.190   }
  14.191 @@ -228,7 +228,7 @@ Index: ioemu/monitor.c
  14.192   
  14.193   static int compare_cmd(const char *name, const char *list)
  14.194   {
  14.195 -@@ -225,6 +233,7 @@
  14.196 +@@ -227,6 +235,7 @@
  14.197       return mon_cpu;
  14.198   }
  14.199   
  14.200 @@ -236,7 +236,7 @@ Index: ioemu/monitor.c
  14.201   static void do_info_registers(void)
  14.202   {
  14.203       CPUState *env;
  14.204 -@@ -278,6 +287,7 @@
  14.205 +@@ -280,6 +289,7 @@
  14.206   {
  14.207       dump_exec_info(NULL, monitor_fprintf);
  14.208   }
  14.209 @@ -244,7 +244,7 @@ Index: ioemu/monitor.c
  14.210   
  14.211   static void do_info_history (void)
  14.212   {
  14.213 -@@ -375,6 +385,7 @@
  14.214 +@@ -377,6 +387,7 @@
  14.215       cpu_set_log(mask);
  14.216   }
  14.217   
  14.218 @@ -252,7 +252,7 @@ Index: ioemu/monitor.c
  14.219   static void do_savevm(const char *filename)
  14.220   {
  14.221       if (qemu_savevm(filename) < 0)
  14.222 -@@ -621,6 +632,7 @@
  14.223 +@@ -623,6 +634,7 @@
  14.224   #endif
  14.225       term_printf("\n");
  14.226   }
  14.227 @@ -260,23 +260,23 @@ Index: ioemu/monitor.c
  14.228   
  14.229   static void do_sum(uint32_t start, uint32_t size)
  14.230   {
  14.231 -@@ -792,6 +804,7 @@
  14.232 -     }
  14.233 +@@ -841,6 +853,7 @@
  14.234 +     kbd_mouse_event(0, 0, 0, mouse_button_state);
  14.235   }
  14.236   
  14.237  +#ifndef CONFIG_DM
  14.238   static void do_ioport_read(int count, int format, int size, int addr, int has_index, int index)
  14.239   {
  14.240       uint32_t val;
  14.241 -@@ -952,6 +965,7 @@
  14.242 -     }
  14.243 - }
  14.244 +@@ -1031,6 +1044,7 @@
  14.245 +     term_printf("kqemu support: not compiled\n");
  14.246   #endif
  14.247 + } 
  14.248  +#endif /* !CONFIG_DM */
  14.249   
  14.250 - static void do_info_kqemu(void)
  14.251 - {
  14.252 -@@ -1045,6 +1059,7 @@
  14.253 + #ifdef CONFIG_PROFILER
  14.254 + 
  14.255 +@@ -1152,6 +1166,7 @@
  14.256         "filename", "save screen into PPM image 'filename'" },
  14.257       { "log", "s", do_log,
  14.258         "item1[,...]", "activate logging of the specified items to '/tmp/qemu.log'" }, 
  14.259 @@ -284,7 +284,7 @@ Index: ioemu/monitor.c
  14.260       { "savevm", "F", do_savevm,
  14.261         "filename", "save the whole virtual machine state to 'filename'" }, 
  14.262       { "loadvm", "F", do_loadvm,
  14.263 -@@ -1065,21 +1080,26 @@
  14.264 +@@ -1172,21 +1187,26 @@
  14.265         "/fmt expr", "print expression value (use $reg for CPU register access)", },
  14.266       { "i", "/ii.", do_ioport_read, 
  14.267         "/fmt addr", "I/O port read" },
  14.268 @@ -308,10 +308,10 @@ Index: ioemu/monitor.c
  14.269       { "cpu", "i", do_cpu_set, 
  14.270         "index", "set the default CPU" },
  14.271  +#endif /* !CONFIG_DM */
  14.272 -     { NULL, NULL, }, 
  14.273 - };
  14.274 - 
  14.275 -@@ -1090,10 +1110,12 @@
  14.276 +     { "mouse_move", "sss?", do_mouse_move, 
  14.277 +       "dx dy [dz]", "send mouse move events" },
  14.278 +     { "mouse_button", "i", do_mouse_button, 
  14.279 +@@ -1208,10 +1228,12 @@
  14.280         "", "show the network state" },
  14.281       { "block", "", do_info_block,
  14.282         "", "show the block devices" },
  14.283 @@ -324,7 +324,7 @@ Index: ioemu/monitor.c
  14.284       { "history", "", do_info_history,
  14.285         "", "show the command line history", },
  14.286       { "irq", "", irq_info,
  14.287 -@@ -1102,6 +1124,7 @@
  14.288 +@@ -1220,6 +1242,7 @@
  14.289         "", "show i8259 (PIC) state", },
  14.290       { "pci", "", pci_info,
  14.291         "", "show PCI info", },
  14.292 @@ -332,15 +332,15 @@ Index: ioemu/monitor.c
  14.293   #if defined(TARGET_I386)
  14.294       { "tlb", "", tlb_info,
  14.295         "", "show virtual to physical memory mappings", },
  14.296 -@@ -1110,6 +1133,7 @@
  14.297 - #endif
  14.298 -     { "jit", "", do_info_jit,
  14.299 +@@ -1230,6 +1253,7 @@
  14.300         "", "show dynamic compiler info", },
  14.301 -+#endif /* !CONFIG_DM */
  14.302       { "kqemu", "", do_info_kqemu,
  14.303         "", "show kqemu information", },
  14.304 ++#endif /* !CONFIG_DM */
  14.305       { "usb", "", usb_info,
  14.306 -@@ -1123,6 +1147,7 @@
  14.307 +       "", "show guest USB devices", },
  14.308 +     { "usbhost", "", usb_host_info,
  14.309 +@@ -1243,6 +1267,7 @@
  14.310   
  14.311   /*******************************************************************/
  14.312   
  14.313 @@ -348,7 +348,7 @@ Index: ioemu/monitor.c
  14.314   static const char *pch;
  14.315   static jmp_buf expr_env;
  14.316   
  14.317 -@@ -1663,6 +1688,7 @@
  14.318 +@@ -1786,6 +1811,7 @@
  14.319       *pp = pch;
  14.320       return 0;
  14.321   }
  14.322 @@ -356,7 +356,7 @@ Index: ioemu/monitor.c
  14.323   
  14.324   static int get_str(char *buf, int buf_size, const char **pp)
  14.325   {
  14.326 -@@ -1729,8 +1755,10 @@
  14.327 +@@ -1852,8 +1878,10 @@
  14.328       return 0;
  14.329   }
  14.330   
  14.331 @@ -367,7 +367,7 @@ Index: ioemu/monitor.c
  14.332   
  14.333   #define MAX_ARGS 16
  14.334   
  14.335 -@@ -1738,7 +1766,10 @@
  14.336 +@@ -1861,7 +1889,10 @@
  14.337   {
  14.338       const char *p, *pstart, *typestr;
  14.339       char *q;
  14.340 @@ -379,7 +379,7 @@ Index: ioemu/monitor.c
  14.341       term_cmd_t *cmd;
  14.342       char cmdname[256];
  14.343       char buf[1024];
  14.344 -@@ -1830,6 +1861,7 @@
  14.345 +@@ -1953,6 +1984,7 @@
  14.346                   args[nb_args++] = str;
  14.347               }
  14.348               break;
  14.349 @@ -387,7 +387,7 @@ Index: ioemu/monitor.c
  14.350           case '/':
  14.351               {
  14.352                   int count, format, size;
  14.353 -@@ -1962,6 +1994,7 @@
  14.354 +@@ -2085,6 +2117,7 @@
  14.355                   }
  14.356               }
  14.357               break;
  14.358 @@ -395,7 +395,7 @@ Index: ioemu/monitor.c
  14.359           case '-':
  14.360               {
  14.361                   int has_option;
  14.362 -@@ -1988,6 +2021,11 @@
  14.363 +@@ -2111,6 +2144,11 @@
  14.364                   args[nb_args++] = (void *)has_option;
  14.365               }
  14.366               break;
  14.367 @@ -407,7 +407,7 @@ Index: ioemu/monitor.c
  14.368           default:
  14.369           bad_type:
  14.370               term_printf("%s: unknown type '%c'\n", cmdname, c);
  14.371 -@@ -2035,6 +2073,7 @@
  14.372 +@@ -2161,6 +2199,7 @@
  14.373       return;
  14.374   }
  14.375   
  14.376 @@ -415,7 +415,7 @@ Index: ioemu/monitor.c
  14.377   static void cmd_completion(const char *name, const char *list)
  14.378   {
  14.379       const char *p, *pstart;
  14.380 -@@ -2222,6 +2261,11 @@
  14.381 +@@ -2354,6 +2393,11 @@
  14.382       for(i = 0; i < nb_args; i++)
  14.383           qemu_free(args[i]);
  14.384   }
  14.385 @@ -429,9 +429,9 @@ Index: ioemu/monitor.c
  14.386   {
  14.387  Index: ioemu/vl.c
  14.388  ===================================================================
  14.389 ---- ioemu.orig/vl.c	2006-07-14 15:50:30.496982366 +0100
  14.390 -+++ ioemu/vl.c	2006-07-14 15:55:07.676401124 +0100
  14.391 -@@ -423,12 +423,15 @@
  14.392 +--- ioemu.orig/vl.c	2006-08-06 02:14:04.797460093 +0100
  14.393 ++++ ioemu/vl.c	2006-08-06 02:14:09.802902081 +0100
  14.394 +@@ -422,12 +422,15 @@
  14.395   void hw_error(const char *fmt, ...)
  14.396   {
  14.397       va_list ap;
  14.398 @@ -447,7 +447,7 @@ Index: ioemu/vl.c
  14.399       for(env = first_cpu; env != NULL; env = env->next_cpu) {
  14.400           fprintf(stderr, "CPU #%d:\n", env->cpu_index);
  14.401   #ifdef TARGET_I386
  14.402 -@@ -437,6 +440,7 @@
  14.403 +@@ -436,6 +439,7 @@
  14.404           cpu_dump_state(env, stderr, fprintf, 0);
  14.405   #endif
  14.406       }
  14.407 @@ -455,7 +455,7 @@ Index: ioemu/vl.c
  14.408       va_end(ap);
  14.409       abort();
  14.410   }
  14.411 -@@ -3800,6 +3804,7 @@
  14.412 +@@ -4336,6 +4340,7 @@
  14.413       return ret;
  14.414   }
  14.415   
  14.416 @@ -463,7 +463,7 @@ Index: ioemu/vl.c
  14.417   /***********************************************************/
  14.418   /* cpu save/restore */
  14.419   
  14.420 -@@ -4234,6 +4239,25 @@
  14.421 +@@ -4770,6 +4775,25 @@
  14.422       }
  14.423       return 0;
  14.424   }
  14.425 @@ -489,7 +489,7 @@ Index: ioemu/vl.c
  14.426   
  14.427   /***********************************************************/
  14.428   /* machine registration */
  14.429 -@@ -5481,6 +5505,7 @@
  14.430 +@@ -6054,6 +6078,7 @@
  14.431       socket_init();
  14.432   #endif
  14.433   
  14.434 @@ -497,7 +497,7 @@ Index: ioemu/vl.c
  14.435       /* init network clients */
  14.436       if (nb_net_clients == 0) {
  14.437           /* if no clients, we use a default config */
  14.438 -@@ -5490,6 +5515,7 @@
  14.439 +@@ -6063,6 +6088,7 @@
  14.440                   "user");
  14.441           nb_net_clients = 2;
  14.442       }
    15.1 --- a/tools/ioemu/patches/qemu-fix-memset-args	Mon Aug 07 18:27:27 2006 +0100
    15.2 +++ b/tools/ioemu/patches/qemu-fix-memset-args	Mon Aug 07 18:28:50 2006 +0100
    15.3 @@ -1,8 +1,8 @@
    15.4  Index: ioemu/audio/audio.c
    15.5  ===================================================================
    15.6 ---- ioemu.orig/audio/audio.c	2006-07-14 13:43:45.000000000 +0100
    15.7 -+++ ioemu/audio/audio.c	2006-08-04 10:18:17.243240246 +0100
    15.8 -@@ -597,11 +597,11 @@
    15.9 +--- ioemu.orig/audio/audio.c	2006-08-06 02:03:50.013976165 +0100
   15.10 ++++ ioemu/audio/audio.c	2006-08-06 02:42:28.991609008 +0100
   15.11 +@@ -605,11 +605,11 @@
   15.12       }
   15.13   
   15.14       if (info->sign) {
    16.1 --- a/tools/ioemu/patches/qemu-fix-write-to-disk-synchronous	Mon Aug 07 18:27:27 2006 +0100
    16.2 +++ b/tools/ioemu/patches/qemu-fix-write-to-disk-synchronous	Mon Aug 07 18:28:50 2006 +0100
    16.3 @@ -1,7 +1,7 @@
    16.4  Index: ioemu/block-vmdk.c
    16.5  ===================================================================
    16.6 ---- ioemu.orig/block-vmdk.c	2006-07-14 13:43:45.000000000 +0100
    16.7 -+++ ioemu/block-vmdk.c	2006-08-04 10:27:15.368803650 +0100
    16.8 +--- ioemu.orig/block-vmdk.c	2006-08-06 02:03:45.756450226 +0100
    16.9 ++++ ioemu/block-vmdk.c	2006-08-06 02:42:31.884286728 +0100
   16.10  @@ -96,7 +96,7 @@
   16.11       uint32_t magic;
   16.12       int l1_size;
   16.13 @@ -13,8 +13,8 @@ Index: ioemu/block-vmdk.c
   16.14           if (fd < 0)
   16.15  Index: ioemu/block-qcow.c
   16.16  ===================================================================
   16.17 ---- ioemu.orig/block-qcow.c	2006-07-14 13:43:45.000000000 +0100
   16.18 -+++ ioemu/block-qcow.c	2006-08-04 10:27:15.367803766 +0100
   16.19 +--- ioemu.orig/block-qcow.c	2006-08-06 02:03:45.754450449 +0100
   16.20 ++++ ioemu/block-qcow.c	2006-08-06 02:42:31.885286616 +0100
   16.21  @@ -95,7 +95,7 @@
   16.22       int fd, len, i, shift;
   16.23       QCowHeader header;
   16.24 @@ -26,8 +26,8 @@ Index: ioemu/block-qcow.c
   16.25           if (fd < 0)
   16.26  Index: ioemu/block-bochs.c
   16.27  ===================================================================
   16.28 ---- ioemu.orig/block-bochs.c	2006-07-14 13:43:45.000000000 +0100
   16.29 -+++ ioemu/block-bochs.c	2006-08-04 10:27:15.345806311 +0100
   16.30 +--- ioemu.orig/block-bochs.c	2006-08-06 01:55:02.225741179 +0100
   16.31 ++++ ioemu/block-bochs.c	2006-08-06 02:42:31.885286616 +0100
   16.32  @@ -91,7 +91,7 @@
   16.33       int fd, i;
   16.34       struct bochs_header bochs;
   16.35 @@ -39,9 +39,9 @@ Index: ioemu/block-bochs.c
   16.36           if (fd < 0)
   16.37  Index: ioemu/block.c
   16.38  ===================================================================
   16.39 ---- ioemu.orig/block.c	2006-08-03 19:19:39.000000000 +0100
   16.40 -+++ ioemu/block.c	2006-08-04 10:27:15.357804923 +0100
   16.41 -@@ -677,7 +677,7 @@
   16.42 +--- ioemu.orig/block.c	2006-08-06 02:42:18.880735483 +0100
   16.43 ++++ ioemu/block.c	2006-08-06 02:42:31.886286505 +0100
   16.44 +@@ -685,7 +685,7 @@
   16.45       int rv;
   16.46   #endif
   16.47   
   16.48 @@ -52,8 +52,8 @@ Index: ioemu/block.c
   16.49           if (fd < 0)
   16.50  Index: ioemu/block-cow.c
   16.51  ===================================================================
   16.52 ---- ioemu.orig/block-cow.c	2006-07-14 13:43:45.000000000 +0100
   16.53 -+++ ioemu/block-cow.c	2006-08-04 10:27:15.366803882 +0100
   16.54 +--- ioemu.orig/block-cow.c	2006-08-06 02:03:45.751450783 +0100
   16.55 ++++ ioemu/block-cow.c	2006-08-06 02:42:31.886286505 +0100
   16.56  @@ -69,7 +69,7 @@
   16.57       struct cow_header_v2 cow_header;
   16.58       int64_t size;
   16.59 @@ -65,8 +65,8 @@ Index: ioemu/block-cow.c
   16.60           if (fd < 0)
   16.61  Index: ioemu/block-cloop.c
   16.62  ===================================================================
   16.63 ---- ioemu.orig/block-cloop.c	2006-07-14 13:43:45.000000000 +0100
   16.64 -+++ ioemu/block-cloop.c	2006-08-04 10:27:15.365803997 +0100
   16.65 +--- ioemu.orig/block-cloop.c	2006-08-06 01:55:02.226741067 +0100
   16.66 ++++ ioemu/block-cloop.c	2006-08-06 02:42:31.886286505 +0100
   16.67  @@ -55,7 +55,7 @@
   16.68       BDRVCloopState *s = bs->opaque;
   16.69       uint32_t offsets_size,max_compressed_block_size=1,i;
    17.1 --- a/tools/ioemu/patches/qemu-hvm-banner	Mon Aug 07 18:27:27 2006 +0100
    17.2 +++ b/tools/ioemu/patches/qemu-hvm-banner	Mon Aug 07 18:28:50 2006 +0100
    17.3 @@ -1,8 +1,8 @@
    17.4  Index: ioemu/monitor.c
    17.5  ===================================================================
    17.6 ---- ioemu.orig/monitor.c	2006-07-12 11:35:00.705828339 +0100
    17.7 -+++ ioemu/monitor.c	2006-07-12 11:35:01.307752925 +0100
    17.8 -@@ -2293,15 +2293,14 @@
    17.9 +--- ioemu.orig/monitor.c	2006-08-06 02:15:01.772108510 +0100
   17.10 ++++ ioemu/monitor.c	2006-08-06 02:17:10.847719223 +0100
   17.11 +@@ -2425,15 +2425,14 @@
   17.12   
   17.13   static void monitor_start_input(void)
   17.14   {
    18.1 --- a/tools/ioemu/patches/qemu-init-vgabios	Mon Aug 07 18:27:27 2006 +0100
    18.2 +++ b/tools/ioemu/patches/qemu-init-vgabios	Mon Aug 07 18:28:50 2006 +0100
    18.3 @@ -1,8 +1,8 @@
    18.4  Index: ioemu/hw/vga.c
    18.5  ===================================================================
    18.6 ---- ioemu.orig/hw/vga.c	2006-07-27 11:10:44.847738090 +0100
    18.7 -+++ ioemu/hw/vga.c	2006-07-27 11:11:02.008839258 +0100
    18.8 -@@ -1669,6 +1669,136 @@
    18.9 +--- ioemu.orig/hw/vga.c	2006-08-06 02:22:01.441324863 +0100
   18.10 ++++ ioemu/hw/vga.c	2006-08-06 02:22:46.606290142 +0100
   18.11 +@@ -1728,6 +1728,136 @@
   18.12       }
   18.13   }
   18.14   
   18.15 @@ -139,7 +139,7 @@ Index: ioemu/hw/vga.c
   18.16   void vga_common_init(VGAState *s, DisplayState *ds, uint8_t *vga_ram_base, 
   18.17                        unsigned long vga_ram_offset, int vga_ram_size)
   18.18   {
   18.19 -@@ -1710,6 +1840,8 @@
   18.20 +@@ -1769,6 +1899,8 @@
   18.21                            vga_screen_dump, s);
   18.22       /* XXX: currently needed for display */
   18.23       vga_state = s;
    19.1 --- a/tools/ioemu/patches/qemu-logging	Mon Aug 07 18:27:27 2006 +0100
    19.2 +++ b/tools/ioemu/patches/qemu-logging	Mon Aug 07 18:28:50 2006 +0100
    19.3 @@ -1,8 +1,8 @@
    19.4  Index: ioemu/vl.c
    19.5  ===================================================================
    19.6 ---- ioemu.orig/vl.c	2006-07-27 11:16:57.756466882 +0100
    19.7 -+++ ioemu/vl.c	2006-07-27 11:16:57.828458912 +0100
    19.8 -@@ -4698,7 +4698,7 @@
    19.9 +--- ioemu.orig/vl.c	2006-08-06 02:15:48.550893605 +0100
   19.10 ++++ ioemu/vl.c	2006-08-06 02:16:31.246133963 +0100
   19.11 +@@ -5234,7 +5234,7 @@
   19.12              "-S              freeze CPU at startup (use 'c' to start execution)\n"
   19.13              "-s              wait gdb connection to port %d\n"
   19.14              "-p port         change gdb connection port\n"
   19.15 @@ -11,7 +11,7 @@ Index: ioemu/vl.c
   19.16              "-hdachs c,h,s[,t]  force hard disk 0 physical geometry and the optional BIOS\n"
   19.17              "                translation (t=none or lba) (usually qemu can guess them)\n"
   19.18              "-L path         set the directory for the BIOS and VGA BIOS\n"
   19.19 -@@ -4776,7 +4776,7 @@
   19.20 +@@ -5307,7 +5307,7 @@
   19.21       QEMU_OPTION_S,
   19.22       QEMU_OPTION_s,
   19.23       QEMU_OPTION_p,
   19.24 @@ -20,7 +20,7 @@ Index: ioemu/vl.c
   19.25       QEMU_OPTION_hdachs,
   19.26       QEMU_OPTION_L,
   19.27   #ifdef USE_CODE_COPY
   19.28 -@@ -4845,7 +4845,7 @@
   19.29 +@@ -5380,7 +5380,7 @@
   19.30       { "S", 0, QEMU_OPTION_S },
   19.31       { "s", 0, QEMU_OPTION_s },
   19.32       { "p", HAS_ARG, QEMU_OPTION_p },
   19.33 @@ -29,16 +29,16 @@ Index: ioemu/vl.c
   19.34       { "hdachs", HAS_ARG, QEMU_OPTION_hdachs },
   19.35       { "L", HAS_ARG, QEMU_OPTION_L },
   19.36   #ifdef USE_CODE_COPY
   19.37 -@@ -5096,6 +5096,8 @@
   19.38 -     char usb_devices[MAX_VM_USB_PORTS][128];
   19.39 +@@ -5640,6 +5640,8 @@
   19.40 +     char usb_devices[MAX_USB_CMDLINE][128];
   19.41       int usb_devices_index;
   19.42   
   19.43  +    char qemu_dm_logfilename[64];
   19.44  +
   19.45       LIST_INIT (&vm_change_state_head);
   19.46 - #if !defined(CONFIG_SOFTMMU)
   19.47 -     /* we never want that malloc() uses mmap() */
   19.48 -@@ -5145,6 +5147,11 @@
   19.49 + #ifndef _WIN32
   19.50 +     {
   19.51 +@@ -5715,6 +5717,11 @@
   19.52       nb_nics = 0;
   19.53       /* default mac address of the first network interface */
   19.54       
   19.55 @@ -50,7 +50,7 @@ Index: ioemu/vl.c
   19.56       optind = 1;
   19.57       for(;;) {
   19.58           if (optind >= argc)
   19.59 -@@ -5330,7 +5337,7 @@
   19.60 +@@ -5905,7 +5912,7 @@
   19.61                       exit(1);
   19.62                   }
   19.63                   break;
   19.64 @@ -59,12 +59,3 @@ Index: ioemu/vl.c
   19.65                   {
   19.66                       int mask;
   19.67                       CPULogItem *item;
   19.68 -@@ -5701,7 +5708,7 @@
   19.69 -         stk.ss_flags = 0;
   19.70 - 
   19.71 -         if (sigaltstack(&stk, NULL) < 0) {
   19.72 --            perror("sigaltstack");
   19.73 -+            fprintf(logfile, "sigaltstack returned error %d\n", errno);
   19.74 -             exit(1);
   19.75 -         }
   19.76 -     }
    20.1 --- a/tools/ioemu/patches/qemu-no-apic	Mon Aug 07 18:27:27 2006 +0100
    20.2 +++ b/tools/ioemu/patches/qemu-no-apic	Mon Aug 07 18:28:50 2006 +0100
    20.3 @@ -1,20 +1,20 @@
    20.4  Index: ioemu/Makefile.target
    20.5  ===================================================================
    20.6 ---- ioemu.orig/Makefile.target	2006-07-12 11:35:00.704828464 +0100
    20.7 -+++ ioemu/Makefile.target	2006-07-12 11:35:01.899678766 +0100
    20.8 -@@ -334,7 +334,7 @@
    20.9 +--- ioemu.orig/Makefile.target	2006-08-06 02:21:42.270461924 +0100
   20.10 ++++ ioemu/Makefile.target	2006-08-06 02:22:26.380544784 +0100
   20.11 +@@ -355,7 +355,7 @@
   20.12   # Hardware support
   20.13   VL_OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
   20.14   VL_OBJS+= fdc.o mc146818rtc.o serial.o i8254.o pcspk.o pc.o
   20.15 --VL_OBJS+= cirrus_vga.o mixeng.o apic.o parallel.o
   20.16 -+VL_OBJS+= cirrus_vga.o mixeng.o parallel.o
   20.17 +-VL_OBJS+= cirrus_vga.o mixeng.o apic.o parallel.o acpi.o piix_pci.o
   20.18 ++VL_OBJS+= cirrus_vga.o mixeng.o parallel.o acpi.o piix_pci.o
   20.19 + VL_OBJS+= usb-uhci.o
   20.20   DEFINES += -DHAS_AUDIO
   20.21   endif
   20.22 - ifeq ($(TARGET_BASE_ARCH), ppc)
   20.23  Index: ioemu/hw/pc.c
   20.24  ===================================================================
   20.25 ---- ioemu.orig/hw/pc.c	2006-07-12 11:35:01.685705573 +0100
   20.26 -+++ ioemu/hw/pc.c	2006-07-12 11:35:01.900678640 +0100
   20.27 +--- ioemu.orig/hw/pc.c	2006-08-06 02:22:01.524315611 +0100
   20.28 ++++ ioemu/hw/pc.c	2006-08-06 02:22:11.875161758 +0100
   20.29  @@ -39,7 +39,9 @@
   20.30   static fdctrl_t *floppy_controller;
   20.31   static RTCState *rtc_state;
   20.32 @@ -22,10 +22,10 @@ Index: ioemu/hw/pc.c
   20.33  +#ifndef CONFIG_DM
   20.34   static IOAPICState *ioapic;
   20.35  +#endif /* !CONFIG_DM */
   20.36 - static USBPort *usb_root_ports[2];
   20.37   
   20.38   static void ioport80_write(void *opaque, uint32_t addr, uint32_t data)
   20.39 -@@ -633,9 +635,11 @@
   20.40 + {
   20.41 +@@ -640,9 +642,11 @@
   20.42   #endif /* !CONFIG_DM */
   20.43           register_savevm("cpu", i, 3, cpu_save, cpu_load, env);
   20.44           qemu_register_reset(main_cpu_reset, env);
   20.45 @@ -37,7 +37,7 @@ Index: ioemu/hw/pc.c
   20.46       }
   20.47   
   20.48       /* allocate RAM */
   20.49 -@@ -782,9 +786,11 @@
   20.50 +@@ -789,9 +793,11 @@
   20.51       register_ioport_read(0x92, 1, 1, ioport92_read, NULL);
   20.52       register_ioport_write(0x92, 1, 1, ioport92_write, NULL);
   20.53   
    21.1 --- a/tools/ioemu/patches/qemu-nobios	Mon Aug 07 18:27:27 2006 +0100
    21.2 +++ b/tools/ioemu/patches/qemu-nobios	Mon Aug 07 18:28:50 2006 +0100
    21.3 @@ -1,7 +1,8 @@
    21.4 -diff -r 77a889b0aef8 hw/pc.c
    21.5 ---- a/hw/pc.c	Wed Jun 14 19:29:20 2006 +0200
    21.6 -+++ b/hw/pc.c	Wed Jun 14 19:29:35 2006 +0200
    21.7 -@@ -605,6 +605,8 @@ static void pc_init_ne2k_isa(NICInfo *nd
    21.8 +Index: ioemu/hw/pc.c
    21.9 +===================================================================
   21.10 +--- ioemu.orig/hw/pc.c	2006-08-06 02:22:11.875161758 +0100
   21.11 ++++ ioemu/hw/pc.c	2006-08-06 02:22:35.588518336 +0100
   21.12 +@@ -611,6 +611,8 @@
   21.13       nb_ne2k++;
   21.14   }
   21.15   
   21.16 @@ -10,7 +11,7 @@ diff -r 77a889b0aef8 hw/pc.c
   21.17   /* PC hardware initialisation */
   21.18   static void pc_init1(uint64_t ram_size, int vga_ram_size, int boot_device,
   21.19                        DisplayState *ds, const char **fd_filename, int snapshot,
   21.20 -@@ -612,10 +614,15 @@ static void pc_init1(uint64_t ram_size, 
   21.21 +@@ -618,10 +620,15 @@
   21.22                        const char *initrd_filename,
   21.23                        int pci_enabled)
   21.24   {
   21.25 @@ -25,9 +26,9 @@ diff -r 77a889b0aef8 hw/pc.c
   21.26       int bios_size, isa_bios_size;
   21.27  +#endif /* !NOBIOS */
   21.28       PCIBus *pci_bus;
   21.29 +     int piix3_devfn = -1;
   21.30       CPUState *env;
   21.31 -     NICInfo *nd;
   21.32 -@@ -647,6 +654,7 @@ static void pc_init1(uint64_t ram_size, 
   21.33 +@@ -654,6 +661,7 @@
   21.34       cpu_register_physical_memory(0, ram_size, 0);
   21.35   #endif
   21.36   
   21.37 @@ -35,7 +36,7 @@ diff -r 77a889b0aef8 hw/pc.c
   21.38       /* BIOS load */
   21.39       bios_offset = ram_size + vga_ram_size;
   21.40       vga_bios_offset = bios_offset + 256 * 1024;
   21.41 -@@ -675,6 +683,7 @@ static void pc_init1(uint64_t ram_size, 
   21.42 +@@ -682,6 +690,7 @@
   21.43           snprintf(buf, sizeof(buf), "%s/%s", bios_dir, VGABIOS_FILENAME);
   21.44       }
   21.45       ret = load_image(buf, phys_ram_base + vga_bios_offset);
   21.46 @@ -43,7 +44,7 @@ diff -r 77a889b0aef8 hw/pc.c
   21.47       
   21.48       /* setup basic memory access */
   21.49   #ifndef CONFIG_DM		/* HVM domain owns memory */
   21.50 -@@ -682,6 +691,7 @@ static void pc_init1(uint64_t ram_size, 
   21.51 +@@ -689,6 +698,7 @@
   21.52                                    vga_bios_offset | IO_MEM_ROM);
   21.53   #endif
   21.54   
   21.55 @@ -51,7 +52,7 @@ diff -r 77a889b0aef8 hw/pc.c
   21.56       /* map the last 128KB of the BIOS in ISA space */
   21.57       isa_bios_size = bios_size;
   21.58       if (isa_bios_size > (128 * 1024))
   21.59 -@@ -694,6 +704,7 @@ static void pc_init1(uint64_t ram_size, 
   21.60 +@@ -701,6 +711,7 @@
   21.61       /* map all the bios at the top of memory */
   21.62       cpu_register_physical_memory((uint32_t)(-bios_size), 
   21.63                                    bios_size, bios_offset | IO_MEM_ROM);
    22.1 --- a/tools/ioemu/patches/qemu-smp	Mon Aug 07 18:27:27 2006 +0100
    22.2 +++ b/tools/ioemu/patches/qemu-smp	Mon Aug 07 18:28:50 2006 +0100
    22.3 @@ -1,17 +1,17 @@
    22.4  Index: ioemu/vl.c
    22.5  ===================================================================
    22.6 ---- ioemu.orig/vl.c	2006-07-27 11:16:58.619371357 +0100
    22.7 -+++ ioemu/vl.c	2006-07-27 11:16:58.823348777 +0100
    22.8 -@@ -159,6 +159,8 @@
    22.9 - #define MAX_CPUS 1
   22.10 - #endif
   22.11 +--- ioemu.orig/vl.c	2006-08-06 02:18:54.847125593 +0100
   22.12 ++++ ioemu/vl.c	2006-08-06 02:19:00.413505070 +0100
   22.13 +@@ -158,6 +158,8 @@
   22.14 + int acpi_enabled = 1;
   22.15 + int fd_bootchk = 1;
   22.16   
   22.17  +extern int vcpus;
   22.18  +
   22.19   int xc_handle;
   22.20   
   22.21   char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
   22.22 -@@ -4636,6 +4638,7 @@
   22.23 +@@ -5172,6 +5174,7 @@
   22.24              "-m megs         set virtual RAM size to megs MB [default=%d]\n"
   22.25              "-smp n          set the number of CPUs to 'n' [default=1]\n"
   22.26              "-nographic      disable graphical output and redirect serial I/Os to console\n"
   22.27 @@ -19,23 +19,23 @@ Index: ioemu/vl.c
   22.28   #ifndef _WIN32
   22.29   	   "-k language     use keyboard layout (for example \"fr\" for French)\n"
   22.30   #endif
   22.31 -@@ -4810,6 +4813,7 @@
   22.32 -     QEMU_OPTION_vnc,
   22.33 +@@ -5342,6 +5345,7 @@
   22.34 +     QEMU_OPTION_no_acpi,
   22.35   
   22.36       QEMU_OPTION_d,
   22.37  +    QEMU_OPTION_vcpus,
   22.38   };
   22.39   
   22.40   typedef struct QEMUOption {
   22.41 -@@ -4887,6 +4891,7 @@
   22.42 -     { "cirrusvga", 0, QEMU_OPTION_cirrusvga },
   22.43 +@@ -5423,6 +5427,7 @@
   22.44 +     { "no-acpi", 0, QEMU_OPTION_no_acpi },
   22.45       
   22.46       { "d", HAS_ARG, QEMU_OPTION_d },
   22.47  +    { "vcpus", 1, QEMU_OPTION_vcpus },
   22.48       { NULL },
   22.49   };
   22.50   
   22.51 -@@ -5509,6 +5514,10 @@
   22.52 +@@ -6087,6 +6092,10 @@
   22.53                   domid = atoi(optarg);
   22.54                   fprintf(logfile, "domid: %d\n", domid);
   22.55                   break;
    23.1 --- a/tools/ioemu/patches/qemu-target-i386-dm	Mon Aug 07 18:27:27 2006 +0100
    23.2 +++ b/tools/ioemu/patches/qemu-target-i386-dm	Mon Aug 07 18:28:50 2006 +0100
    23.3 @@ -1,8 +1,8 @@
    23.4  Index: ioemu/Makefile.target
    23.5  ===================================================================
    23.6 ---- ioemu.orig/Makefile.target	2006-07-28 09:56:49.468301708 +0100
    23.7 -+++ ioemu/Makefile.target	2006-07-28 09:56:58.486281629 +0100
    23.8 -@@ -57,6 +57,8 @@
    23.9 +--- ioemu.orig/Makefile.target	2006-08-06 02:14:09.794902973 +0100
   23.10 ++++ ioemu/Makefile.target	2006-08-06 02:21:42.270461924 +0100
   23.11 +@@ -62,6 +62,8 @@
   23.12   QEMU_SYSTEM=qemu-fast
   23.13   endif
   23.14   
   23.15 @@ -11,7 +11,7 @@ Index: ioemu/Makefile.target
   23.16   ifdef CONFIG_USER_ONLY
   23.17   PROGS=$(QEMU_USER)
   23.18   else
   23.19 -@@ -274,6 +276,9 @@
   23.20 +@@ -291,6 +293,9 @@
   23.21   OBJS+=gdbstub.o
   23.22   endif
   23.23   
   23.24 @@ -21,20 +21,20 @@ Index: ioemu/Makefile.target
   23.25   all: $(PROGS)
   23.26   
   23.27   $(QEMU_USER): $(OBJS)
   23.28 -@@ -328,7 +333,7 @@
   23.29 +@@ -349,7 +354,7 @@
   23.30   ifeq ($(TARGET_BASE_ARCH), i386)
   23.31   # Hardware support
   23.32   VL_OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
   23.33  -VL_OBJS+= fdc.o mc146818rtc.o serial.o i8259.o i8254.o pcspk.o pc.o
   23.34  +VL_OBJS+= fdc.o mc146818rtc.o serial.o i8254.o pcspk.o pc.o
   23.35 - VL_OBJS+= cirrus_vga.o mixeng.o apic.o parallel.o
   23.36 + VL_OBJS+= cirrus_vga.o mixeng.o apic.o parallel.o acpi.o piix_pci.o
   23.37 + VL_OBJS+= usb-uhci.o
   23.38   DEFINES += -DHAS_AUDIO
   23.39 - endif
   23.40  Index: ioemu/configure
   23.41  ===================================================================
   23.42 ---- ioemu.orig/configure	2006-07-28 09:56:49.469301595 +0100
   23.43 -+++ ioemu/configure	2006-07-28 09:56:49.486299672 +0100
   23.44 -@@ -359,6 +359,8 @@
   23.45 +--- ioemu.orig/configure	2006-08-06 02:14:09.795902861 +0100
   23.46 ++++ ioemu/configure	2006-08-06 02:15:01.771108621 +0100
   23.47 +@@ -373,6 +373,8 @@
   23.48       if [ "$user" = "yes" ] ; then
   23.49           target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
   23.50       fi
   23.51 @@ -45,12 +45,12 @@ Index: ioemu/configure
   23.52   fi
   23.53  Index: ioemu/monitor.c
   23.54  ===================================================================
   23.55 ---- ioemu.orig/monitor.c	2006-07-28 09:56:49.472301255 +0100
   23.56 -+++ ioemu/monitor.c	2006-07-28 09:56:58.720255164 +0100
   23.57 -@@ -1142,6 +1142,10 @@
   23.58 -       "", "show host USB devices", },
   23.59 -     { "profile", "", do_info_profile,
   23.60 +--- ioemu.orig/monitor.c	2006-08-06 02:14:49.574468309 +0100
   23.61 ++++ ioemu/monitor.c	2006-08-06 02:21:16.172371202 +0100
   23.62 +@@ -1262,6 +1262,10 @@
   23.63         "", "show profiling information", },
   23.64 +     { "capture", "", do_info_capture,
   23.65 +       "show capture information" },
   23.66  +#ifdef CONFIG_DM
   23.67  +    { "hvmiopage", "", sp_info,
   23.68  +      "", "show HVM device model shared page info", },
   23.69 @@ -60,8 +60,8 @@ Index: ioemu/monitor.c
   23.70   
   23.71  Index: ioemu/vl.c
   23.72  ===================================================================
   23.73 ---- ioemu.orig/vl.c	2006-07-28 09:56:49.475300916 +0100
   23.74 -+++ ioemu/vl.c	2006-07-28 09:56:58.917232883 +0100
   23.75 +--- ioemu.orig/vl.c	2006-08-06 02:14:09.802902081 +0100
   23.76 ++++ ioemu/vl.c	2006-08-06 02:21:16.369349244 +0100
   23.77  @@ -87,7 +87,7 @@
   23.78   
   23.79   #include "exec-all.h"
   23.80 @@ -71,7 +71,7 @@ Index: ioemu/vl.c
   23.81   
   23.82   //#define DEBUG_UNUSED_IOPORT
   23.83   //#define DEBUG_IOPORT
   23.84 -@@ -4382,7 +4382,7 @@
   23.85 +@@ -4918,7 +4918,7 @@
   23.86   
   23.87   static QEMUResetEntry *first_reset_entry;
   23.88   static int reset_requested;
   23.89 @@ -80,7 +80,7 @@ Index: ioemu/vl.c
   23.90   static int powerdown_requested;
   23.91   
   23.92   void qemu_register_reset(QEMUResetHandler *func, void *opaque)
   23.93 -@@ -4534,6 +4534,7 @@
   23.94 +@@ -5067,6 +5067,7 @@
   23.95                       qemu_get_clock(rt_clock));
   23.96   }
   23.97   
   23.98 @@ -88,7 +88,7 @@ Index: ioemu/vl.c
   23.99   static CPUState *cur_cpu;
  23.100   
  23.101   int main_loop(void)
  23.102 -@@ -4608,6 +4609,7 @@
  23.103 +@@ -5141,6 +5142,7 @@
  23.104       cpu_disable_ticks();
  23.105       return ret;
  23.106   }
  23.107 @@ -98,18 +98,18 @@ Index: ioemu/vl.c
  23.108   {
  23.109  Index: ioemu/vl.h
  23.110  ===================================================================
  23.111 ---- ioemu.orig/vl.h	2006-07-28 09:56:49.281322859 +0100
  23.112 -+++ ioemu/vl.h	2006-07-28 09:56:58.917232883 +0100
  23.113 -@@ -38,6 +38,8 @@
  23.114 +--- ioemu.orig/vl.h	2006-08-06 02:13:56.733359091 +0100
  23.115 ++++ ioemu/vl.h	2006-08-06 02:21:16.369349244 +0100
  23.116 +@@ -37,6 +37,8 @@
  23.117 + #include <unistd.h>
  23.118   #include <fcntl.h>
  23.119   #include <sys/stat.h>
  23.120 - #include "audio/audio.h"
  23.121  +#include "xenctrl.h"
  23.122  +#include "xs.h"
  23.123   
  23.124   #ifndef O_LARGEFILE
  23.125   #define O_LARGEFILE 0
  23.126 -@@ -131,6 +133,11 @@
  23.127 +@@ -139,6 +141,11 @@
  23.128   
  23.129   void main_loop_wait(int timeout);
  23.130   
  23.131 @@ -121,7 +121,7 @@ Index: ioemu/vl.h
  23.132   extern int ram_size;
  23.133   extern int bios_size;
  23.134   extern int rtc_utc;
  23.135 -@@ -814,6 +821,7 @@
  23.136 +@@ -873,6 +880,7 @@
  23.137   uint32_t pic_intack_read(PicState2 *s);
  23.138   void pic_info(void);
  23.139   void irq_info(void);
  23.140 @@ -132,7 +132,7 @@ Index: ioemu/vl.h
  23.141  Index: ioemu/target-i386-dm/cpu.h
  23.142  ===================================================================
  23.143  --- /dev/null	1970-01-01 00:00:00.000000000 +0000
  23.144 -+++ ioemu/target-i386-dm/cpu.h	2006-07-28 09:56:58.572271903 +0100
  23.145 ++++ ioemu/target-i386-dm/cpu.h	2006-08-06 02:21:16.023387810 +0100
  23.146  @@ -0,0 +1,86 @@
  23.147  +/*
  23.148  + * i386 virtual CPU header
  23.149 @@ -223,7 +223,7 @@ Index: ioemu/target-i386-dm/cpu.h
  23.150  Index: ioemu/target-i386-dm/exec-dm.c
  23.151  ===================================================================
  23.152  --- /dev/null	1970-01-01 00:00:00.000000000 +0000
  23.153 -+++ ioemu/target-i386-dm/exec-dm.c	2006-07-28 09:58:22.882736989 +0100
  23.154 ++++ ioemu/target-i386-dm/exec-dm.c	2006-08-06 02:21:16.024387698 +0100
  23.155  @@ -0,0 +1,516 @@
  23.156  +/*
  23.157  + *  virtual page mapping and translated block handling
  23.158 @@ -744,7 +744,7 @@ Index: ioemu/target-i386-dm/exec-dm.c
  23.159  Index: ioemu/target-i386-dm/helper2.c
  23.160  ===================================================================
  23.161  --- /dev/null	1970-01-01 00:00:00.000000000 +0000
  23.162 -+++ ioemu/target-i386-dm/helper2.c	2006-07-28 09:56:58.312301309 +0100
  23.163 ++++ ioemu/target-i386-dm/helper2.c	2006-08-06 02:21:15.779415007 +0100
  23.164  @@ -0,0 +1,464 @@
  23.165  +/*
  23.166  + *  i386 helpers (without register variable usage)
  23.167 @@ -1213,7 +1213,7 @@ Index: ioemu/target-i386-dm/helper2.c
  23.168  Index: ioemu/target-i386-dm/i8259-dm.c
  23.169  ===================================================================
  23.170  --- /dev/null	1970-01-01 00:00:00.000000000 +0000
  23.171 -+++ ioemu/target-i386-dm/i8259-dm.c	2006-07-28 09:56:49.492298993 +0100
  23.172 ++++ ioemu/target-i386-dm/i8259-dm.c	2006-08-06 02:15:01.777107952 +0100
  23.173  @@ -0,0 +1,107 @@
  23.174  +/* Xen 8259 stub for interrupt controller emulation
  23.175  + * 
  23.176 @@ -1325,7 +1325,7 @@ Index: ioemu/target-i386-dm/i8259-dm.c
  23.177  Index: ioemu/target-i386-dm/qemu-dm.debug
  23.178  ===================================================================
  23.179  --- /dev/null	1970-01-01 00:00:00.000000000 +0000
  23.180 -+++ ioemu/target-i386-dm/qemu-dm.debug	2006-07-28 09:56:49.493298880 +0100
  23.181 ++++ ioemu/target-i386-dm/qemu-dm.debug	2006-08-06 02:15:01.778107841 +0100
  23.182  @@ -0,0 +1,5 @@
  23.183  +#!/bin/sh
  23.184  +
  23.185 @@ -1335,7 +1335,7 @@ Index: ioemu/target-i386-dm/qemu-dm.debu
  23.186  Index: ioemu/target-i386-dm/qemu-ifup
  23.187  ===================================================================
  23.188  --- /dev/null	1970-01-01 00:00:00.000000000 +0000
  23.189 -+++ ioemu/target-i386-dm/qemu-ifup	2006-07-28 09:56:49.493298880 +0100
  23.190 ++++ ioemu/target-i386-dm/qemu-ifup	2006-08-06 02:15:01.778107841 +0100
  23.191  @@ -0,0 +1,10 @@
  23.192  +#!/bin/sh
  23.193  +
    24.1 --- a/tools/ioemu/patches/qemu-timer	Mon Aug 07 18:27:27 2006 +0100
    24.2 +++ b/tools/ioemu/patches/qemu-timer	Mon Aug 07 18:28:50 2006 +0100
    24.3 @@ -1,8 +1,8 @@
    24.4  Index: ioemu/vl.c
    24.5  ===================================================================
    24.6 ---- ioemu.orig/vl.c	2006-07-12 11:35:02.126650330 +0100
    24.7 -+++ ioemu/vl.c	2006-07-12 11:35:02.273631916 +0100
    24.8 -@@ -861,6 +861,16 @@
    24.9 +--- ioemu.orig/vl.c	2006-08-06 02:22:53.925474246 +0100
   24.10 ++++ ioemu/vl.c	2006-08-06 02:22:56.618174081 +0100
   24.11 +@@ -824,6 +824,16 @@
   24.12       }
   24.13   }
   24.14   
   24.15 @@ -19,16 +19,16 @@ Index: ioemu/vl.c
   24.16   static void timer_save(QEMUFile *f, void *opaque)
   24.17   {
   24.18       if (cpu_ticks_enabled) {
   24.19 -@@ -977,6 +987,8 @@
   24.20 +@@ -940,6 +950,8 @@
   24.21   
   24.22   #endif /* !defined(_WIN32) */
   24.23   
   24.24  +#endif /* !CONFIG_DM */
   24.25  +
   24.26 - static void init_timers(void)
   24.27 + static void init_timer_alarm(void)
   24.28   {
   24.29 -     rt_clock = qemu_new_clock(QEMU_TIMER_REALTIME);
   24.30 -@@ -1011,12 +1023,15 @@
   24.31 + #ifdef _WIN32
   24.32 +@@ -971,12 +983,15 @@
   24.33       pit_min_timer_count = ((uint64_t)10000 * PIT_FREQ) / 1000000;
   24.34   #else
   24.35       {
   24.36 @@ -44,7 +44,7 @@ Index: ioemu/vl.c
   24.37           /* timer signal */
   24.38           sigfillset(&act.sa_mask);
   24.39          act.sa_flags = 0;
   24.40 -@@ -1062,6 +1077,7 @@
   24.41 +@@ -1022,6 +1037,7 @@
   24.42               pit_min_timer_count = ((uint64_t)itv.it_interval.tv_usec * 
   24.43                                      PIT_FREQ) / 1000000;
   24.44           }
    25.1 --- a/tools/ioemu/patches/serial-non-block	Mon Aug 07 18:27:27 2006 +0100
    25.2 +++ b/tools/ioemu/patches/serial-non-block	Mon Aug 07 18:28:50 2006 +0100
    25.3 @@ -1,8 +1,8 @@
    25.4  Index: ioemu/vl.c
    25.5  ===================================================================
    25.6 ---- ioemu.orig/vl.c	2006-07-12 11:35:02.880555879 +0100
    25.7 -+++ ioemu/vl.c	2006-07-12 11:35:03.004540346 +0100
    25.8 -@@ -1215,19 +1215,34 @@
    25.9 +--- ioemu.orig/vl.c	2006-08-06 02:23:29.827472129 +0100
   25.10 ++++ ioemu/vl.c	2006-08-06 02:23:36.856688561 +0100
   25.11 +@@ -1175,19 +1175,34 @@
   25.12   
   25.13   static int unix_write(int fd, const uint8_t *buf, int len1)
   25.14   {
    26.1 --- a/tools/ioemu/patches/series	Mon Aug 07 18:27:27 2006 +0100
    26.2 +++ b/tools/ioemu/patches/series	Mon Aug 07 18:28:50 2006 +0100
    26.3 @@ -26,7 +26,6 @@ shadow-vram
    26.4  serial-non-block
    26.5  ide-hd-multithread
    26.6  domain-timeoffset
    26.7 -sdl-mouse-invisible-wall
    26.8  acpi-support
    26.9  acpi-timer-support
   26.10  acpi-poweroff-support
    27.1 --- a/tools/ioemu/patches/shadow-vram	Mon Aug 07 18:27:27 2006 +0100
    27.2 +++ b/tools/ioemu/patches/shadow-vram	Mon Aug 07 18:28:50 2006 +0100
    27.3 @@ -1,8 +1,8 @@
    27.4  Index: ioemu/hw/vga.c
    27.5  ===================================================================
    27.6 ---- ioemu.orig/hw/vga.c	2006-07-26 15:17:39.821306797 +0100
    27.7 -+++ ioemu/hw/vga.c	2006-07-26 15:17:40.017285449 +0100
    27.8 -@@ -1287,6 +1287,105 @@
    27.9 +--- ioemu.orig/hw/vga.c	2006-08-06 02:23:29.824472464 +0100
   27.10 ++++ ioemu/hw/vga.c	2006-08-06 02:23:33.873021159 +0100
   27.11 +@@ -1359,6 +1359,105 @@
   27.12       }
   27.13   }
   27.14   
   27.15 @@ -108,7 +108,7 @@ Index: ioemu/hw/vga.c
   27.16   /* 
   27.17    * graphic modes
   27.18    */
   27.19 -@@ -1382,6 +1481,11 @@
   27.20 +@@ -1454,6 +1553,11 @@
   27.21       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",
   27.22              width, height, v, line_offset, s->cr[9], s->cr[0x17], s->line_compare, s->sr[0x01]);
   27.23   #endif
   27.24 @@ -120,7 +120,7 @@ Index: ioemu/hw/vga.c
   27.25       addr1 = (s->start_addr * 4);
   27.26       bwidth = width * 4;
   27.27       y_start = -1;
   27.28 -@@ -1830,6 +1934,14 @@
   27.29 +@@ -1889,6 +1993,14 @@
   27.30   
   27.31       vga_reset(s);
   27.32   
   27.33 @@ -137,9 +137,9 @@ Index: ioemu/hw/vga.c
   27.34       s->vram_size = vga_ram_size;
   27.35  Index: ioemu/hw/vga_int.h
   27.36  ===================================================================
   27.37 ---- ioemu.orig/hw/vga_int.h	2006-07-26 15:17:39.822306688 +0100
   27.38 -+++ ioemu/hw/vga_int.h	2006-07-26 15:17:40.017285449 +0100
   27.39 -@@ -76,6 +76,7 @@
   27.40 +--- ioemu.orig/hw/vga_int.h	2006-08-06 02:23:29.824472464 +0100
   27.41 ++++ ioemu/hw/vga_int.h	2006-08-06 02:23:33.874021048 +0100
   27.42 +@@ -79,6 +79,7 @@
   27.43   
   27.44   #define VGA_STATE_COMMON                                                \
   27.45       uint8_t *vram_ptr;                                                  \
    28.1 --- a/tools/ioemu/patches/shared-vram	Mon Aug 07 18:27:27 2006 +0100
    28.2 +++ b/tools/ioemu/patches/shared-vram	Mon Aug 07 18:28:50 2006 +0100
    28.3 @@ -1,7 +1,7 @@
    28.4  Index: ioemu/hw/cirrus_vga.c
    28.5  ===================================================================
    28.6 ---- ioemu.orig/hw/cirrus_vga.c	2006-07-27 11:16:53.059986783 +0100
    28.7 -+++ ioemu/hw/cirrus_vga.c	2006-07-27 11:16:59.923227020 +0100
    28.8 +--- ioemu.orig/hw/cirrus_vga.c	2006-08-06 01:55:02.822674718 +0100
    28.9 ++++ ioemu/hw/cirrus_vga.c	2006-08-06 02:23:29.822472686 +0100
   28.10  @@ -28,6 +28,9 @@
   28.11    */
   28.12   #include "vl.h"
   28.13 @@ -176,9 +176,9 @@ Index: ioemu/hw/cirrus_vga.c
   28.14   }
   28.15  Index: ioemu/hw/pc.c
   28.16  ===================================================================
   28.17 ---- ioemu.orig/hw/pc.c	2006-07-27 11:16:59.759245173 +0100
   28.18 -+++ ioemu/hw/pc.c	2006-07-27 11:16:59.924226909 +0100
   28.19 -@@ -783,14 +783,14 @@
   28.20 +--- ioemu.orig/hw/pc.c	2006-08-06 02:23:07.875919141 +0100
   28.21 ++++ ioemu/hw/pc.c	2006-08-06 02:23:29.823472575 +0100
   28.22 +@@ -790,14 +790,14 @@
   28.23       if (cirrus_vga_enabled) {
   28.24           if (pci_enabled) {
   28.25               pci_cirrus_vga_init(pci_bus, 
   28.26 @@ -198,9 +198,9 @@ Index: ioemu/hw/pc.c
   28.27   
   28.28  Index: ioemu/hw/vga.c
   28.29  ===================================================================
   28.30 ---- ioemu.orig/hw/vga.c	2006-07-27 11:16:59.103317784 +0100
   28.31 -+++ ioemu/hw/vga.c	2006-07-27 11:16:59.925226798 +0100
   28.32 -@@ -1799,6 +1799,7 @@
   28.33 +--- ioemu.orig/hw/vga.c	2006-08-06 02:22:46.606290142 +0100
   28.34 ++++ ioemu/hw/vga.c	2006-08-06 02:23:29.824472464 +0100
   28.35 +@@ -1858,6 +1858,7 @@
   28.36       /* TODO: add vbe support if enabled */
   28.37   }
   28.38   
   28.39 @@ -208,7 +208,7 @@ Index: ioemu/hw/vga.c
   28.40   void vga_common_init(VGAState *s, DisplayState *ds, uint8_t *vga_ram_base, 
   28.41                        unsigned long vga_ram_offset, int vga_ram_size)
   28.42   {
   28.43 -@@ -1829,7 +1830,7 @@
   28.44 +@@ -1888,7 +1889,7 @@
   28.45   
   28.46       vga_reset(s);
   28.47   
   28.48 @@ -217,7 +217,7 @@ Index: ioemu/hw/vga.c
   28.49       s->vram_offset = vga_ram_offset;
   28.50       s->vram_size = vga_ram_size;
   28.51       s->ds = ds;
   28.52 -@@ -1943,6 +1944,31 @@
   28.53 +@@ -2002,6 +2003,31 @@
   28.54       return 0;
   28.55   }
   28.56   
   28.57 @@ -251,9 +251,9 @@ Index: ioemu/hw/vga.c
   28.58   
   28.59  Index: ioemu/hw/vga_int.h
   28.60  ===================================================================
   28.61 ---- ioemu.orig/hw/vga_int.h	2006-07-27 11:16:57.447501084 +0100
   28.62 -+++ ioemu/hw/vga_int.h	2006-07-27 11:16:59.925226798 +0100
   28.63 -@@ -166,5 +166,6 @@
   28.64 +--- ioemu.orig/hw/vga_int.h	2006-08-06 02:14:09.797902638 +0100
   28.65 ++++ ioemu/hw/vga_int.h	2006-08-06 02:23:29.824472464 +0100
   28.66 +@@ -169,5 +169,6 @@
   28.67                                unsigned int color0, unsigned int color1,
   28.68                                unsigned int color_xor);
   28.69   
   28.70 @@ -262,9 +262,9 @@ Index: ioemu/hw/vga_int.h
   28.71   extern const uint8_t gr_mask[16];
   28.72  Index: ioemu/vl.c
   28.73  ===================================================================
   28.74 ---- ioemu.orig/vl.c	2006-07-27 11:16:59.762244841 +0100
   28.75 -+++ ioemu/vl.c	2006-07-27 11:16:59.928226466 +0100
   28.76 -@@ -5149,6 +5149,78 @@
   28.77 +--- ioemu.orig/vl.c	2006-08-06 02:23:07.878918807 +0100
   28.78 ++++ ioemu/vl.c	2006-08-06 02:23:29.827472129 +0100
   28.79 +@@ -5693,6 +5693,78 @@
   28.80   
   28.81   #define MAX_NET_CLIENTS 32
   28.82   
   28.83 @@ -345,9 +345,9 @@ Index: ioemu/vl.c
   28.84   #ifdef CONFIG_GDBSTUB
   28.85  Index: ioemu/vl.h
   28.86  ===================================================================
   28.87 ---- ioemu.orig/vl.h	2006-07-27 11:16:59.549268417 +0100
   28.88 -+++ ioemu/vl.h	2006-07-27 11:16:59.929226356 +0100
   28.89 -@@ -136,6 +136,13 @@
   28.90 +--- ioemu.orig/vl.h	2006-08-06 02:23:02.271543880 +0100
   28.91 ++++ ioemu/vl.h	2006-08-06 02:23:29.828472018 +0100
   28.92 +@@ -144,6 +144,13 @@
   28.93   
   28.94   void main_loop_wait(int timeout);
   28.95   
    29.1 --- a/tools/ioemu/patches/support-xm-console	Mon Aug 07 18:27:27 2006 +0100
    29.2 +++ b/tools/ioemu/patches/support-xm-console	Mon Aug 07 18:28:50 2006 +0100
    29.3 @@ -1,8 +1,8 @@
    29.4  Index: ioemu/vl.c
    29.5  ===================================================================
    29.6 ---- ioemu.orig/vl.c	2006-07-27 11:16:59.384286681 +0100
    29.7 -+++ ioemu/vl.c	2006-07-27 11:16:59.614261222 +0100
    29.8 -@@ -1535,26 +1535,65 @@
    29.9 +--- ioemu.orig/vl.c	2006-08-06 02:22:59.254880158 +0100
   29.10 ++++ ioemu/vl.c	2006-08-06 02:23:05.216215627 +0100
   29.11 +@@ -1536,26 +1536,65 @@
   29.12       return chr;
   29.13   }
   29.14   
   29.15 @@ -77,7 +77,7 @@ Index: ioemu/vl.c
   29.16       return qemu_chr_open_fd(master_fd, master_fd);
   29.17   }
   29.18   
   29.19 -@@ -5298,7 +5337,9 @@
   29.20 +@@ -5868,7 +5907,9 @@
   29.21                   break;
   29.22               case QEMU_OPTION_nographic:
   29.23                   pstrcpy(monitor_device, sizeof(monitor_device), "stdio");
    30.1 --- a/tools/ioemu/patches/vnc-access-monitor-vt	Mon Aug 07 18:27:27 2006 +0100
    30.2 +++ b/tools/ioemu/patches/vnc-access-monitor-vt	Mon Aug 07 18:28:50 2006 +0100
    30.3 @@ -1,7 +1,7 @@
    30.4  Index: ioemu/vnc.c
    30.5  ===================================================================
    30.6 ---- ioemu.orig/vnc.c	2006-07-26 14:33:57.906165040 +0100
    30.7 -+++ ioemu/vnc.c	2006-07-26 14:44:09.972552689 +0100
    30.8 +--- ioemu.orig/vnc.c	2006-08-07 17:44:33.084748631 +0100
    30.9 ++++ ioemu/vnc.c	2006-08-07 17:44:33.224733389 +0100
   30.10  @@ -32,6 +32,10 @@
   30.11   #include "vnc_keysym.h"
   30.12   #include "keymaps.c"
   30.13 @@ -13,15 +13,16 @@ Index: ioemu/vnc.c
   30.14   typedef struct Buffer
   30.15   {
   30.16       size_t capacity;
   30.17 -@@ -64,6 +68,7 @@
   30.18 -     Buffer output;
   30.19 -     Buffer input;
   30.20 -     kbd_layout_t *kbd_layout;
   30.21 +@@ -95,6 +99,8 @@
   30.22 +     int visible_h;
   30.23 + 
   30.24 +     int slow_client;
   30.25 ++
   30.26  +    int ctl_keys;               /* Ctrl+Alt starts calibration */
   30.27 + };
   30.28   
   30.29 -     VncReadEvent *read_handler;
   30.30 -     size_t read_handler_expect;
   30.31 -@@ -679,16 +684,80 @@
   30.32 + #define DIRTY_PIXEL_BITS 64
   30.33 +@@ -794,16 +800,80 @@
   30.34   
   30.35   static void do_key_event(VncState *vs, int down, uint32_t sym)
   30.36   {
    31.1 --- a/tools/ioemu/patches/vnc-cleanup	Mon Aug 07 18:27:27 2006 +0100
    31.2 +++ b/tools/ioemu/patches/vnc-cleanup	Mon Aug 07 18:28:50 2006 +0100
    31.3 @@ -1,8 +1,8 @@
    31.4  Index: ioemu/vnc.c
    31.5  ===================================================================
    31.6 ---- ioemu.orig/vnc.c	2006-08-04 10:42:19.575024607 +0100
    31.7 -+++ ioemu/vnc.c	2006-08-04 10:42:26.918176009 +0100
    31.8 -@@ -83,13 +83,16 @@
    31.9 +--- ioemu.orig/vnc.c	2006-08-07 17:42:21.888055419 +0100
   31.10 ++++ ioemu/vnc.c	2006-08-07 17:42:28.001363557 +0100
   31.11 +@@ -143,13 +143,16 @@
   31.12   static void vnc_dpy_update(DisplayState *ds, int x, int y, int w, int h)
   31.13   {
   31.14       VncState *vs = ds->opaque;
   31.15 @@ -17,12 +17,12 @@ Index: ioemu/vnc.c
   31.16   
   31.17       for (; y < h; y++)
   31.18  -	for (i = 0; i < w; i += 16)
   31.19 --	    vs->dirty_row[y] |= (1ULL << ((x + i) / 16));
   31.20 +-	    vnc_set_bit(vs->dirty_row[y], (x + i) / 16);
   31.21  +	vs->dirty_row[y] |= mask;
   31.22   }
   31.23   
   31.24   static void vnc_framebuffer_update(VncState *vs, int x, int y, int w, int h,
   31.25 -@@ -262,6 +265,7 @@
   31.26 +@@ -373,6 +376,7 @@
   31.27   static void vnc_update_client(void *opaque)
   31.28   {
   31.29       VncState *vs = opaque;
   31.30 @@ -30,16 +30,16 @@ Index: ioemu/vnc.c
   31.31   
   31.32       if (vs->need_update && vs->csock != -1) {
   31.33   	int y;
   31.34 -@@ -282,7 +286,7 @@
   31.35 +@@ -390,7 +394,7 @@
   31.36   	row = vs->ds->data;
   31.37   	old_row = vs->old_data;
   31.38   
   31.39  -	for (y = 0; y < vs->height; y++) {
   31.40  +	for (y = 0; y < vs->ds->height; y++) {
   31.41 - 	    if (vs->dirty_row[y] & width_mask) {
   31.42 + 	    if (vnc_and_bits(vs->dirty_row[y], width_mask, VNC_DIRTY_WORDS)) {
   31.43   		int x;
   31.44   		char *ptr, *old_ptr;
   31.45 -@@ -307,10 +311,8 @@
   31.46 +@@ -415,10 +419,8 @@
   31.47   	    old_row += vs->ds->linesize;
   31.48   	}
   31.49   
   31.50 @@ -52,7 +52,7 @@ Index: ioemu/vnc.c
   31.51   
   31.52   	/* Count rectangles */
   31.53   	n_rectangles = 0;
   31.54 -@@ -348,7 +350,9 @@
   31.55 +@@ -456,7 +458,9 @@
   31.56   	vnc_flush(vs);
   31.57   
   31.58       }
   31.59 @@ -65,9 +65,9 @@ Index: ioemu/vnc.c
   31.60   static void vnc_timer_init(VncState *vs)
   31.61  Index: ioemu/vl.c
   31.62  ===================================================================
   31.63 ---- ioemu.orig/vl.c	2006-08-04 10:42:26.723198541 +0100
   31.64 -+++ ioemu/vl.c	2006-08-04 10:42:26.921175663 +0100
   31.65 -@@ -4589,10 +4589,10 @@
   31.66 +--- ioemu.orig/vl.c	2006-08-07 17:42:27.807385506 +0100
   31.67 ++++ ioemu/vl.c	2006-08-07 17:42:28.004363230 +0100
   31.68 +@@ -5120,10 +5120,10 @@
   31.69           /* XXX: better handling of removal */
   31.70           for(ioh = first_io_handler; ioh != NULL; ioh = ioh_next) {
   31.71               ioh_next = ioh->next;
    32.1 --- a/tools/ioemu/patches/vnc-fixes	Mon Aug 07 18:27:27 2006 +0100
    32.2 +++ b/tools/ioemu/patches/vnc-fixes	Mon Aug 07 18:28:50 2006 +0100
    32.3 @@ -1,10 +1,10 @@
    32.4  Index: ioemu/vl.c
    32.5  ===================================================================
    32.6 ---- ioemu.orig/vl.c	2006-08-04 10:57:29.116972627 +0100
    32.7 -+++ ioemu/vl.c	2006-08-04 10:57:29.186964560 +0100
    32.8 -@@ -6026,8 +6026,10 @@
    32.9 -                   kernel_filename, kernel_cmdline, initrd_filename,
   32.10 -                   timeoffset);
   32.11 +--- ioemu.orig/vl.c	2006-08-07 17:42:28.004363230 +0100
   32.12 ++++ ioemu/vl.c	2006-08-07 17:43:16.361100898 +0100
   32.13 +@@ -6516,8 +6516,10 @@
   32.14 +         }
   32.15 +     }
   32.16   
   32.17  -    gui_timer = qemu_new_timer(rt_clock, gui_update, NULL);
   32.18  -    qemu_mod_timer(gui_timer, qemu_get_clock(rt_clock));
   32.19 @@ -17,8 +17,8 @@ Index: ioemu/vl.c
   32.20       if (use_gdbstub) {
   32.21  Index: ioemu/vnc.c
   32.22  ===================================================================
   32.23 ---- ioemu.orig/vnc.c	2006-08-04 10:57:29.114972858 +0100
   32.24 -+++ ioemu/vnc.c	2006-08-04 10:57:29.187964445 +0100
   32.25 +--- ioemu.orig/vnc.c	2006-08-07 17:42:28.001363557 +0100
   32.26 ++++ ioemu/vnc.c	2006-08-07 17:43:33.593225293 +0100
   32.27  @@ -3,6 +3,7 @@
   32.28    * 
   32.29    * Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws>
   32.30 @@ -27,20 +27,32 @@ Index: ioemu/vnc.c
   32.31    * 
   32.32    * Permission is hereby granted, free of charge, to any person obtaining a copy
   32.33    * of this software and associated documentation files (the "Software"), to deal
   32.34 -@@ -51,7 +52,11 @@
   32.35 +@@ -50,9 +51,11 @@
   32.36 +                                 uint32_t *last_fg,
   32.37 +                                 int *has_bg, int *has_fg);
   32.38 + 
   32.39 ++#if 0
   32.40 + #define VNC_MAX_WIDTH 2048
   32.41 + #define VNC_MAX_HEIGHT 2048
   32.42 + #define VNC_DIRTY_WORDS (VNC_MAX_WIDTH / (16 * 32))
   32.43 ++#endif
   32.44 + 
   32.45 + struct VncState
   32.46 + {
   32.47 +@@ -63,7 +66,11 @@
   32.48       int need_update;
   32.49       int width;
   32.50       int height;
   32.51 --    uint64_t dirty_row[768];
   32.52 +-    uint32_t dirty_row[VNC_MAX_HEIGHT][VNC_DIRTY_WORDS];
   32.53  +    uint64_t *dirty_row;	/* screen regions which are possibly dirty */
   32.54  +    int dirty_pixel_shift;
   32.55  +    uint64_t *update_row;	/* outstanding updates */
   32.56  +    int has_update;		/* there's outstanding updates in the
   32.57  +				 * visible area */
   32.58       char *old_data;
   32.59 -     int depth;
   32.60 +     int depth; /* internal VNC frame buffer byte per pixel */
   32.61       int has_resize;
   32.62 -@@ -62,13 +67,25 @@
   32.63 +@@ -81,13 +88,25 @@
   32.64   
   32.65       VncReadEvent *read_handler;
   32.66       size_t read_handler_expect;
   32.67 @@ -67,7 +79,7 @@ Index: ioemu/vnc.c
   32.68   */
   32.69   
   32.70   static void vnc_write(VncState *vs, const void *data, size_t len);
   32.71 -@@ -77,22 +94,38 @@
   32.72 +@@ -96,9 +115,12 @@
   32.73   static void vnc_write_u16(VncState *vs, uint16_t value);
   32.74   static void vnc_write_u8(VncState *vs, uint8_t value);
   32.75   static void vnc_flush(VncState *vs);
   32.76 @@ -76,6 +88,16 @@ Index: ioemu/vnc.c
   32.77   static void vnc_client_read(void *opaque);
   32.78  +static void framebuffer_set_updated(VncState *vs, int x, int y, int w, int h);
   32.79   
   32.80 ++#if 0
   32.81 + static inline void vnc_set_bit(uint32_t *d, int k)
   32.82 + {
   32.83 +     d[k >> 5] |= 1 << (k & 0x1f);
   32.84 +@@ -139,20 +161,35 @@
   32.85 +     }
   32.86 +     return 0;
   32.87 + }
   32.88 ++#endif
   32.89 + 
   32.90  -static void vnc_dpy_update(DisplayState *ds, int x, int y, int w, int h)
   32.91  +static void set_bits_in_row(VncState *vs, uint64_t *row,
   32.92  +			    int x, int y, int w, int h)
   32.93 @@ -112,7 +134,7 @@ Index: ioemu/vnc.c
   32.94   }
   32.95   
   32.96   static void vnc_framebuffer_update(VncState *vs, int x, int y, int w, int h,
   32.97 -@@ -109,16 +142,23 @@
   32.98 +@@ -169,16 +206,23 @@
   32.99   static void vnc_dpy_resize(DisplayState *ds, int w, int h)
  32.100   {
  32.101       VncState *vs = ds->opaque;
  32.102 @@ -138,7 +160,7 @@ Index: ioemu/vnc.c
  32.103       ds->width = w;
  32.104       ds->height = h;
  32.105       ds->linesize = w * vs->depth;
  32.106 -@@ -131,6 +171,10 @@
  32.107 +@@ -191,6 +235,10 @@
  32.108   	vs->width = ds->width;
  32.109   	vs->height = ds->height;
  32.110       }
  32.111 @@ -148,8 +170,8 @@ Index: ioemu/vnc.c
  32.112  +    framebuffer_set_updated(vs, 0, 0, ds->width, ds->height);
  32.113   }
  32.114   
  32.115 - static void send_framebuffer_update_raw(VncState *vs, int x, int y, int w, int h)
  32.116 -@@ -215,8 +259,20 @@
  32.117 + /* fastest code */
  32.118 +@@ -326,8 +374,20 @@
  32.119       int y = 0;
  32.120       int pitch = ds->linesize;
  32.121       VncState *vs = ds->opaque;
  32.122 @@ -171,7 +193,7 @@ Index: ioemu/vnc.c
  32.123   
  32.124       if (dst_y > src_y) {
  32.125   	y = h - 1;
  32.126 -@@ -238,31 +294,34 @@
  32.127 +@@ -349,31 +409,34 @@
  32.128   	old_row += pitch;
  32.129       }
  32.130   
  32.131 @@ -202,11 +224,11 @@ Index: ioemu/vnc.c
  32.132  -    for (h = 1; h < (vs->height - y); h++) {
  32.133  +    for (h = 1; y + h < maxy; h++) {
  32.134   	int tmp_x;
  32.135 --	if (!(vs->dirty_row[y + h] & (1ULL << last_x)))
  32.136 +-	if (!vnc_get_bit(vs->dirty_row[y + h], last_x))
  32.137  +	if (!(vs->update_row[y + h] & (1ULL << last_x)))
  32.138   	    break;
  32.139   	for (tmp_x = last_x; tmp_x < x; tmp_x++)
  32.140 --	    vs->dirty_row[y + h] &= ~(1ULL << tmp_x);
  32.141 +-	    vnc_clear_bit(vs->dirty_row[y + h], tmp_x);
  32.142  +	    vs->update_row[y + h] &= ~(1ULL << tmp_x);
  32.143       }
  32.144   
  32.145 @@ -218,30 +240,41 @@ Index: ioemu/vnc.c
  32.146   {
  32.147       VncState *vs = opaque;
  32.148       int64_t now = qemu_get_clock(rt_clock);
  32.149 -@@ -274,11 +333,12 @@
  32.150 - 	uint64_t width_mask;
  32.151 +@@ -382,12 +445,16 @@
  32.152 + 	int y;
  32.153 + 	char *row;
  32.154 + 	char *old_row;
  32.155 +-	uint32_t width_mask[VNC_DIRTY_WORDS];
  32.156 ++	uint64_t width_mask;
  32.157   	int n_rectangles;
  32.158   	int saved_offset;
  32.159  -	int has_dirty = 0;
  32.160 --
  32.161 --	width_mask = (1ULL << (vs->width / 16)) - 1;
  32.162  +	int maxx, maxy;
  32.163  +	int tile_bytes = vs->depth * DP2X(vs, 1);
  32.164   
  32.165 --	if (vs->width == 1024)
  32.166 +-        vnc_set_bits(width_mask, (vs->width / 16), VNC_DIRTY_WORDS);
  32.167  +	if (vs->width != DP2X(vs, DIRTY_PIXEL_BITS))
  32.168  +	    width_mask = (1ULL << X2DP_UP(vs, vs->ds->width)) - 1;
  32.169  +	else
  32.170 - 	    width_mask = ~(0ULL);
  32.171 ++	    width_mask = ~(0ULL);
  32.172   
  32.173   	/* Walk through the dirty map and eliminate tiles that
  32.174 -@@ -294,16 +354,18 @@
  32.175 + 	   really aren't dirty */
  32.176 +@@ -395,23 +462,25 @@
  32.177 + 	old_row = vs->old_data;
  32.178 + 
  32.179 + 	for (y = 0; y < vs->ds->height; y++) {
  32.180 +-	    if (vnc_and_bits(vs->dirty_row[y], width_mask, VNC_DIRTY_WORDS)) {
  32.181 ++	    if (vs->dirty_row[y] & width_mask) {
  32.182 + 		int x;
  32.183 + 		char *ptr, *old_ptr;
  32.184 + 
  32.185   		ptr = row;
  32.186   		old_ptr = old_row;
  32.187   
  32.188  -		for (x = 0; x < vs->ds->width; x += 16) {
  32.189  -		    if (memcmp(old_ptr, ptr, 16 * vs->depth) == 0) {
  32.190 --			vs->dirty_row[y] &= ~(1ULL << (x / 16));
  32.191 +-			vnc_clear_bit(vs->dirty_row[y], (x / 16));
  32.192  -		    } else {
  32.193  -			has_dirty = 1;
  32.194  -			memcpy(old_ptr, ptr, 16 * vs->depth);
  32.195 @@ -262,7 +295,7 @@ Index: ioemu/vnc.c
  32.196   		}
  32.197   	    }
  32.198   
  32.199 -@@ -311,7 +373,8 @@
  32.200 +@@ -419,7 +488,8 @@
  32.201   	    old_row += vs->ds->linesize;
  32.202   	}
  32.203   
  32.204 @@ -272,7 +305,7 @@ Index: ioemu/vnc.c
  32.205   	    goto out;
  32.206   
  32.207   	/* Count rectangles */
  32.208 -@@ -321,40 +384,61 @@
  32.209 +@@ -429,40 +499,61 @@
  32.210   	saved_offset = vs->output.offset;
  32.211   	vnc_write_u16(vs, 0);
  32.212   
  32.213 @@ -288,7 +321,7 @@ Index: ioemu/vnc.c
  32.214   	    int x;
  32.215   	    int last_x = -1;
  32.216  -	    for (x = 0; x < vs->width / 16; x++) {
  32.217 --		if (vs->dirty_row[y] & (1ULL << x)) {
  32.218 +-		if (vnc_get_bit(vs->dirty_row[y], x)) {
  32.219  -		    if (last_x == -1) {
  32.220  +	    for (x = X2DP_DOWN(vs, vs->visible_x);
  32.221  +		 x < X2DP_UP(vs, maxx); x++) {
  32.222 @@ -296,7 +329,7 @@ Index: ioemu/vnc.c
  32.223  +		    if (last_x == -1)
  32.224   			last_x = x;
  32.225  -		    }
  32.226 --		    vs->dirty_row[y] &= ~(1ULL << x);
  32.227 +-		    vnc_clear_bit(vs->dirty_row[y], x);
  32.228  +		    vs->update_row[y] &= ~(1ULL << x);
  32.229   		} else {
  32.230   		    if (last_x != -1) {
  32.231 @@ -346,7 +379,7 @@ Index: ioemu/vnc.c
  32.232   static void vnc_timer_init(VncState *vs)
  32.233   {
  32.234       if (vs->timer == NULL) {
  32.235 -@@ -365,8 +449,6 @@
  32.236 +@@ -473,8 +564,6 @@
  32.237   
  32.238   static void vnc_dpy_refresh(DisplayState *ds)
  32.239   {
  32.240 @@ -355,7 +388,7 @@ Index: ioemu/vnc.c
  32.241       vga_hw_update();
  32.242   }
  32.243   
  32.244 -@@ -402,7 +484,7 @@
  32.245 +@@ -510,7 +599,7 @@
  32.246   
  32.247   static void buffer_reset(Buffer *buffer)
  32.248   {
  32.249 @@ -364,7 +397,7 @@ Index: ioemu/vnc.c
  32.250   }
  32.251   
  32.252   static void buffer_append(Buffer *buffer, const void *data, size_t len)
  32.253 -@@ -443,12 +525,12 @@
  32.254 +@@ -551,12 +640,12 @@
  32.255       if (!ret)
  32.256   	return;
  32.257   
  32.258 @@ -380,7 +413,7 @@ Index: ioemu/vnc.c
  32.259   }
  32.260   
  32.261   static void vnc_read_when(VncState *vs, VncReadEvent *func, size_t expecting)
  32.262 -@@ -480,11 +562,11 @@
  32.263 +@@ -588,11 +677,11 @@
  32.264   	    return;
  32.265   
  32.266   	if (!ret) {
  32.267 @@ -395,7 +428,7 @@ Index: ioemu/vnc.c
  32.268       }
  32.269   }
  32.270   
  32.271 -@@ -492,9 +574,9 @@
  32.272 +@@ -600,9 +689,9 @@
  32.273   {
  32.274       buffer_reserve(&vs->output, len);
  32.275   
  32.276 @@ -408,7 +441,7 @@ Index: ioemu/vnc.c
  32.277   
  32.278       buffer_append(&vs->output, data, len);
  32.279   }
  32.280 -@@ -616,24 +698,25 @@
  32.281 +@@ -724,22 +813,25 @@
  32.282       do_key_event(vs, down, sym);
  32.283   }
  32.284   
  32.285 @@ -430,10 +463,8 @@ Index: ioemu/vnc.c
  32.286  -	char *old_row = vs->old_data + y_position * vs->ds->linesize;
  32.287  -
  32.288  -	for (i = 0; i < h; i++) {
  32.289 --	    vs->dirty_row[y_position + i] = (1ULL << (vs->ds->width / 16)) - 1;
  32.290 --	    if (vs->ds->width == 1024) {
  32.291 --	      vs->dirty_row[y_position + i] = ~(0ULL);
  32.292 --	    }
  32.293 +-            vnc_set_bits(vs->dirty_row[y_position + i], 
  32.294 +-                         (vs->ds->width / 16), VNC_DIRTY_WORDS);
  32.295  -	    memset(old_row, 42, vs->ds->width * vs->depth);
  32.296  -	    old_row += vs->ds->linesize;
  32.297  -	}
  32.298 @@ -447,8 +478,8 @@ Index: ioemu/vnc.c
  32.299   }
  32.300   
  32.301   static void set_encodings(VncState *vs, int32_t *encodings, size_t n_encodings)
  32.302 -@@ -690,8 +773,6 @@
  32.303 - 	vnc_client_error(vs);
  32.304 +@@ -845,8 +937,6 @@
  32.305 +     }
  32.306   
  32.307       vnc_dpy_resize(vs->ds, vs->ds->width, vs->ds->height);
  32.308  -    memset(vs->dirty_row, 0xFF, sizeof(vs->dirty_row));
  32.309 @@ -456,7 +487,7 @@ Index: ioemu/vnc.c
  32.310   
  32.311       vga_hw_invalidate();
  32.312       vga_hw_update();
  32.313 -@@ -848,11 +929,11 @@
  32.314 +@@ -1012,11 +1102,11 @@
  32.315   	vnc_write(vs, "RFB 003.003\n", 12);
  32.316   	vnc_flush(vs);
  32.317   	vnc_read_when(vs, protocol_version, 12);
  32.318 @@ -470,7 +501,7 @@ Index: ioemu/vnc.c
  32.319       }
  32.320   }
  32.321   
  32.322 -@@ -909,17 +990,15 @@
  32.323 +@@ -1073,17 +1163,15 @@
  32.324   	exit(1);
  32.325       }
  32.326   
  32.327 @@ -493,9 +524,9 @@ Index: ioemu/vnc.c
  32.328   }
  32.329  Index: ioemu/vl.h
  32.330  ===================================================================
  32.331 ---- ioemu.orig/vl.h	2006-08-04 10:57:28.925994639 +0100
  32.332 -+++ ioemu/vl.h	2006-08-04 10:57:29.187964445 +0100
  32.333 -@@ -302,6 +302,7 @@
  32.334 +--- ioemu.orig/vl.h	2006-08-07 17:42:27.807385506 +0100
  32.335 ++++ ioemu/vl.h	2006-08-07 17:43:16.361100898 +0100
  32.336 +@@ -318,6 +318,7 @@
  32.337   int is_graphic_console(void);
  32.338   CharDriverState *text_console_init(DisplayState *ds);
  32.339   void console_select(unsigned int index);
    33.1 --- a/tools/ioemu/patches/vnc-start-vncviewer	Mon Aug 07 18:27:27 2006 +0100
    33.2 +++ b/tools/ioemu/patches/vnc-start-vncviewer	Mon Aug 07 18:28:50 2006 +0100
    33.3 @@ -1,8 +1,8 @@
    33.4  Index: ioemu/vnc.c
    33.5  ===================================================================
    33.6 ---- ioemu.orig/vnc.c	2006-08-04 10:57:29.187964445 +0100
    33.7 -+++ ioemu/vnc.c	2006-08-04 10:57:29.351945544 +0100
    33.8 -@@ -1002,3 +1002,25 @@
    33.9 +--- ioemu.orig/vnc.c	2006-08-07 17:44:32.852773890 +0100
   33.10 ++++ ioemu/vnc.c	2006-08-07 17:44:32.915767031 +0100
   33.11 +@@ -1175,3 +1175,25 @@
   33.12   
   33.13       vnc_dpy_resize(vs->ds, 640, 400);
   33.14   }
   33.15 @@ -30,9 +30,9 @@ Index: ioemu/vnc.c
   33.16  +}
   33.17  Index: ioemu/vl.c
   33.18  ===================================================================
   33.19 ---- ioemu.orig/vl.c	2006-08-04 10:57:29.186964560 +0100
   33.20 -+++ ioemu/vl.c	2006-08-04 10:57:29.354945198 +0100
   33.21 -@@ -121,6 +121,7 @@
   33.22 +--- ioemu.orig/vl.c	2006-08-07 17:44:32.851773999 +0100
   33.23 ++++ ioemu/vl.c	2006-08-07 17:44:32.918766704 +0100
   33.24 +@@ -120,6 +120,7 @@
   33.25   int bios_size;
   33.26   static DisplayState display_state;
   33.27   int nographic;
   33.28 @@ -40,7 +40,7 @@ Index: ioemu/vl.c
   33.29   const char* keyboard_layout = NULL;
   33.30   int64_t ticks_per_sec;
   33.31   int boot_device = 'c';
   33.32 -@@ -4804,6 +4805,7 @@
   33.33 +@@ -5340,6 +5341,7 @@
   33.34   #endif
   33.35              "-loadvm file    start right away with a saved state (loadvm in monitor)\n"
   33.36   	   "-vnc display    start a VNC server on display\n"
   33.37 @@ -48,15 +48,15 @@ Index: ioemu/vl.c
   33.38              "-timeoffset     time offset (in seconds) from local time\n"
   33.39              "-acpi           disable or enable ACPI of HVM domain \n"
   33.40              "\n"
   33.41 -@@ -4893,6 +4895,7 @@
   33.42 -     QEMU_OPTION_usbdevice,
   33.43 -     QEMU_OPTION_smp,
   33.44 -     QEMU_OPTION_vnc,
   33.45 +@@ -5428,6 +5430,7 @@
   33.46 +     QEMU_OPTION_vcpus,
   33.47 +     QEMU_OPTION_timeoffset,
   33.48 +     QEMU_OPTION_acpi,
   33.49  +    QEMU_OPTION_vncviewer,
   33.50 + };
   33.51   
   33.52 -     QEMU_OPTION_d,
   33.53 -     QEMU_OPTION_vcpus,
   33.54 -@@ -4969,6 +4972,7 @@
   33.55 + typedef struct QEMUOption {
   33.56 +@@ -5502,6 +5505,7 @@
   33.57       { "usbdevice", HAS_ARG, QEMU_OPTION_usbdevice },
   33.58       { "smp", HAS_ARG, QEMU_OPTION_smp },
   33.59       { "vnc", HAS_ARG, QEMU_OPTION_vnc },
   33.60 @@ -64,7 +64,7 @@ Index: ioemu/vl.c
   33.61       
   33.62       /* temporary options */
   33.63       { "usb", 0, QEMU_OPTION_usb },
   33.64 -@@ -5300,6 +5304,7 @@
   33.65 +@@ -5868,6 +5872,7 @@
   33.66   #endif
   33.67       snapshot = 0;
   33.68       nographic = 0;
   33.69 @@ -72,17 +72,17 @@ Index: ioemu/vl.c
   33.70       kernel_filename = NULL;
   33.71       kernel_cmdline = "";
   33.72   #ifdef TARGET_PPC
   33.73 -@@ -5669,6 +5674,9 @@
   33.74 - 		    exit(1);
   33.75 - 		}
   33.76 - 		break;
   33.77 +@@ -6262,6 +6267,9 @@
   33.78 +             case QEMU_OPTION_acpi:
   33.79 +                 acpi_enabled = 1;
   33.80 +                 break;
   33.81  +            case QEMU_OPTION_vncviewer:
   33.82  +                vncviewer++;
   33.83  +                break;
   33.84 -             case QEMU_OPTION_domainname:
   33.85 -                 strncat(domain_name, optarg, sizeof(domain_name) - 20);
   33.86 -                 break;
   33.87 -@@ -5933,6 +5941,8 @@
   33.88 +             }
   33.89 +         }
   33.90 +     }
   33.91 +@@ -6458,6 +6466,8 @@
   33.92           dumb_display_init(ds);
   33.93       } else if (vnc_display != -1) {
   33.94   	vnc_display_init(ds, vnc_display);
   33.95 @@ -93,9 +93,9 @@ Index: ioemu/vl.c
   33.96           sdl_display_init(ds, full_screen);
   33.97  Index: ioemu/vl.h
   33.98  ===================================================================
   33.99 ---- ioemu.orig/vl.h	2006-08-04 10:57:29.187964445 +0100
  33.100 -+++ ioemu/vl.h	2006-08-04 10:57:29.355945083 +0100
  33.101 -@@ -734,6 +734,7 @@
  33.102 +--- ioemu.orig/vl.h	2006-08-07 17:44:32.853773781 +0100
  33.103 ++++ ioemu/vl.h	2006-08-07 17:44:32.919766595 +0100
  33.104 +@@ -785,6 +785,7 @@
  33.105   
  33.106   /* vnc.c */
  33.107   void vnc_display_init(DisplayState *ds, int display);
    34.1 --- a/tools/ioemu/patches/vnc-title-domain-name	Mon Aug 07 18:27:27 2006 +0100
    34.2 +++ b/tools/ioemu/patches/vnc-title-domain-name	Mon Aug 07 18:28:50 2006 +0100
    34.3 @@ -1,8 +1,8 @@
    34.4  Index: ioemu/vnc.c
    34.5  ===================================================================
    34.6 ---- ioemu.orig/vnc.c	2006-07-26 14:23:52.426074956 +0100
    34.7 -+++ ioemu/vnc.c	2006-07-26 14:24:15.210558295 +0100
    34.8 -@@ -850,6 +850,7 @@
    34.9 +--- ioemu.orig/vnc.c	2006-08-07 17:44:32.915767031 +0100
   34.10 ++++ ioemu/vnc.c	2006-08-07 17:44:33.084748631 +0100
   34.11 +@@ -1014,6 +1014,7 @@
   34.12   
   34.13   static int protocol_client_init(VncState *vs, char *data, size_t len)
   34.14   {
   34.15 @@ -10,7 +10,7 @@ Index: ioemu/vnc.c
   34.16       char pad[3] = { 0, 0, 0 };
   34.17   
   34.18       vs->width = vs->ds->width;
   34.19 -@@ -886,8 +887,10 @@
   34.20 +@@ -1059,8 +1060,10 @@
   34.21   	
   34.22       vnc_write(vs, pad, 3);           /* padding */
   34.23   
    35.1 --- a/tools/ioemu/patches/xen-build	Mon Aug 07 18:27:27 2006 +0100
    35.2 +++ b/tools/ioemu/patches/xen-build	Mon Aug 07 18:28:50 2006 +0100
    35.3 @@ -1,29 +1,38 @@
    35.4  Index: ioemu/Makefile
    35.5  ===================================================================
    35.6 ---- ioemu.orig/Makefile	2006-07-25 14:18:33.163941149 +0100
    35.7 -+++ ioemu/Makefile	2006-07-25 14:24:31.695096861 +0100
    35.8 -@@ -1,6 +1,9 @@
    35.9 +--- ioemu.orig/Makefile	2006-08-06 02:03:44.915543858 +0100
   35.10 ++++ ioemu/Makefile	2006-08-06 02:11:33.461331417 +0100
   35.11 +@@ -1,11 +1,14 @@
   35.12 + # Makefile for QEMU.
   35.13 + 
   35.14  -include config-host.mak
   35.15  +XEN_ROOT=../..
   35.16  +include $(XEN_ROOT)/tools/Rules.mk
   35.17 ++
   35.18 ++-include config-host.mak
   35.19 + 
   35.20 + .PHONY: all clean distclean dvi info install install-doc tar tarbin \
   35.21 + 	speed test test2 html dvi info
   35.22   
   35.23  -CFLAGS=-Wall -O2 -g -fno-strict-aliasing -I.
   35.24 -+-include config-host.mak
   35.25 -+
   35.26  +CFLAGS+=-Wall -O2 -g -fno-strict-aliasing -I.
   35.27   ifdef CONFIG_DARWIN
   35.28   CFLAGS+= -mdynamic-no-pic
   35.29   endif
   35.30 -@@ -17,7 +20,7 @@
   35.31 +@@ -25,9 +28,11 @@
   35.32   DOCS=
   35.33   endif
   35.34   
   35.35 --all: dyngen$(EXESUF) $(TOOLS) $(DOCS)
   35.36 -+all: $(DOCS)
   35.37 - 	for d in $(TARGET_DIRS); do \
   35.38 - 	$(MAKE) -C $$d $@ || exit 1 ; \
   35.39 -         done
   35.40 -@@ -34,7 +37,7 @@
   35.41 ++TOOLS=
   35.42 ++
   35.43 + all: $(TOOLS) $(DOCS) recurse-all
   35.44 + 
   35.45 +-subdir-%: dyngen$(EXESUF)
   35.46 ++subdir-%:
   35.47 + 	$(MAKE) -C $(subst subdir-,,$@) all
   35.48 + 
   35.49 + recurse-all: $(patsubst %,subdir-%, $(TARGET_DIRS))
   35.50 +@@ -44,7 +49,7 @@
   35.51   	rm -f *.o *.a $(TOOLS) dyngen$(EXESUF) TAGS *.pod *~ */*~
   35.52   	$(MAKE) -C tests clean
   35.53   	for d in $(TARGET_DIRS); do \
   35.54 @@ -32,26 +41,26 @@ Index: ioemu/Makefile
   35.55           done
   35.56   
   35.57   distclean: clean
   35.58 -@@ -57,12 +60,12 @@
   35.59 +@@ -68,12 +73,12 @@
   35.60   
   35.61   install: all $(if $(BUILD_DOCS),install-doc)
   35.62   	mkdir -p "$(DESTDIR)$(bindir)"
   35.63  -	$(INSTALL) -m 755 -s $(TOOLS) "$(DESTDIR)$(bindir)"
   35.64  -	mkdir -p "$(DESTDIR)$(datadir)"
   35.65  -	for x in bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \
   35.66 --			video.x proll.elf linux_boot.bin; do \
   35.67 +-			video.x openbios-sparc32 linux_boot.bin; do \
   35.68  -		$(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
   35.69  -	done
   35.70  +#	$(INSTALL) -m 755 -s $(TOOLS) "$(DESTDIR)$(bindir)"
   35.71  +#	mkdir -p "$(DESTDIR)$(datadir)"
   35.72  +#	for x in bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \
   35.73 -+#			video.x proll.elf linux_boot.bin; do \
   35.74 ++#			video.x openbios-sparc32 linux_boot.bin; do \
   35.75  +#		$(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
   35.76  +#	done
   35.77   ifndef CONFIG_WIN32
   35.78   	mkdir -p "$(DESTDIR)$(datadir)/keymaps"
   35.79   	for x in $(KEYMAPS); do \
   35.80 -@@ -96,11 +99,11 @@
   35.81 +@@ -107,11 +112,11 @@
   35.82   	texi2dvi $<
   35.83   
   35.84   qemu.1: qemu-doc.texi
   35.85 @@ -64,11 +73,11 @@ Index: ioemu/Makefile
   35.86  +	perl -w $(SRC_PATH)/texi2pod.pl $< qemu-img.pod
   35.87   	pod2man --section=1 --center=" " --release=" " qemu-img.pod > $@
   35.88   
   35.89 - FILE=qemu-$(shell cat VERSION)
   35.90 + info: qemu-doc.info qemu-tech.info
   35.91  Index: ioemu/Makefile.target
   35.92  ===================================================================
   35.93 ---- ioemu.orig/Makefile.target	2006-07-25 14:18:33.163941149 +0100
   35.94 -+++ ioemu/Makefile.target	2006-07-25 14:24:17.501562050 +0100
   35.95 +--- ioemu.orig/Makefile.target	2006-08-06 02:03:44.922543079 +0100
   35.96 ++++ ioemu/Makefile.target	2006-08-06 02:09:22.320951557 +0100
   35.97  @@ -1,5 +1,8 @@
   35.98   include config.mak
   35.99   
  35.100 @@ -102,7 +111,7 @@ Index: ioemu/Makefile.target
  35.101   #CFLAGS+=-Werror
  35.102   LDFLAGS=-g
  35.103   LIBS=
  35.104 -@@ -155,6 +165,9 @@
  35.105 +@@ -167,6 +177,9 @@
  35.106   
  35.107   DEFINES+=-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
  35.108   LIBS+=-lm
  35.109 @@ -112,7 +121,7 @@ Index: ioemu/Makefile.target
  35.110   ifndef CONFIG_USER_ONLY
  35.111   LIBS+=-lz
  35.112   endif
  35.113 -@@ -264,7 +277,7 @@
  35.114 +@@ -281,7 +294,7 @@
  35.115   all: $(PROGS)
  35.116   
  35.117   $(QEMU_USER): $(OBJS)
  35.118 @@ -121,7 +130,7 @@ Index: ioemu/Makefile.target
  35.119   ifeq ($(ARCH),alpha)
  35.120   # Mark as 32 bit binary, i. e. it will be mapped into the low 31 bit of
  35.121   # the address space (31 bit so sign extending doesn't matter)
  35.122 -@@ -490,10 +503,16 @@
  35.123 +@@ -528,10 +541,16 @@
  35.124   clean:
  35.125   	rm -f *.o  *.a *~ $(PROGS) gen-op.h opc.h op.h nwfpe/*.o slirp/*.o fpu/*.o
  35.126   
  35.127 @@ -140,8 +149,8 @@ Index: ioemu/Makefile.target
  35.128   include .depend
  35.129  Index: ioemu/configure
  35.130  ===================================================================
  35.131 ---- ioemu.orig/configure	2006-07-25 14:18:33.163941149 +0100
  35.132 -+++ ioemu/configure	2006-07-25 14:24:17.501562050 +0100
  35.133 +--- ioemu.orig/configure	2006-08-06 02:03:45.783447220 +0100
  35.134 ++++ ioemu/configure	2006-08-06 02:09:41.076860544 +0100
  35.135  @@ -18,8 +18,8 @@
  35.136   
  35.137   # default parameters
  35.138 @@ -169,7 +178,7 @@ Index: ioemu/configure
  35.139   softmmu="yes"
  35.140   user="no"
  35.141   build_docs="no"
  35.142 -@@ -366,6 +367,8 @@
  35.143 +@@ -380,6 +381,8 @@
  35.144       exit 1
  35.145   fi
  35.146   
  35.147 @@ -178,7 +187,7 @@ Index: ioemu/configure
  35.148   if test -z "$cross_prefix" ; then
  35.149   
  35.150   # ---
  35.151 -@@ -491,14 +494,16 @@
  35.152 +@@ -505,14 +508,16 @@
  35.153   datadir="$prefix"
  35.154   docdir="$prefix"
  35.155   bindir="$prefix"
  35.156 @@ -197,7 +206,7 @@ Index: ioemu/configure
  35.157   fi
  35.158   
  35.159   echo "Install prefix    $prefix"
  35.160 -@@ -567,6 +572,8 @@
  35.161 +@@ -583,6 +588,8 @@
  35.162   echo "mandir=$mandir" >> $config_mak
  35.163   echo "datadir=$datadir" >> $config_mak
  35.164   echo "docdir=$docdir" >> $config_mak
  35.165 @@ -206,7 +215,7 @@ Index: ioemu/configure
  35.166   echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
  35.167   echo "MAKE=$make" >> $config_mak
  35.168   echo "INSTALL=$install" >> $config_mak
  35.169 -@@ -748,7 +755,7 @@
  35.170 +@@ -770,7 +777,7 @@
  35.171   # don't use ln -sf as not all "ln -sf" over write the file/link
  35.172   #
  35.173   rm -f $target_dir/Makefile
  35.174 @@ -215,7 +224,7 @@ Index: ioemu/configure
  35.175   
  35.176   
  35.177   echo "# Automatically generated by configure - do not modify" > $config_mak
  35.178 -@@ -761,6 +768,12 @@
  35.179 +@@ -784,6 +791,12 @@
  35.180   interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
  35.181   echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
  35.182   
  35.183 @@ -228,7 +237,7 @@ Index: ioemu/configure
  35.184   if test "$target_cpu" = "i386" ; then
  35.185     echo "TARGET_ARCH=i386" >> $config_mak
  35.186     echo "#define TARGET_ARCH \"i386\"" >> $config_h
  35.187 -@@ -823,6 +836,10 @@
  35.188 +@@ -850,6 +863,10 @@
  35.189     echo "#define CONFIG_USER_ONLY 1" >> $config_h
  35.190   fi
  35.191   
  35.192 @@ -236,6 +245,6 @@ Index: ioemu/configure
  35.193  +  echo "#define CONFIG_DM 1" >> $config_h
  35.194  +fi
  35.195  +
  35.196 - if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
  35.197 + if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64"; then
  35.198     echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
  35.199     echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
    36.1 --- a/tools/ioemu/patches/xen-domain-name	Mon Aug 07 18:27:27 2006 +0100
    36.2 +++ b/tools/ioemu/patches/xen-domain-name	Mon Aug 07 18:28:50 2006 +0100
    36.3 @@ -1,8 +1,8 @@
    36.4  Index: ioemu/sdl.c
    36.5  ===================================================================
    36.6 ---- ioemu.orig/sdl.c	2006-07-27 11:16:53.590928008 +0100
    36.7 -+++ ioemu/sdl.c	2006-07-27 11:16:58.124426148 +0100
    36.8 -@@ -268,14 +268,14 @@
    36.9 +--- ioemu.orig/sdl.c	2006-08-06 02:03:48.563137711 +0100
   36.10 ++++ ioemu/sdl.c	2006-08-06 02:17:16.063137816 +0100
   36.11 +@@ -273,14 +273,14 @@
   36.12   static void sdl_update_caption(void)
   36.13   {
   36.14       char buf[1024];
   36.15 @@ -21,18 +21,18 @@ Index: ioemu/sdl.c
   36.16   static void sdl_hide_cursor(void)
   36.17  Index: ioemu/vl.c
   36.18  ===================================================================
   36.19 ---- ioemu.orig/vl.c	2006-07-27 11:16:57.828458912 +0100
   36.20 -+++ ioemu/vl.c	2006-07-27 11:16:58.126425927 +0100
   36.21 -@@ -159,6 +159,8 @@
   36.22 - #define MAX_CPUS 1
   36.23 - #endif
   36.24 +--- ioemu.orig/vl.c	2006-08-06 02:16:31.246133963 +0100
   36.25 ++++ ioemu/vl.c	2006-08-06 02:17:31.428424918 +0100
   36.26 +@@ -158,6 +158,8 @@
   36.27 + int acpi_enabled = 1;
   36.28 + int fd_bootchk = 1;
   36.29   
   36.30  +char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
   36.31  +
   36.32   /***********************************************************/
   36.33   /* x86 ISA bus support */
   36.34   
   36.35 -@@ -4699,6 +4701,7 @@
   36.36 +@@ -5235,6 +5237,7 @@
   36.37              "-s              wait gdb connection to port %d\n"
   36.38              "-p port         change gdb connection port\n"
   36.39              "-l item1,...    output log to %s (use -d ? for a list of log items)\n"
   36.40 @@ -40,7 +40,7 @@ Index: ioemu/vl.c
   36.41              "-hdachs c,h,s[,t]  force hard disk 0 physical geometry and the optional BIOS\n"
   36.42              "                translation (t=none or lba) (usually qemu can guess them)\n"
   36.43              "-L path         set the directory for the BIOS and VGA BIOS\n"
   36.44 -@@ -4788,6 +4791,7 @@
   36.45 +@@ -5319,6 +5322,7 @@
   36.46       QEMU_OPTION_g,
   36.47       QEMU_OPTION_std_vga,
   36.48       QEMU_OPTION_monitor,
   36.49 @@ -48,7 +48,7 @@ Index: ioemu/vl.c
   36.50       QEMU_OPTION_serial,
   36.51       QEMU_OPTION_parallel,
   36.52       QEMU_OPTION_loadvm,
   36.53 -@@ -4861,6 +4865,7 @@
   36.54 +@@ -5396,6 +5400,7 @@
   36.55       { "localtime", 0, QEMU_OPTION_localtime },
   36.56       { "std-vga", 0, QEMU_OPTION_std_vga },
   36.57       { "monitor", 1, QEMU_OPTION_monitor },
   36.58 @@ -56,10 +56,10 @@ Index: ioemu/vl.c
   36.59       { "serial", 1, QEMU_OPTION_serial },
   36.60       { "parallel", 1, QEMU_OPTION_parallel },
   36.61       { "loadvm", HAS_ARG, QEMU_OPTION_loadvm },
   36.62 -@@ -5484,6 +5489,9 @@
   36.63 - 		    exit(1);
   36.64 - 		}
   36.65 - 		break;
   36.66 +@@ -6062,6 +6067,9 @@
   36.67 +             case QEMU_OPTION_no_acpi:
   36.68 +                 acpi_enabled = 0;
   36.69 +                 break;
   36.70  +            case QEMU_OPTION_domainname:
   36.71  +                strncat(domain_name, optarg, sizeof(domain_name) - 20);
   36.72  +                break;
   36.73 @@ -68,9 +68,9 @@ Index: ioemu/vl.c
   36.74       }
   36.75  Index: ioemu/vl.h
   36.76  ===================================================================
   36.77 ---- ioemu.orig/vl.h	2006-07-27 11:16:57.682475072 +0100
   36.78 -+++ ioemu/vl.h	2006-07-27 11:16:58.127425816 +0100
   36.79 -@@ -1094,4 +1094,5 @@
   36.80 +--- ioemu.orig/vl.h	2006-08-06 02:15:39.711878977 +0100
   36.81 ++++ ioemu/vl.h	2006-08-06 02:17:16.068137258 +0100
   36.82 +@@ -1185,4 +1185,5 @@
   36.83   
   36.84   void kqemu_record_dump(void);
   36.85   
    37.1 --- a/tools/ioemu/patches/xen-domid	Mon Aug 07 18:27:27 2006 +0100
    37.2 +++ b/tools/ioemu/patches/xen-domid	Mon Aug 07 18:28:50 2006 +0100
    37.3 @@ -1,16 +1,16 @@
    37.4  Index: ioemu/vl.c
    37.5  ===================================================================
    37.6 ---- ioemu.orig/vl.c	2006-07-27 11:16:58.126425927 +0100
    37.7 -+++ ioemu/vl.c	2006-07-27 11:16:58.296407110 +0100
    37.8 -@@ -160,6 +160,7 @@
    37.9 - #endif
   37.10 +--- ioemu.orig/vl.c	2006-08-06 02:17:31.428424918 +0100
   37.11 ++++ ioemu/vl.c	2006-08-06 02:18:12.550840673 +0100
   37.12 +@@ -159,6 +159,7 @@
   37.13 + int fd_bootchk = 1;
   37.14   
   37.15   char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
   37.16  +extern int domid;
   37.17   
   37.18   /***********************************************************/
   37.19   /* x86 ISA bus support */
   37.20 -@@ -4701,6 +4702,7 @@
   37.21 +@@ -5237,6 +5238,7 @@
   37.22              "-s              wait gdb connection to port %d\n"
   37.23              "-p port         change gdb connection port\n"
   37.24              "-l item1,...    output log to %s (use -d ? for a list of log items)\n"
   37.25 @@ -18,25 +18,25 @@ Index: ioemu/vl.c
   37.26              "-domain-name    domain name that we're serving\n"
   37.27              "-hdachs c,h,s[,t]  force hard disk 0 physical geometry and the optional BIOS\n"
   37.28              "                translation (t=none or lba) (usually qemu can guess them)\n"
   37.29 -@@ -4804,6 +4806,8 @@
   37.30 -     QEMU_OPTION_usbdevice,
   37.31 +@@ -5336,6 +5338,8 @@
   37.32       QEMU_OPTION_smp,
   37.33       QEMU_OPTION_vnc,
   37.34 +     QEMU_OPTION_no_acpi,
   37.35  +
   37.36  +    QEMU_OPTION_d,
   37.37   };
   37.38   
   37.39   typedef struct QEMUOption {
   37.40 -@@ -4879,6 +4883,8 @@
   37.41 -     /* temporary options */
   37.42 +@@ -5415,6 +5419,8 @@
   37.43       { "usb", 0, QEMU_OPTION_usb },
   37.44       { "cirrusvga", 0, QEMU_OPTION_cirrusvga },
   37.45 +     { "no-acpi", 0, QEMU_OPTION_no_acpi },
   37.46  +    
   37.47  +    { "d", HAS_ARG, QEMU_OPTION_d },
   37.48       { NULL },
   37.49   };
   37.50   
   37.51 -@@ -5492,6 +5498,10 @@
   37.52 +@@ -6070,6 +6076,10 @@
   37.53               case QEMU_OPTION_domainname:
   37.54                   strncat(domain_name, optarg, sizeof(domain_name) - 20);
   37.55                   break;
    38.1 --- a/tools/ioemu/patches/xen-mm	Mon Aug 07 18:27:27 2006 +0100
    38.2 +++ b/tools/ioemu/patches/xen-mm	Mon Aug 07 18:28:50 2006 +0100
    38.3 @@ -1,8 +1,8 @@
    38.4  Index: ioemu/hw/pc.c
    38.5  ===================================================================
    38.6 ---- ioemu.orig/hw/pc.c	2006-08-04 10:53:02.019794255 +0100
    38.7 -+++ ioemu/hw/pc.c	2006-08-04 10:54:56.876531492 +0100
    38.8 -@@ -639,7 +639,9 @@
    38.9 +--- ioemu.orig/hw/pc.c	2006-08-06 02:15:39.708879311 +0100
   38.10 ++++ ioemu/hw/pc.c	2006-08-06 02:18:18.875135656 +0100
   38.11 +@@ -646,7 +646,9 @@
   38.12       }
   38.13   
   38.14       /* allocate RAM */
   38.15 @@ -12,7 +12,7 @@ Index: ioemu/hw/pc.c
   38.16   
   38.17       /* BIOS load */
   38.18       bios_offset = ram_size + vga_ram_size;
   38.19 -@@ -671,8 +673,10 @@
   38.20 +@@ -678,8 +680,10 @@
   38.21       ret = load_image(buf, phys_ram_base + vga_bios_offset);
   38.22       
   38.23       /* setup basic memory access */
   38.24 @@ -25,20 +25,20 @@ Index: ioemu/hw/pc.c
   38.25       isa_bios_size = bios_size;
   38.26  Index: ioemu/vl.c
   38.27  ===================================================================
   38.28 ---- ioemu.orig/vl.c	2006-08-04 10:53:02.472741926 +0100
   38.29 -+++ ioemu/vl.c	2006-08-04 10:55:48.361590787 +0100
   38.30 -@@ -159,6 +159,8 @@
   38.31 - #define MAX_CPUS 1
   38.32 - #endif
   38.33 +--- ioemu.orig/vl.c	2006-08-06 02:18:12.550840673 +0100
   38.34 ++++ ioemu/vl.c	2006-08-06 02:18:45.608155528 +0100
   38.35 +@@ -158,6 +158,8 @@
   38.36 + int acpi_enabled = 1;
   38.37 + int fd_bootchk = 1;
   38.38   
   38.39  +int xc_handle;
   38.40  +
   38.41   char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
   38.42   extern int domid;
   38.43   
   38.44 -@@ -5106,6 +5108,9 @@
   38.45 +@@ -5650,6 +5652,9 @@
   38.46       QEMUMachine *machine;
   38.47 -     char usb_devices[MAX_VM_USB_PORTS][128];
   38.48 +     char usb_devices[MAX_USB_CMDLINE][128];
   38.49       int usb_devices_index;
   38.50  +    unsigned long nr_pages;
   38.51  +    xen_pfn_t *page_array;
   38.52 @@ -46,7 +46,7 @@ Index: ioemu/vl.c
   38.53   
   38.54       char qemu_dm_logfilename[64];
   38.55   
   38.56 -@@ -5342,11 +5347,13 @@
   38.57 +@@ -5917,11 +5922,13 @@
   38.58                   ram_size = atol(optarg) * 1024 * 1024;
   38.59                   if (ram_size <= 0)
   38.60                       help();
   38.61 @@ -60,7 +60,7 @@ Index: ioemu/vl.c
   38.62                   break;
   38.63               case QEMU_OPTION_l:
   38.64                   {
   38.65 -@@ -5560,6 +5567,41 @@
   38.66 +@@ -6133,12 +6140,49 @@
   38.67       /* init the memory */
   38.68       phys_ram_size = ram_size + vga_ram_size + bios_size;
   38.69   
   38.70 @@ -99,12 +99,11 @@ Index: ioemu/vl.c
   38.71  +
   38.72  +#else  /* !CONFIG_DM */
   38.73  +
   38.74 - #ifdef CONFIG_SOFTMMU
   38.75       phys_ram_base = qemu_vmalloc(phys_ram_size);
   38.76       if (!phys_ram_base) {
   38.77 -@@ -5600,6 +5642,8 @@
   38.78 +         fprintf(stderr, "Could not allocate physical memory\n");
   38.79 +         exit(1);
   38.80       }
   38.81 - #endif
   38.82   
   38.83  +#endif /* !CONFIG_DM */
   38.84  +
    39.1 --- a/tools/ioemu/patches/xen-network	Mon Aug 07 18:27:27 2006 +0100
    39.2 +++ b/tools/ioemu/patches/xen-network	Mon Aug 07 18:28:50 2006 +0100
    39.3 @@ -1,7 +1,7 @@
    39.4  Index: ioemu/vl.c
    39.5  ===================================================================
    39.6 ---- ioemu.orig/vl.c	2006-07-27 11:16:58.823348777 +0100
    39.7 -+++ ioemu/vl.c	2006-07-27 11:16:59.169310479 +0100
    39.8 +--- ioemu.orig/vl.c	2006-08-06 02:22:01.556312045 +0100
    39.9 ++++ ioemu/vl.c	2006-08-06 02:22:53.925474246 +0100
   39.10  @@ -89,6 +89,7 @@
   39.11   #include "exec-all.h"
   39.12   
   39.13 @@ -10,7 +10,7 @@ Index: ioemu/vl.c
   39.14   
   39.15   //#define DEBUG_UNUSED_IOPORT
   39.16   //#define DEBUG_IOPORT
   39.17 -@@ -2621,11 +2622,11 @@
   39.18 +@@ -3090,11 +3091,11 @@
   39.19   #endif
   39.20   
   39.21   static int net_tap_init(VLANState *vlan, const char *ifname1,
   39.22 @@ -24,7 +24,7 @@ Index: ioemu/vl.c
   39.23       char **parg;
   39.24       char ifname[128];
   39.25   
   39.26 -@@ -2647,6 +2648,7 @@
   39.27 +@@ -3116,6 +3117,7 @@
   39.28                   parg = args;
   39.29                   *parg++ = (char *)setup_script;
   39.30                   *parg++ = ifname;
   39.31 @@ -32,7 +32,7 @@ Index: ioemu/vl.c
   39.32                   *parg++ = NULL;
   39.33                   execv(setup_script, args);
   39.34                   _exit(1);
   39.35 -@@ -3201,6 +3203,7 @@
   39.36 +@@ -3671,6 +3673,7 @@
   39.37       if (!strcmp(device, "tap")) {
   39.38           char ifname[64];
   39.39           char setup_script[1024];
   39.40 @@ -40,7 +40,7 @@ Index: ioemu/vl.c
   39.41           int fd;
   39.42           if (get_param_value(buf, sizeof(buf), "fd", p) > 0) {
   39.43               fd = strtol(buf, NULL, 0);
   39.44 -@@ -3213,7 +3216,10 @@
   39.45 +@@ -3683,7 +3686,10 @@
   39.46               if (get_param_value(setup_script, sizeof(setup_script), "script", p) == 0) {
   39.47                   pstrcpy(setup_script, sizeof(setup_script), DEFAULT_NETWORK_SCRIPT);
   39.48               }
   39.49 @@ -52,7 +52,7 @@ Index: ioemu/vl.c
   39.50           }
   39.51       } else
   39.52   #endif
   39.53 -@@ -4672,7 +4678,7 @@
   39.54 +@@ -5208,7 +5214,7 @@
   39.55              "-net tap[,vlan=n],ifname=name\n"
   39.56              "                connect the host TAP network interface to VLAN 'n'\n"
   39.57   #else
    40.1 --- a/tools/ioemu/patches/xenstore-block-device-config	Mon Aug 07 18:27:27 2006 +0100
    40.2 +++ b/tools/ioemu/patches/xenstore-block-device-config	Mon Aug 07 18:28:50 2006 +0100
    40.3 @@ -1,10 +1,10 @@
    40.4  Index: ioemu/Makefile.target
    40.5  ===================================================================
    40.6 ---- ioemu.orig/Makefile.target	2006-08-04 10:57:28.920995216 +0100
    40.7 -+++ ioemu/Makefile.target	2006-08-04 10:57:29.641912123 +0100
    40.8 -@@ -336,6 +336,7 @@
    40.9 - VL_OBJS+= fdc.o mc146818rtc.o serial.o pc.o
   40.10 - VL_OBJS+= cirrus_vga.o mixeng.o parallel.o
   40.11 +--- ioemu.orig/Makefile.target	2006-08-07 17:42:27.802386071 +0100
   40.12 ++++ ioemu/Makefile.target	2006-08-07 17:42:28.683289358 +0100
   40.13 +@@ -358,6 +358,7 @@
   40.14 + VL_OBJS+= cirrus_vga.o mixeng.o parallel.o acpi.o piix_pci.o
   40.15 + VL_OBJS+= usb-uhci.o
   40.16   VL_OBJS+= piix4acpi.o
   40.17  +VL_OBJS+= xenstore.o
   40.18   DEFINES += -DHAS_AUDIO
   40.19 @@ -13,7 +13,7 @@ Index: ioemu/Makefile.target
   40.20  Index: ioemu/xenstore.c
   40.21  ===================================================================
   40.22  --- /dev/null	1970-01-01 00:00:00.000000000 +0000
   40.23 -+++ ioemu/xenstore.c	2006-08-04 10:57:29.641912123 +0100
   40.24 ++++ ioemu/xenstore.c	2006-08-07 17:42:28.684289249 +0100
   40.25  @@ -0,0 +1,187 @@
   40.26  +/*
   40.27  + * This file is subject to the terms and conditions of the GNU General
   40.28 @@ -204,9 +204,9 @@ Index: ioemu/xenstore.c
   40.29  +}
   40.30  Index: ioemu/vl.c
   40.31  ===================================================================
   40.32 ---- ioemu.orig/vl.c	2006-08-04 10:57:29.354945198 +0100
   40.33 -+++ ioemu/vl.c	2006-08-04 10:57:29.644911777 +0100
   40.34 -@@ -4711,9 +4711,11 @@
   40.35 +--- ioemu.orig/vl.c	2006-08-07 17:42:28.393320909 +0100
   40.36 ++++ ioemu/vl.c	2006-08-07 17:42:28.687288922 +0100
   40.37 +@@ -5242,9 +5242,11 @@
   40.38              "Standard options:\n"
   40.39              "-M machine      select emulated machine (-M ? for list)\n"
   40.40              "-fda/-fdb file  use 'file' as floppy disk 0/1 image\n"
   40.41 @@ -217,8 +217,8 @@ Index: ioemu/vl.c
   40.42  +#endif /* !CONFIG_DM */
   40.43              "-boot [a|c|d]   boot on floppy (a), hard disk (c) or CD-ROM (d)\n"
   40.44   	   "-snapshot       write to temporary files instead of disk image files\n"
   40.45 -            "-m megs         set virtual RAM size to megs MB [default=%d]\n"
   40.46 -@@ -4844,11 +4846,13 @@
   40.47 + #ifdef TARGET_I386
   40.48 +@@ -5370,11 +5372,13 @@
   40.49       QEMU_OPTION_M,
   40.50       QEMU_OPTION_fda,
   40.51       QEMU_OPTION_fdb,
   40.52 @@ -231,8 +231,8 @@ Index: ioemu/vl.c
   40.53  +#endif /* !CONFIG_DM */
   40.54       QEMU_OPTION_boot,
   40.55       QEMU_OPTION_snapshot,
   40.56 -     QEMU_OPTION_m,
   40.57 -@@ -4915,11 +4919,13 @@
   40.58 + #ifdef TARGET_I386
   40.59 +@@ -5445,11 +5449,13 @@
   40.60       { "M", HAS_ARG, QEMU_OPTION_M },
   40.61       { "fda", HAS_ARG, QEMU_OPTION_fda },
   40.62       { "fdb", HAS_ARG, QEMU_OPTION_fdb },
   40.63 @@ -245,8 +245,8 @@ Index: ioemu/vl.c
   40.64  +#endif /* !CONFIG_DM */
   40.65       { "boot", HAS_ARG, QEMU_OPTION_boot },
   40.66       { "snapshot", 0, QEMU_OPTION_snapshot },
   40.67 -     { "m", HAS_ARG, QEMU_OPTION_m },
   40.68 -@@ -5255,10 +5261,16 @@
   40.69 + #ifdef TARGET_I386
   40.70 +@@ -5797,10 +5803,16 @@
   40.71   #ifdef CONFIG_GDBSTUB
   40.72       int use_gdbstub, gdbstub_port;
   40.73   #endif
   40.74 @@ -265,7 +265,7 @@ Index: ioemu/vl.c
   40.75       const char *kernel_filename, *kernel_cmdline;
   40.76       DisplayState *ds = &display_state;
   40.77       int cyls, heads, secs, translation;
   40.78 -@@ -5293,8 +5305,10 @@
   40.79 +@@ -5861,8 +5873,10 @@
   40.80       initrd_filename = NULL;
   40.81       for(i = 0; i < MAX_FD; i++)
   40.82           fd_filename[i] = NULL;
   40.83 @@ -276,7 +276,7 @@ Index: ioemu/vl.c
   40.84       ram_size = DEFAULT_RAM_SIZE * 1024 * 1024;
   40.85       vga_ram_size = VGA_RAM_SIZE;
   40.86       bios_size = BIOS_SIZE;
   40.87 -@@ -5307,11 +5321,13 @@
   40.88 +@@ -5875,11 +5889,13 @@
   40.89       vncviewer = 0;
   40.90       kernel_filename = NULL;
   40.91       kernel_cmdline = "";
   40.92 @@ -290,7 +290,7 @@ Index: ioemu/vl.c
   40.93       cyls = heads = secs = 0;
   40.94       translation = BIOS_ATA_TRANSLATION_AUTO;
   40.95       pstrcpy(monitor_device, sizeof(monitor_device), "vc");
   40.96 -@@ -5344,7 +5360,11 @@
   40.97 +@@ -5912,7 +5928,11 @@
   40.98               break;
   40.99           r = argv[optind];
  40.100           if (r[0] != '-') {
  40.101 @@ -302,7 +302,7 @@ Index: ioemu/vl.c
  40.102           } else {
  40.103               const QEMUOption *popt;
  40.104   
  40.105 -@@ -5388,6 +5408,7 @@
  40.106 +@@ -5956,6 +5976,7 @@
  40.107               case QEMU_OPTION_initrd:
  40.108                   initrd_filename = optarg;
  40.109                   break;
  40.110 @@ -310,7 +310,7 @@ Index: ioemu/vl.c
  40.111               case QEMU_OPTION_hda:
  40.112               case QEMU_OPTION_hdb:
  40.113               case QEMU_OPTION_hdc:
  40.114 -@@ -5400,6 +5421,7 @@
  40.115 +@@ -5968,6 +5989,7 @@
  40.116                           cdrom_index = -1;
  40.117                   }
  40.118                   break;
  40.119 @@ -318,7 +318,7 @@ Index: ioemu/vl.c
  40.120               case QEMU_OPTION_snapshot:
  40.121                   snapshot = 1;
  40.122                   break;
  40.123 -@@ -5452,11 +5474,13 @@
  40.124 +@@ -6020,11 +6042,13 @@
  40.125               case QEMU_OPTION_append:
  40.126                   kernel_cmdline = optarg;
  40.127                   break;
  40.128 @@ -332,7 +332,7 @@ Index: ioemu/vl.c
  40.129               case QEMU_OPTION_boot:
  40.130                   boot_device = optarg[0];
  40.131                   if (boot_device != 'a' && 
  40.132 -@@ -5698,12 +5722,18 @@
  40.133 +@@ -6274,12 +6298,18 @@
  40.134           }
  40.135       }
  40.136   
  40.137 @@ -351,15 +351,15 @@ Index: ioemu/vl.c
  40.138       if (!linux_boot && 
  40.139           hd_filename[0] == '\0' && 
  40.140           (cdrom_index >= 0 && hd_filename[cdrom_index] == '\0') &&
  40.141 -@@ -5717,6 +5747,7 @@
  40.142 +@@ -6293,6 +6323,7 @@
  40.143           else
  40.144               boot_device = 'd';
  40.145       }
  40.146  +#endif /* !CONFIG_DM */
  40.147   
  40.148 - #if !defined(CONFIG_SOFTMMU)
  40.149 -     /* must avoid mmap() usage of glibc by setting a buffer "by hand" */
  40.150 -@@ -5870,6 +5901,7 @@
  40.151 +     setvbuf(stdout, NULL, _IOLBF, 0);
  40.152 +     
  40.153 +@@ -6407,6 +6438,7 @@
  40.154   
  40.155   #endif /* !CONFIG_DM */
  40.156   
  40.157 @@ -367,7 +367,7 @@ Index: ioemu/vl.c
  40.158       /* we always create the cdrom drive, even if no disk is there */
  40.159       bdrv_init();
  40.160       if (cdrom_index >= 0) {
  40.161 -@@ -5896,6 +5928,7 @@
  40.162 +@@ -6433,6 +6465,7 @@
  40.163               }
  40.164           }
  40.165       }
  40.166 @@ -375,9 +375,9 @@ Index: ioemu/vl.c
  40.167   
  40.168       /* we always create at least one floppy disk */
  40.169       fd_table[0] = bdrv_new("fda");
  40.170 -@@ -6031,6 +6064,8 @@
  40.171 - #endif
  40.172 -     init_timers();
  40.173 +@@ -6511,6 +6544,8 @@
  40.174 +         }
  40.175 +     }
  40.176   
  40.177  +    qemu_set_fd_handler(xenstore_fd(), xenstore_process_event, NULL, NULL);
  40.178  +
  40.179 @@ -386,8 +386,8 @@ Index: ioemu/vl.c
  40.180                     kernel_filename, kernel_cmdline, initrd_filename,
  40.181  Index: ioemu/monitor.c
  40.182  ===================================================================
  40.183 ---- ioemu.orig/monitor.c	2006-08-04 10:57:28.195078886 +0100
  40.184 -+++ ioemu/monitor.c	2006-08-04 10:57:29.645911662 +0100
  40.185 +--- ioemu.orig/monitor.c	2006-08-07 17:42:27.132461888 +0100
  40.186 ++++ ioemu/monitor.c	2006-08-07 17:42:28.688288814 +0100
  40.187  @@ -24,6 +24,7 @@
  40.188   #include "vl.h"
  40.189   #include "disas.h"
  40.190 @@ -396,7 +396,7 @@ Index: ioemu/monitor.c
  40.191   
  40.192   //#define DEBUG
  40.193   //#define DEBUG_COMPLETION
  40.194 -@@ -328,7 +329,7 @@
  40.195 +@@ -330,7 +331,7 @@
  40.196       return 0;
  40.197   }
  40.198   
  40.199 @@ -405,7 +405,7 @@ Index: ioemu/monitor.c
  40.200   {
  40.201       BlockDriverState *bs;
  40.202   
  40.203 -@@ -340,7 +341,7 @@
  40.204 +@@ -342,7 +343,7 @@
  40.205       eject_device(bs, force);
  40.206   }
  40.207   
  40.208 @@ -416,9 +416,9 @@ Index: ioemu/monitor.c
  40.209       int i;
  40.210  Index: ioemu/block.c
  40.211  ===================================================================
  40.212 ---- ioemu.orig/block.c	2006-08-04 10:57:21.718825369 +0100
  40.213 -+++ ioemu/block.c	2006-08-04 10:57:29.646911546 +0100
  40.214 -@@ -750,6 +750,7 @@
  40.215 +--- ioemu.orig/block.c	2006-08-07 17:42:21.704076241 +0100
  40.216 ++++ ioemu/block.c	2006-08-07 17:42:28.689288705 +0100
  40.217 +@@ -758,6 +758,7 @@
  40.218   static void raw_close(BlockDriverState *bs)
  40.219   {
  40.220       BDRVRawState *s = bs->opaque;
  40.221 @@ -428,9 +428,9 @@ Index: ioemu/block.c
  40.222   
  40.223  Index: ioemu/vl.h
  40.224  ===================================================================
  40.225 ---- ioemu.orig/vl.h	2006-08-04 10:57:29.355945083 +0100
  40.226 -+++ ioemu/vl.h	2006-08-04 10:57:29.647911431 +0100
  40.227 -@@ -1093,6 +1093,8 @@
  40.228 +--- ioemu.orig/vl.h	2006-08-07 17:42:28.394320800 +0100
  40.229 ++++ ioemu/vl.h	2006-08-07 17:42:28.689288705 +0100
  40.230 +@@ -1184,6 +1184,8 @@
  40.231   void term_print_help(void);
  40.232   void monitor_readline(const char *prompt, int is_password,
  40.233                         char *buf, int buf_size);
  40.234 @@ -439,7 +439,7 @@ Index: ioemu/vl.h
  40.235   
  40.236   /* readline.c */
  40.237   typedef void ReadLineFunc(void *opaque, const char *str);
  40.238 -@@ -1105,6 +1107,13 @@
  40.239 +@@ -1196,6 +1198,13 @@
  40.240   void readline_start(const char *prompt, int is_password,
  40.241                       ReadLineFunc *readline_func, void *opaque);
  40.242   
  40.243 @@ -455,9 +455,9 @@ Index: ioemu/vl.h
  40.244   extern char domain_name[];
  40.245  Index: ioemu/hw/ide.c
  40.246  ===================================================================
  40.247 ---- ioemu.orig/hw/ide.c	2006-08-04 10:57:28.612030827 +0100
  40.248 -+++ ioemu/hw/ide.c	2006-08-04 10:57:29.648911316 +0100
  40.249 -@@ -1279,6 +1279,7 @@
  40.250 +--- ioemu.orig/hw/ide.c	2006-08-07 17:42:27.552414361 +0100
  40.251 ++++ ioemu/hw/ide.c	2006-08-07 17:42:28.691288487 +0100
  40.252 +@@ -1158,6 +1158,7 @@
  40.253           } else {
  40.254               ide_atapi_cmd_error(s, SENSE_NOT_READY, 
  40.255                                   ASC_MEDIUM_NOT_PRESENT);
    41.1 --- a/tools/ioemu/patches/xenstore-write-vnc-port	Mon Aug 07 18:27:27 2006 +0100
    41.2 +++ b/tools/ioemu/patches/xenstore-write-vnc-port	Mon Aug 07 18:28:50 2006 +0100
    41.3 @@ -1,7 +1,7 @@
    41.4  Index: ioemu/xenstore.c
    41.5  ===================================================================
    41.6 ---- ioemu.orig/xenstore.c	2006-08-04 10:57:29.641912123 +0100
    41.7 -+++ ioemu/xenstore.c	2006-08-04 10:57:30.244842629 +0100
    41.8 +--- ioemu.orig/xenstore.c	2006-08-07 17:42:28.684289249 +0100
    41.9 ++++ ioemu/xenstore.c	2006-08-07 17:42:28.891266728 +0100
   41.10  @@ -185,3 +185,31 @@
   41.11       free(image);
   41.12       free(vec);
   41.13 @@ -36,9 +36,9 @@ Index: ioemu/xenstore.c
   41.14  +}
   41.15  Index: ioemu/vl.c
   41.16  ===================================================================
   41.17 ---- ioemu.orig/vl.c	2006-08-04 10:57:29.644911777 +0100
   41.18 -+++ ioemu/vl.c	2006-08-04 10:57:30.246842399 +0100
   41.19 -@@ -5976,6 +5976,7 @@
   41.20 +--- ioemu.orig/vl.c	2006-08-07 17:42:28.687288922 +0100
   41.21 ++++ ioemu/vl.c	2006-08-07 17:42:28.894266401 +0100
   41.22 +@@ -6501,6 +6501,7 @@
   41.23   	vnc_display_init(ds, vnc_display);
   41.24   	if (vncviewer)
   41.25   	    vnc_start_viewer(vnc_display);
   41.26 @@ -48,9 +48,9 @@ Index: ioemu/vl.c
   41.27           sdl_display_init(ds, full_screen);
   41.28  Index: ioemu/vl.h
   41.29  ===================================================================
   41.30 ---- ioemu.orig/vl.h	2006-08-04 10:57:29.647911431 +0100
   41.31 -+++ ioemu/vl.h	2006-08-04 10:57:30.247842283 +0100
   41.32 -@@ -1112,6 +1112,7 @@
   41.33 +--- ioemu.orig/vl.h	2006-08-07 17:42:28.689288705 +0100
   41.34 ++++ ioemu/vl.h	2006-08-07 17:42:28.895266293 +0100
   41.35 +@@ -1203,6 +1203,7 @@
   41.36   int xenstore_fd(void);
   41.37   void xenstore_process_event(void *opaque);
   41.38   void xenstore_check_new_media_present(int timeout);