ia64/xen-unstable

changeset 15072:31a3f83d1610

[qemu patches] Update patches upto changeset 15032:8f510bf078c7.

Signed-off-by: Christian Limpach <Christian.Limpach@xensource.com>
author Christian Limpach <Christian.Limpach@xensource.com>
date Thu May 10 16:05:31 2007 +0100 (2007-05-10)
parents 8f510bf078c7
children 07b1e917c9d8
files tools/ioemu/patches/domain-timeoffset tools/ioemu/patches/ioemu-buffer-pio-ia64 tools/ioemu/patches/ioemu-ia64 tools/ioemu/patches/qemu-bootorder tools/ioemu/patches/qemu-daemonize tools/ioemu/patches/qemu-dm tools/ioemu/patches/qemu-pci tools/ioemu/patches/qemu-pci-vendor-ids tools/ioemu/patches/qemu-serial-fixes tools/ioemu/patches/qemu-tunable-ide-write-cache tools/ioemu/patches/scsi tools/ioemu/patches/series tools/ioemu/patches/tpm-tis-device tools/ioemu/patches/vnc-backoff-screen-scan tools/ioemu/patches/vnc-display-find-unused tools/ioemu/patches/vnc-fix-signedness tools/ioemu/patches/vnc-fix-version-check tools/ioemu/patches/vnc-password tools/ioemu/patches/xen-mapcache tools/ioemu/patches/xen-platform-device tools/ioemu/patches/xen-support-buffered-ioreqs tools/ioemu/patches/xenstore tools/ioemu/patches/xenstore-block-device-config tools/ioemu/patches/xenstore-device-info-functions tools/ioemu/patches/xenstore-write-vnc-port
line diff
     1.1 --- a/tools/ioemu/patches/domain-timeoffset	Thu May 10 15:58:35 2007 +0100
     1.2 +++ b/tools/ioemu/patches/domain-timeoffset	Thu May 10 16:05:31 2007 +0100
     1.3 @@ -1,168 +1,8 @@
     1.4 -Index: ioemu/hw/mc146818rtc.c
     1.5 -===================================================================
     1.6 ---- ioemu.orig/hw/mc146818rtc.c	2007-05-09 14:12:16.000000000 +0100
     1.7 -+++ ioemu/hw/mc146818rtc.c	2007-05-09 14:12:43.000000000 +0100
     1.8 -@@ -178,10 +178,27 @@
     1.9 -     }
    1.10 - }
    1.11 - 
    1.12 -+static void send_timeoffset_msg(time_t delta)
    1.13 -+{
    1.14 -+
    1.15 -+/* This routine is used to inform another entity that the
    1.16 -+   base time offset has changed. For instance, if you
    1.17 -+   were using xenstore, you might want to write to the store
    1.18 -+   at this point.  Or, you might use some other method.
    1.19 -+   Whatever you might choose, here's a hook point to implement it.
    1.20 -+
    1.21 -+   One item of note is that this delta is in addition to
    1.22 -+   any existing offset you might be already using. */
    1.23 -+
    1.24 -+    return;
    1.25 -+}
    1.26 -+
    1.27 - static void rtc_set_time(RTCState *s)
    1.28 - {
    1.29 -     struct tm *tm = &s->current_tm;
    1.30 --
    1.31 -+    time_t before, after;
    1.32 -+    
    1.33 -+    before = mktime(tm);
    1.34 -     tm->tm_sec = from_bcd(s, s->cmos_data[RTC_SECONDS]);
    1.35 -     tm->tm_min = from_bcd(s, s->cmos_data[RTC_MINUTES]);
    1.36 -     tm->tm_hour = from_bcd(s, s->cmos_data[RTC_HOURS] & 0x7f);
    1.37 -@@ -193,6 +210,12 @@
    1.38 -     tm->tm_mday = from_bcd(s, s->cmos_data[RTC_DAY_OF_MONTH]);
    1.39 -     tm->tm_mon = from_bcd(s, s->cmos_data[RTC_MONTH]) - 1;
    1.40 -     tm->tm_year = from_bcd(s, s->cmos_data[RTC_YEAR]) + 100;
    1.41 -+
    1.42 -+    /* Compute, and send, the additional time delta
    1.43 -+       We could compute the total time delta, but this is
    1.44 -+       sufficient, and simple. */
    1.45 -+    after = mktime(tm);
    1.46 -+    send_timeoffset_msg(after-before);
    1.47 - }
    1.48 - 
    1.49 - static void rtc_copy_date(RTCState *s)
    1.50 -@@ -392,6 +415,7 @@
    1.51 - 
    1.52 -     /* set the CMOS date */
    1.53 -     time(&ti);
    1.54 -+    ti += timeoffset;
    1.55 -     if (rtc_utc)
    1.56 -         tm = gmtime(&ti);
    1.57 -     else
    1.58 -Index: ioemu/hw/pc.c
    1.59 -===================================================================
    1.60 ---- ioemu.orig/hw/pc.c	2007-05-09 14:12:16.000000000 +0100
    1.61 -+++ ioemu/hw/pc.c	2007-05-09 14:12:43.000000000 +0100
    1.62 -@@ -160,7 +160,7 @@
    1.63 - }
    1.64 - 
    1.65 - /* hd_table must contain 4 block drivers */
    1.66 --static void cmos_init(uint64_t ram_size, int boot_device, BlockDriverState **hd_table)
    1.67 -+static void cmos_init(uint64_t ram_size, int boot_device, BlockDriverState **hd_table, time_t timeoffset)
    1.68 - {
    1.69 -     RTCState *s = rtc_state;
    1.70 -     int val;
    1.71 -@@ -454,7 +454,7 @@
    1.72 - static void pc_init1(uint64_t ram_size, int vga_ram_size, int boot_device,
    1.73 -                      DisplayState *ds, const char **fd_filename, int snapshot,
    1.74 -                      const char *kernel_filename, const char *kernel_cmdline,
    1.75 --                     const char *initrd_filename,
    1.76 -+                     const char *initrd_filename, time_t timeoffset,
    1.77 -                      int pci_enabled)
    1.78 - {
    1.79 - #ifndef NOBIOS
    1.80 -@@ -725,7 +725,7 @@
    1.81 - 
    1.82 -     floppy_controller = fdctrl_init(6, 2, 0, 0x3f0, fd_table);
    1.83 - 
    1.84 --    cmos_init(ram_size, boot_device, bs_table);
    1.85 -+    cmos_init(ram_size, boot_device, bs_table, timeoffset);
    1.86 - 
    1.87 -     /* using PIIX4 acpi model */
    1.88 -     if (pci_enabled && acpi_enabled)
    1.89 -@@ -774,12 +774,13 @@
    1.90 -                         int snapshot, 
    1.91 -                         const char *kernel_filename, 
    1.92 -                         const char *kernel_cmdline,
    1.93 --                        const char *initrd_filename)
    1.94 -+                        const char *initrd_filename,
    1.95 -+                        time_t timeoffset)
    1.96 - {
    1.97 -     pc_init1(ram_size, vga_ram_size, boot_device,
    1.98 -              ds, fd_filename, snapshot,
    1.99 -              kernel_filename, kernel_cmdline,
   1.100 --             initrd_filename, 1);
   1.101 -+             initrd_filename, timeoffset, 1);
   1.102 - }
   1.103 - 
   1.104 - static void pc_init_isa(uint64_t ram_size, int vga_ram_size, int boot_device,
   1.105 -@@ -787,12 +788,13 @@
   1.106 -                         int snapshot, 
   1.107 -                         const char *kernel_filename, 
   1.108 -                         const char *kernel_cmdline,
   1.109 --                        const char *initrd_filename)
   1.110 -+                        const char *initrd_filename,
   1.111 -+                        time_t timeoffset)
   1.112 - {
   1.113 -     pc_init1(ram_size, vga_ram_size, boot_device,
   1.114 -              ds, fd_filename, snapshot,
   1.115 -              kernel_filename, kernel_cmdline,
   1.116 --             initrd_filename, 0);
   1.117 -+             initrd_filename, timeoffset, 0);
   1.118 - }
   1.119 - 
   1.120 - QEMUMachine pc_machine = {
   1.121  Index: ioemu/vl.c
   1.122  ===================================================================
   1.123 ---- ioemu.orig/vl.c	2007-05-09 14:12:43.000000000 +0100
   1.124 -+++ ioemu/vl.c	2007-05-09 14:12:43.000000000 +0100
   1.125 -@@ -184,6 +184,8 @@
   1.126 - 
   1.127 - int xc_handle;
   1.128 - 
   1.129 -+time_t timeoffset = 0;
   1.130 -+
   1.131 - char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
   1.132 - extern int domid;
   1.133 - 
   1.134 -@@ -6329,6 +6331,7 @@
   1.135 -            "-vncviewer      start a vncviewer process for this domain\n"
   1.136 -            "-vncunused      bind the VNC server to an unused port\n"
   1.137 -            "-vnclisten      bind the VNC server to this address\n"
   1.138 -+           "-timeoffset     time offset (in seconds) from local time\n"
   1.139 - #ifndef _WIN32
   1.140 - 	   "-daemonize      daemonize QEMU after initializing\n"
   1.141 - #endif
   1.142 -@@ -6425,6 +6428,7 @@
   1.143 -     ,
   1.144 -     QEMU_OPTION_d,
   1.145 -     QEMU_OPTION_vcpus,
   1.146 -+    QEMU_OPTION_timeoffset,
   1.147 -     QEMU_OPTION_acpi,
   1.148 -     QEMU_OPTION_vncviewer,
   1.149 -     QEMU_OPTION_vncunused,
   1.150 -@@ -6526,6 +6530,7 @@
   1.151 -     
   1.152 -     { "d", HAS_ARG, QEMU_OPTION_d },
   1.153 -     { "vcpus", 1, QEMU_OPTION_vcpus },
   1.154 -+    { "timeoffset", HAS_ARG, QEMU_OPTION_timeoffset },
   1.155 -     { "acpi", 0, QEMU_OPTION_acpi },
   1.156 -     { NULL },
   1.157 - };
   1.158 -@@ -7313,6 +7318,9 @@
   1.159 -                 vcpus = atoi(optarg);
   1.160 -                 fprintf(logfile, "qemu: the number of cpus is %d\n", vcpus);
   1.161 -                 break;
   1.162 -+            case QEMU_OPTION_timeoffset:
   1.163 -+                timeoffset = strtol(optarg, NULL, 0);
   1.164 -+                break;
   1.165 -             case QEMU_OPTION_acpi:
   1.166 -                 acpi_enabled = 1;
   1.167 -                 break;
   1.168 -@@ -7545,6 +7553,9 @@
   1.169 +--- ioemu.orig/vl.c	2007-05-10 16:04:24.000000000 +0100
   1.170 ++++ ioemu/vl.c	2007-05-10 16:04:24.000000000 +0100
   1.171 +@@ -7530,6 +7530,9 @@
   1.172       }
   1.173       free(page_array);
   1.174   #endif
   1.175 @@ -172,30 +12,11 @@ Index: ioemu/vl.c
   1.176   #else  /* !CONFIG_DM */
   1.177   
   1.178       phys_ram_base = qemu_vmalloc(phys_ram_size);
   1.179 -@@ -7681,7 +7692,8 @@
   1.180 - 
   1.181 -     machine->init(ram_size, vga_ram_size, boot_device,
   1.182 -                   ds, fd_filename, snapshot,
   1.183 --                  kernel_filename, kernel_cmdline, initrd_filename);
   1.184 -+                  kernel_filename, kernel_cmdline, initrd_filename,
   1.185 -+                  timeoffset);
   1.186 - 
   1.187 -     /* init USB devices */
   1.188 -     if (usb_enabled) {
   1.189  Index: ioemu/vl.h
   1.190  ===================================================================
   1.191 ---- ioemu.orig/vl.h	2007-05-09 14:12:43.000000000 +0100
   1.192 -+++ ioemu/vl.h	2007-05-09 14:12:43.000000000 +0100
   1.193 -@@ -708,7 +708,7 @@
   1.194 -                                  int boot_device,
   1.195 -              DisplayState *ds, const char **fd_filename, int snapshot,
   1.196 -              const char *kernel_filename, const char *kernel_cmdline,
   1.197 --             const char *initrd_filename);
   1.198 -+             const char *initrd_filename, time_t timeoffset);
   1.199 - 
   1.200 - typedef struct QEMUMachine {
   1.201 -     const char *name;
   1.202 -@@ -1435,6 +1435,10 @@
   1.203 +--- ioemu.orig/vl.h	2007-05-10 16:04:24.000000000 +0100
   1.204 ++++ ioemu/vl.h	2007-05-10 16:04:24.000000000 +0100
   1.205 +@@ -1433,6 +1433,10 @@
   1.206   int xenstore_vm_write(int domid, char *key, char *val);
   1.207   char *xenstore_vm_read(int domid, char *key, int *len);
   1.208   
   1.209 @@ -208,8 +29,8 @@ Index: ioemu/vl.h
   1.210   extern char domain_name[];
   1.211  Index: ioemu/target-i386-dm/helper2.c
   1.212  ===================================================================
   1.213 ---- ioemu.orig/target-i386-dm/helper2.c	2007-05-09 14:12:16.000000000 +0100
   1.214 -+++ ioemu/target-i386-dm/helper2.c	2007-05-09 14:12:43.000000000 +0100
   1.215 +--- ioemu.orig/target-i386-dm/helper2.c	2007-05-10 16:04:22.000000000 +0100
   1.216 ++++ ioemu/target-i386-dm/helper2.c	2007-05-10 16:04:24.000000000 +0100
   1.217  @@ -74,6 +74,8 @@
   1.218   
   1.219   int xc_handle;
     2.1 --- a/tools/ioemu/patches/ioemu-buffer-pio-ia64	Thu May 10 15:58:35 2007 +0100
     2.2 +++ b/tools/ioemu/patches/ioemu-buffer-pio-ia64	Thu May 10 16:05:31 2007 +0100
     2.3 @@ -1,8 +1,8 @@
     2.4  Index: ioemu/vl.c
     2.5  ===================================================================
     2.6 ---- ioemu.orig/vl.c	2007-05-09 13:47:16.000000000 +0100
     2.7 -+++ ioemu/vl.c	2007-05-09 13:47:16.000000000 +0100
     2.8 -@@ -6839,6 +6839,7 @@
     2.9 +--- ioemu.orig/vl.c	2007-05-10 15:34:24.000000000 +0100
    2.10 ++++ ioemu/vl.c	2007-05-10 15:34:24.000000000 +0100
    2.11 +@@ -6824,6 +6824,7 @@
    2.12       unsigned long ioreq_pfn;
    2.13       extern void *shared_page;
    2.14       extern void *buffered_io_page;
    2.15 @@ -10,7 +10,7 @@ Index: ioemu/vl.c
    2.16       unsigned long nr_pages;
    2.17   
    2.18       char qemu_dm_logfilename[64];
    2.19 -@@ -7544,6 +7545,10 @@
    2.20 +@@ -7521,6 +7522,10 @@
    2.21                                          PROT_READ|PROT_WRITE,
    2.22                                          BUFFER_IO_PAGE_START >> PAGE_SHIFT);
    2.23   
    2.24 @@ -23,8 +23,8 @@ Index: ioemu/vl.c
    2.25   	
    2.26  Index: ioemu/hw/ide.c
    2.27  ===================================================================
    2.28 ---- ioemu.orig/hw/ide.c	2007-05-09 13:47:15.000000000 +0100
    2.29 -+++ ioemu/hw/ide.c	2007-05-09 13:47:16.000000000 +0100
    2.30 +--- ioemu.orig/hw/ide.c	2007-05-10 15:32:53.000000000 +0100
    2.31 ++++ ioemu/hw/ide.c	2007-05-10 15:34:24.000000000 +0100
    2.32  @@ -393,6 +393,121 @@
    2.33       int type; /* see IDE_TYPE_xxx */
    2.34   } PCIIDEState;
     3.1 --- a/tools/ioemu/patches/ioemu-ia64	Thu May 10 15:58:35 2007 +0100
     3.2 +++ b/tools/ioemu/patches/ioemu-ia64	Thu May 10 16:05:31 2007 +0100
     3.3 @@ -1,7 +1,7 @@
     3.4  Index: ioemu/hw/iommu.c
     3.5  ===================================================================
     3.6 ---- ioemu.orig/hw/iommu.c	2007-05-03 18:18:01.000000000 +0100
     3.7 -+++ ioemu/hw/iommu.c	2007-05-03 19:09:15.000000000 +0100
     3.8 +--- ioemu.orig/hw/iommu.c	2007-05-10 15:49:26.000000000 +0100
     3.9 ++++ ioemu/hw/iommu.c	2007-05-10 15:49:53.000000000 +0100
    3.10  @@ -82,7 +82,11 @@
    3.11   #define IOPTE_VALID         0x00000002 /* IOPTE is valid */
    3.12   #define IOPTE_WAZ           0x00000001 /* Write as zeros */
    3.13 @@ -14,46 +14,10 @@ Index: ioemu/hw/iommu.c
    3.14   #define PAGE_SIZE       (1 << PAGE_SHIFT)
    3.15   #define PAGE_MASK	(PAGE_SIZE - 1)
    3.16   
    3.17 -Index: ioemu/cpu-all.h
    3.18 -===================================================================
    3.19 ---- ioemu.orig/cpu-all.h	2007-05-03 19:00:55.000000000 +0100
    3.20 -+++ ioemu/cpu-all.h	2007-05-03 19:09:15.000000000 +0100
    3.21 -@@ -843,6 +843,31 @@
    3.22 -                 :"=m" (*(volatile long *)addr)
    3.23 -                 :"dIr" (nr));
    3.24 - }
    3.25 -+#elif defined(__ia64__)
    3.26 -+#include "ia64_intrinsic.h"
    3.27 -+#define atomic_set_bit(nr, addr) ({					\
    3.28 -+	typeof(*addr) bit, old, new;					\
    3.29 -+	volatile typeof(*addr) *m;					\
    3.30 -+									\
    3.31 -+	m = (volatile typeof(*addr)*)(addr + nr / (8*sizeof(*addr)));	\
    3.32 -+	bit = 1 << (nr % (8*sizeof(*addr)));				\
    3.33 -+	do {								\
    3.34 -+		old = *m;						\
    3.35 -+		new = old | bit;					\
    3.36 -+	} while (cmpxchg_acq(m, old, new) != old);			\
    3.37 -+})
    3.38 -+
    3.39 -+#define atomic_clear_bit(nr, addr) ({					\
    3.40 -+	typeof(*addr) bit, old, new;					\
    3.41 -+	volatile typeof(*addr) *m;					\
    3.42 -+									\
    3.43 -+	m = (volatile typeof(*addr)*)(addr + nr / (8*sizeof(*addr)));	\
    3.44 -+	bit = ~(1 << (nr % (8*sizeof(*addr))));				\
    3.45 -+	do {								\
    3.46 -+		old = *m;						\
    3.47 -+		new = old & bit;					\
    3.48 -+	} while (cmpxchg_acq(m, old, new) != old);			\
    3.49 -+})
    3.50 - #endif
    3.51 - 
    3.52 - /* memory API */
    3.53  Index: ioemu/vl.c
    3.54  ===================================================================
    3.55 ---- ioemu.orig/vl.c	2007-05-03 19:08:57.000000000 +0100
    3.56 -+++ ioemu/vl.c	2007-05-03 19:09:15.000000000 +0100
    3.57 +--- ioemu.orig/vl.c	2007-05-10 15:49:53.000000000 +0100
    3.58 ++++ ioemu/vl.c	2007-05-10 15:54:48.000000000 +0100
    3.59  @@ -7149,6 +7149,11 @@
    3.60       }
    3.61   #endif
    3.62 @@ -111,31 +75,10 @@ Index: ioemu/vl.c
    3.63   #else  /* !CONFIG_DM */
    3.64   
    3.65       phys_ram_base = qemu_vmalloc(phys_ram_size);
    3.66 -Index: ioemu/exec-all.h
    3.67 -===================================================================
    3.68 ---- ioemu.orig/exec-all.h	2007-05-03 18:38:09.000000000 +0100
    3.69 -+++ ioemu/exec-all.h	2007-05-03 19:09:15.000000000 +0100
    3.70 -@@ -472,12 +472,13 @@
    3.71 - }
    3.72 - #endif
    3.73 - 
    3.74 --#ifdef __ia64
    3.75 --#include <ia64intrin.h>
    3.76 -+#ifdef __ia64__
    3.77 -+#include "ia64_intrinsic.h"
    3.78 - 
    3.79 - static inline int testandset (int *p)
    3.80 - {
    3.81 --    return __sync_lock_test_and_set (p, 1);
    3.82 -+    uint32_t o = 0, n = 1;
    3.83 -+    return (int)cmpxchg_acq(p, o, n);
    3.84 - }
    3.85 - #endif
    3.86 - 
    3.87  Index: ioemu/target-i386-dm/cpu.h
    3.88  ===================================================================
    3.89 ---- ioemu.orig/target-i386-dm/cpu.h	2007-05-03 18:49:10.000000000 +0100
    3.90 -+++ ioemu/target-i386-dm/cpu.h	2007-05-03 19:09:15.000000000 +0100
    3.91 +--- ioemu.orig/target-i386-dm/cpu.h	2007-05-10 15:49:26.000000000 +0100
    3.92 ++++ ioemu/target-i386-dm/cpu.h	2007-05-10 15:54:46.000000000 +0100
    3.93  @@ -78,7 +78,11 @@
    3.94   /* helper2.c */
    3.95   int main_loop(void);
    3.96 @@ -148,284 +91,3 @@ Index: ioemu/target-i386-dm/cpu.h
    3.97   #include "cpu-all.h"
    3.98   
    3.99   #endif /* CPU_I386_H */
   3.100 -Index: ioemu/ia64_intrinsic.h
   3.101 -===================================================================
   3.102 ---- /dev/null	1970-01-01 00:00:00.000000000 +0000
   3.103 -+++ ioemu/ia64_intrinsic.h	2007-05-03 19:09:15.000000000 +0100
   3.104 -@@ -0,0 +1,276 @@
   3.105 -+#ifndef IA64_INTRINSIC_H
   3.106 -+#define IA64_INTRINSIC_H
   3.107 -+
   3.108 -+/*
   3.109 -+ * Compiler-dependent Intrinsics
   3.110 -+ *
   3.111 -+ * Copyright (C) 2002,2003 Jun Nakajima <jun.nakajima@intel.com>
   3.112 -+ * Copyright (C) 2002,2003 Suresh Siddha <suresh.b.siddha@intel.com>
   3.113 -+ *
   3.114 -+ */
   3.115 -+extern long ia64_cmpxchg_called_with_bad_pointer (void);
   3.116 -+extern void ia64_bad_param_for_getreg (void);
   3.117 -+#define ia64_cmpxchg(sem,ptr,o,n,s) ({					\
   3.118 -+	uint64_t _o, _r;						\
   3.119 -+	switch(s) {							\
   3.120 -+		case 1: _o = (uint8_t)(long)(o); break;			\
   3.121 -+		case 2: _o = (uint16_t)(long)(o); break;		\
   3.122 -+		case 4: _o = (uint32_t)(long)(o); break;		\
   3.123 -+		case 8: _o = (uint64_t)(long)(o); break;		\
   3.124 -+		default: break;						\
   3.125 -+	}								\
   3.126 -+	switch(s) {							\
   3.127 -+		case 1:							\
   3.128 -+		_r = ia64_cmpxchg1_##sem((uint8_t*)ptr,n,_o); break;	\
   3.129 -+		case 2:							\
   3.130 -+		_r = ia64_cmpxchg2_##sem((uint16_t*)ptr,n,_o); break;	\
   3.131 -+		case 4:							\
   3.132 -+		_r = ia64_cmpxchg4_##sem((uint32_t*)ptr,n,_o); break;	\
   3.133 -+		case 8:							\
   3.134 -+		_r = ia64_cmpxchg8_##sem((uint64_t*)ptr,n,_o); break;	\
   3.135 -+		default:						\
   3.136 -+		_r = ia64_cmpxchg_called_with_bad_pointer(); break;	\
   3.137 -+	}								\
   3.138 -+	(__typeof__(o)) _r;						\
   3.139 -+})
   3.140 -+
   3.141 -+#define cmpxchg_acq(ptr,o,n) ia64_cmpxchg(acq,ptr,o,n,sizeof(*ptr))
   3.142 -+#define cmpxchg_rel(ptr,o,n) ia64_cmpxchg(rel,ptr,o,n,sizeof(*ptr))
   3.143 -+
   3.144 -+/*
   3.145 -+ * Register Names for getreg() and setreg().
   3.146 -+ *
   3.147 -+ * The "magic" numbers happen to match the values used by the Intel compiler's
   3.148 -+ * getreg()/setreg() intrinsics.
   3.149 -+ */
   3.150 -+
   3.151 -+/* Special Registers */
   3.152 -+
   3.153 -+#define _IA64_REG_IP		1016	/* getreg only */
   3.154 -+#define _IA64_REG_PSR		1019
   3.155 -+#define _IA64_REG_PSR_L		1019
   3.156 -+
   3.157 -+/* General Integer Registers */
   3.158 -+
   3.159 -+#define _IA64_REG_GP		1025	/* R1 */
   3.160 -+#define _IA64_REG_R8		1032	/* R8 */
   3.161 -+#define _IA64_REG_R9		1033	/* R9 */
   3.162 -+#define _IA64_REG_SP		1036	/* R12 */
   3.163 -+#define _IA64_REG_TP		1037	/* R13 */
   3.164 -+
   3.165 -+/* Application Registers */
   3.166 -+
   3.167 -+#define _IA64_REG_AR_KR0	3072
   3.168 -+#define _IA64_REG_AR_KR1	3073
   3.169 -+#define _IA64_REG_AR_KR2	3074
   3.170 -+#define _IA64_REG_AR_KR3	3075
   3.171 -+#define _IA64_REG_AR_KR4	3076
   3.172 -+#define _IA64_REG_AR_KR5	3077
   3.173 -+#define _IA64_REG_AR_KR6	3078
   3.174 -+#define _IA64_REG_AR_KR7	3079
   3.175 -+#define _IA64_REG_AR_RSC	3088
   3.176 -+#define _IA64_REG_AR_BSP	3089
   3.177 -+#define _IA64_REG_AR_BSPSTORE	3090
   3.178 -+#define _IA64_REG_AR_RNAT	3091
   3.179 -+#define _IA64_REG_AR_FCR	3093
   3.180 -+#define _IA64_REG_AR_EFLAG	3096
   3.181 -+#define _IA64_REG_AR_CSD	3097
   3.182 -+#define _IA64_REG_AR_SSD	3098
   3.183 -+#define _IA64_REG_AR_CFLAG	3099
   3.184 -+#define _IA64_REG_AR_FSR	3100
   3.185 -+#define _IA64_REG_AR_FIR	3101
   3.186 -+#define _IA64_REG_AR_FDR	3102
   3.187 -+#define _IA64_REG_AR_CCV	3104
   3.188 -+#define _IA64_REG_AR_UNAT	3108
   3.189 -+#define _IA64_REG_AR_FPSR	3112
   3.190 -+#define _IA64_REG_AR_ITC	3116
   3.191 -+#define _IA64_REG_AR_PFS	3136
   3.192 -+#define _IA64_REG_AR_LC		3137
   3.193 -+#define _IA64_REG_AR_EC		3138
   3.194 -+
   3.195 -+/* Control Registers */
   3.196 -+
   3.197 -+#define _IA64_REG_CR_DCR	4096
   3.198 -+#define _IA64_REG_CR_ITM	4097
   3.199 -+#define _IA64_REG_CR_IVA	4098
   3.200 -+#define _IA64_REG_CR_PTA	4104
   3.201 -+#define _IA64_REG_CR_IPSR	4112
   3.202 -+#define _IA64_REG_CR_ISR	4113
   3.203 -+#define _IA64_REG_CR_IIP	4115
   3.204 -+#define _IA64_REG_CR_IFA	4116
   3.205 -+#define _IA64_REG_CR_ITIR	4117
   3.206 -+#define _IA64_REG_CR_IIPA	4118
   3.207 -+#define _IA64_REG_CR_IFS	4119
   3.208 -+#define _IA64_REG_CR_IIM	4120
   3.209 -+#define _IA64_REG_CR_IHA	4121
   3.210 -+#define _IA64_REG_CR_LID	4160
   3.211 -+#define _IA64_REG_CR_IVR	4161	/* getreg only */
   3.212 -+#define _IA64_REG_CR_TPR	4162
   3.213 -+#define _IA64_REG_CR_EOI	4163
   3.214 -+#define _IA64_REG_CR_IRR0	4164	/* getreg only */
   3.215 -+#define _IA64_REG_CR_IRR1	4165	/* getreg only */
   3.216 -+#define _IA64_REG_CR_IRR2	4166	/* getreg only */
   3.217 -+#define _IA64_REG_CR_IRR3	4167	/* getreg only */
   3.218 -+#define _IA64_REG_CR_ITV	4168
   3.219 -+#define _IA64_REG_CR_PMV	4169
   3.220 -+#define _IA64_REG_CR_CMCV	4170
   3.221 -+#define _IA64_REG_CR_LRR0	4176
   3.222 -+#define _IA64_REG_CR_LRR1	4177
   3.223 -+
   3.224 -+/* Indirect Registers for getindreg() and setindreg() */
   3.225 -+
   3.226 -+#define _IA64_REG_INDR_CPUID	9000	/* getindreg only */
   3.227 -+#define _IA64_REG_INDR_DBR	9001
   3.228 -+#define _IA64_REG_INDR_IBR	9002
   3.229 -+#define _IA64_REG_INDR_PKR	9003
   3.230 -+#define _IA64_REG_INDR_PMC	9004
   3.231 -+#define _IA64_REG_INDR_PMD	9005
   3.232 -+#define _IA64_REG_INDR_RR	9006
   3.233 -+
   3.234 -+#ifdef __INTEL_COMPILER
   3.235 -+void  __fc(uint64_t *addr);
   3.236 -+void  __synci(void);
   3.237 -+void __isrlz(void);
   3.238 -+void __dsrlz(void);
   3.239 -+uint64_t __getReg(const int whichReg);
   3.240 -+uint64_t _InterlockedCompareExchange8_rel(volatile uint8_t *dest, uint64_t xchg, uint64_t comp);
   3.241 -+uint64_t _InterlockedCompareExchange8_acq(volatile uint8_t *dest, uint64_t xchg, uint64_t comp);
   3.242 -+uint64_t _InterlockedCompareExchange16_rel(volatile uint16_t *dest, uint64_t xchg, uint64_t comp);
   3.243 -+uint64_t _InterlockedCompareExchange16_acq(volatile uint16_t *dest, uint64_t xchg, uint64_t comp);
   3.244 -+uint64_t _InterlockedCompareExchange_rel(volatile uint32_t *dest, uint64_t xchg, uint64_t comp);
   3.245 -+uint64_t _InterlockedCompareExchange_acq(volatile uint32_t *dest, uint64_t xchg, uint64_t comp);
   3.246 -+uint64_t _InterlockedCompareExchange64_rel(volatile uint64_t *dest, uint64_t xchg, uint64_t comp);
   3.247 -+u64_t _InterlockedCompareExchange64_acq(volatile uint64_t *dest, uint64_t xchg, uint64_t comp);
   3.248 -+
   3.249 -+#define ia64_cmpxchg1_rel	_InterlockedCompareExchange8_rel
   3.250 -+#define ia64_cmpxchg1_acq	_InterlockedCompareExchange8_acq
   3.251 -+#define ia64_cmpxchg2_rel	_InterlockedCompareExchange16_rel
   3.252 -+#define ia64_cmpxchg2_acq	_InterlockedCompareExchange16_acq
   3.253 -+#define ia64_cmpxchg4_rel	_InterlockedCompareExchange_rel
   3.254 -+#define ia64_cmpxchg4_acq	_InterlockedCompareExchange_acq
   3.255 -+#define ia64_cmpxchg8_rel	_InterlockedCompareExchange64_rel
   3.256 -+#define ia64_cmpxchg8_acq	_InterlockedCompareExchange64_acq
   3.257 -+
   3.258 -+#define ia64_srlz_d		__dsrlz
   3.259 -+#define ia64_srlz_i		__isrlz
   3.260 -+#define __ia64_fc 		__fc
   3.261 -+#define ia64_sync_i		__synci
   3.262 -+#define __ia64_getreg		__getReg
   3.263 -+#else /* __INTEL_COMPILER */
   3.264 -+#define ia64_cmpxchg1_acq(ptr, new, old)						\
   3.265 -+({											\
   3.266 -+	uint64_t ia64_intri_res;							\
   3.267 -+	asm volatile ("mov ar.ccv=%0;;" :: "rO"(old));					\
   3.268 -+	asm volatile ("cmpxchg1.acq %0=[%1],%2,ar.ccv":					\
   3.269 -+			      "=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory");	\
   3.270 -+	ia64_intri_res;									\
   3.271 -+})
   3.272 -+
   3.273 -+#define ia64_cmpxchg1_rel(ptr, new, old)						\
   3.274 -+({											\
   3.275 -+	uint64_t ia64_intri_res;							\
   3.276 -+	asm volatile ("mov ar.ccv=%0;;" :: "rO"(old));					\
   3.277 -+	asm volatile ("cmpxchg1.rel %0=[%1],%2,ar.ccv":					\
   3.278 -+			      "=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory");	\
   3.279 -+	ia64_intri_res;									\
   3.280 -+})
   3.281 -+
   3.282 -+#define ia64_cmpxchg2_acq(ptr, new, old)						\
   3.283 -+({											\
   3.284 -+	uint64_t ia64_intri_res;							\
   3.285 -+	asm volatile ("mov ar.ccv=%0;;" :: "rO"(old));					\
   3.286 -+	asm volatile ("cmpxchg2.acq %0=[%1],%2,ar.ccv":					\
   3.287 -+			      "=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory");	\
   3.288 -+	ia64_intri_res;									\
   3.289 -+})
   3.290 -+
   3.291 -+#define ia64_cmpxchg2_rel(ptr, new, old)						\
   3.292 -+({											\
   3.293 -+	uint64_t ia64_intri_res;							\
   3.294 -+	asm volatile ("mov ar.ccv=%0;;" :: "rO"(old));					\
   3.295 -+											\
   3.296 -+	asm volatile ("cmpxchg2.rel %0=[%1],%2,ar.ccv":					\
   3.297 -+			      "=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory");	\
   3.298 -+	ia64_intri_res;									\
   3.299 -+})
   3.300 -+
   3.301 -+#define ia64_cmpxchg4_acq(ptr, new, old)						\
   3.302 -+({											\
   3.303 -+	uint64_t ia64_intri_res;							\
   3.304 -+	asm volatile ("mov ar.ccv=%0;;" :: "rO"(old));					\
   3.305 -+	asm volatile ("cmpxchg4.acq %0=[%1],%2,ar.ccv":					\
   3.306 -+			      "=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory");	\
   3.307 -+	ia64_intri_res;									\
   3.308 -+})
   3.309 -+
   3.310 -+#define ia64_cmpxchg4_rel(ptr, new, old)						\
   3.311 -+({											\
   3.312 -+	uint64_t ia64_intri_res;							\
   3.313 -+	asm volatile ("mov ar.ccv=%0;;" :: "rO"(old));					\
   3.314 -+	asm volatile ("cmpxchg4.rel %0=[%1],%2,ar.ccv":					\
   3.315 -+			      "=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory");	\
   3.316 -+	ia64_intri_res;									\
   3.317 -+})
   3.318 -+
   3.319 -+#define ia64_cmpxchg8_acq(ptr, new, old)						\
   3.320 -+({											\
   3.321 -+	uint64_t ia64_intri_res;							\
   3.322 -+	asm volatile ("mov ar.ccv=%0;;" :: "rO"(old));					\
   3.323 -+	asm volatile ("cmpxchg8.acq %0=[%1],%2,ar.ccv":					\
   3.324 -+			      "=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory");	\
   3.325 -+	ia64_intri_res;									\
   3.326 -+})
   3.327 -+
   3.328 -+#define ia64_cmpxchg8_rel(ptr, new, old)						\
   3.329 -+({											\
   3.330 -+	uint64_t ia64_intri_res;							\
   3.331 -+	asm volatile ("mov ar.ccv=%0;;" :: "rO"(old));					\
   3.332 -+											\
   3.333 -+	asm volatile ("cmpxchg8.rel %0=[%1],%2,ar.ccv":					\
   3.334 -+			      "=r"(ia64_intri_res) : "r"(ptr), "r"(new) : "memory");	\
   3.335 -+	ia64_intri_res;									\
   3.336 -+})
   3.337 -+
   3.338 -+#define ia64_srlz_i()	asm volatile (";; srlz.i ;;" ::: "memory")
   3.339 -+#define ia64_srlz_d()	asm volatile (";; srlz.d" ::: "memory");
   3.340 -+#define __ia64_fc(addr)	asm volatile ("fc %0" :: "r"(addr) : "memory")
   3.341 -+#define ia64_sync_i()	asm volatile (";; sync.i" ::: "memory")
   3.342 -+
   3.343 -+register unsigned long ia64_r13 asm ("r13") __attribute_used__;
   3.344 -+#define __ia64_getreg(regnum)							\
   3.345 -+({										\
   3.346 -+	uint64_t ia64_intri_res;							\
   3.347 -+										\
   3.348 -+	switch (regnum) {							\
   3.349 -+	case _IA64_REG_GP:							\
   3.350 -+		asm volatile ("mov %0=gp" : "=r"(ia64_intri_res));		\
   3.351 -+		break;								\
   3.352 -+	case _IA64_REG_IP:							\
   3.353 -+		asm volatile ("mov %0=ip" : "=r"(ia64_intri_res));		\
   3.354 -+		break;								\
   3.355 -+	case _IA64_REG_PSR:							\
   3.356 -+		asm volatile ("mov %0=psr" : "=r"(ia64_intri_res));		\
   3.357 -+		break;								\
   3.358 -+	case _IA64_REG_TP:	/* for current() */				\
   3.359 -+		ia64_intri_res = ia64_r13;					\
   3.360 -+		break;								\
   3.361 -+	case _IA64_REG_AR_KR0 ... _IA64_REG_AR_EC:				\
   3.362 -+		asm volatile ("mov %0=ar%1" : "=r" (ia64_intri_res)		\
   3.363 -+				      : "i"(regnum - _IA64_REG_AR_KR0));	\
   3.364 -+		break;								\
   3.365 -+	case _IA64_REG_CR_DCR ... _IA64_REG_CR_LRR1:				\
   3.366 -+		asm volatile ("mov %0=cr%1" : "=r" (ia64_intri_res)		\
   3.367 -+				      : "i" (regnum - _IA64_REG_CR_DCR));	\
   3.368 -+		break;								\
   3.369 -+	case _IA64_REG_SP:							\
   3.370 -+		asm volatile ("mov %0=sp" : "=r" (ia64_intri_res));		\
   3.371 -+		break;								\
   3.372 -+	default:								\
   3.373 -+		ia64_bad_param_for_getreg();					\
   3.374 -+		break;								\
   3.375 -+	}									\
   3.376 -+	ia64_intri_res;								\
   3.377 -+})
   3.378 -+
   3.379 -+#endif /* __INTEL_COMPILER */
   3.380 -+#endif /* IA64_INTRINSIC_H */
     4.1 --- a/tools/ioemu/patches/qemu-bootorder	Thu May 10 15:58:35 2007 +0100
     4.2 +++ b/tools/ioemu/patches/qemu-bootorder	Thu May 10 16:05:31 2007 +0100
     4.3 @@ -1,9 +1,9 @@
     4.4  Index: ioemu/vl.c
     4.5  ===================================================================
     4.6 ---- ioemu.orig/vl.c	2007-05-09 13:48:26.000000000 +0100
     4.7 -+++ ioemu/vl.c	2007-05-09 13:49:06.000000000 +0100
     4.8 -@@ -136,7 +136,7 @@
     4.9 - struct sockaddr_in vnclisten_addr;
    4.10 +--- ioemu.orig/vl.c	2007-05-10 15:34:25.000000000 +0100
    4.11 ++++ ioemu/vl.c	2007-05-10 15:35:16.000000000 +0100
    4.12 +@@ -135,7 +135,7 @@
    4.13 + int vncunused;
    4.14   const char* keyboard_layout = NULL;
    4.15   int64_t ticks_per_sec;
    4.16  -int boot_device = 'c';
    4.17 @@ -11,7 +11,7 @@ Index: ioemu/vl.c
    4.18   uint64_t ram_size;
    4.19   int pit_min_timer_count = 0;
    4.20   int nb_nics;
    4.21 -@@ -7068,14 +7068,14 @@
    4.22 +@@ -7051,14 +7051,14 @@
    4.23                   break;
    4.24   #endif /* !CONFIG_DM */
    4.25               case QEMU_OPTION_boot:
    4.26 @@ -31,7 +31,7 @@ Index: ioemu/vl.c
    4.27                       exit(1);
    4.28                   }
    4.29                   break;
    4.30 -@@ -7442,6 +7442,7 @@
    4.31 +@@ -7419,6 +7419,7 @@
    4.32               exit(1);
    4.33       }
    4.34   
    4.35 @@ -39,7 +39,7 @@ Index: ioemu/vl.c
    4.36   #ifdef TARGET_I386
    4.37       if (boot_device == 'n') {
    4.38   	for (i = 0; i < nb_nics; i++) {
    4.39 -@@ -7463,6 +7464,7 @@
    4.40 +@@ -7440,6 +7441,7 @@
    4.41   	boot_device = 'c'; /* to prevent confusion by the BIOS */
    4.42       }
    4.43   #endif
    4.44 @@ -47,7 +47,7 @@ Index: ioemu/vl.c
    4.45   
    4.46   #if defined (__ia64__)
    4.47       if (ram_size > MMIO_START)
    4.48 -@@ -7472,6 +7474,7 @@
    4.49 +@@ -7449,6 +7451,7 @@
    4.50       /* init the memory */
    4.51       phys_ram_size = ram_size + vga_ram_size + bios_size;
    4.52   
    4.53 @@ -55,7 +55,7 @@ Index: ioemu/vl.c
    4.54       for (i = 0; i < nb_option_roms; i++) {
    4.55   	int ret = get_image_size(option_rom[i]);
    4.56   	if (ret == -1) {
    4.57 -@@ -7480,6 +7483,7 @@
    4.58 +@@ -7457,6 +7460,7 @@
    4.59   	}
    4.60   	phys_ram_size += ret;
    4.61       }
    4.62 @@ -63,19 +63,19 @@ Index: ioemu/vl.c
    4.63   
    4.64   #ifdef CONFIG_DM
    4.65   
    4.66 -@@ -7711,6 +7715,7 @@
    4.67 +@@ -7686,6 +7690,7 @@
    4.68 +     machine->init(ram_size, vga_ram_size, boot_device,
    4.69                     ds, fd_filename, snapshot,
    4.70 -                   kernel_filename, kernel_cmdline, initrd_filename,
    4.71 -                   timeoffset);
    4.72 +                   kernel_filename, kernel_cmdline, initrd_filename);
    4.73  +    free(boot_device);
    4.74   
    4.75       /* init USB devices */
    4.76       if (usb_enabled) {
    4.77  Index: ioemu/vl.h
    4.78  ===================================================================
    4.79 ---- ioemu.orig/vl.h	2007-05-09 13:48:26.000000000 +0100
    4.80 -+++ ioemu/vl.h	2007-05-09 13:48:55.000000000 +0100
    4.81 -@@ -705,7 +705,7 @@
    4.82 +--- ioemu.orig/vl.h	2007-05-10 15:34:25.000000000 +0100
    4.83 ++++ ioemu/vl.h	2007-05-10 15:34:28.000000000 +0100
    4.84 +@@ -703,7 +703,7 @@
    4.85   #ifndef QEMU_TOOL
    4.86   
    4.87   typedef void QEMUMachineInitFunc(uint64_t ram_size, int vga_ram_size, 
    4.88 @@ -83,8 +83,8 @@ Index: ioemu/vl.h
    4.89  +                                 char *boot_device,
    4.90                DisplayState *ds, const char **fd_filename, int snapshot,
    4.91                const char *kernel_filename, const char *kernel_cmdline,
    4.92 -              const char *initrd_filename, time_t timeoffset);
    4.93 -@@ -1219,7 +1219,7 @@
    4.94 +              const char *initrd_filename);
    4.95 +@@ -1217,7 +1217,7 @@
    4.96                       uint32_t start, uint32_t count);
    4.97   int PPC_NVRAM_set_params (m48t59_t *nvram, uint16_t NVRAM_size,
    4.98                             const unsigned char *arch,
    4.99 @@ -95,8 +95,8 @@ Index: ioemu/vl.h
   4.100                             uint32_t initrd_image, uint32_t initrd_size,
   4.101  Index: ioemu/hw/pc.c
   4.102  ===================================================================
   4.103 ---- ioemu.orig/hw/pc.c	2007-05-09 13:48:26.000000000 +0100
   4.104 -+++ ioemu/hw/pc.c	2007-05-09 13:48:55.000000000 +0100
   4.105 +--- ioemu.orig/hw/pc.c	2007-05-10 15:34:25.000000000 +0100
   4.106 ++++ ioemu/hw/pc.c	2007-05-10 15:34:59.000000000 +0100
   4.107  @@ -159,8 +159,25 @@
   4.108       rtc_set_memory(s, info_ofs + 8, sectors);
   4.109   }
   4.110 @@ -119,8 +119,8 @@ Index: ioemu/hw/pc.c
   4.111  +}
   4.112  +
   4.113   /* hd_table must contain 4 block drivers */
   4.114 --static void cmos_init(uint64_t ram_size, int boot_device, BlockDriverState **hd_table, time_t timeoffset)
   4.115 -+static void cmos_init(uint64_t ram_size, char *boot_device, BlockDriverState **hd_table, time_t timeoffset)
   4.116 +-static void cmos_init(uint64_t ram_size, int boot_device, BlockDriverState **hd_table)
   4.117 ++static void cmos_init(uint64_t ram_size, char *boot_device, BlockDriverState **hd_table)
   4.118   {
   4.119       RTCState *s = rtc_state;
   4.120       int val;
   4.121 @@ -162,7 +162,7 @@ Index: ioemu/hw/pc.c
   4.122  +static void pc_init1(uint64_t ram_size, int vga_ram_size, char *boot_device,
   4.123                        DisplayState *ds, const char **fd_filename, int snapshot,
   4.124                        const char *kernel_filename, const char *kernel_cmdline,
   4.125 -                      const char *initrd_filename, time_t timeoffset,
   4.126 +                      const char *initrd_filename,
   4.127  @@ -772,7 +782,7 @@
   4.128   #endif
   4.129   }
   4.130 @@ -172,8 +172,8 @@ Index: ioemu/hw/pc.c
   4.131                           DisplayState *ds, const char **fd_filename, 
   4.132                           int snapshot, 
   4.133                           const char *kernel_filename, 
   4.134 -@@ -786,7 +796,7 @@
   4.135 -              initrd_filename, timeoffset, 1);
   4.136 +@@ -785,7 +795,7 @@
   4.137 +              initrd_filename, 1);
   4.138   }
   4.139   
   4.140  -static void pc_init_isa(uint64_t ram_size, int vga_ram_size, int boot_device,
     5.1 --- a/tools/ioemu/patches/qemu-daemonize	Thu May 10 15:58:35 2007 +0100
     5.2 +++ b/tools/ioemu/patches/qemu-daemonize	Thu May 10 16:05:31 2007 +0100
     5.3 @@ -2,9 +2,9 @@ Changes required because qemu-dm runs da
     5.4  
     5.5  Index: ioemu/vl.c
     5.6  ===================================================================
     5.7 ---- ioemu.orig/vl.c	2007-05-03 20:30:30.000000000 +0100
     5.8 -+++ ioemu/vl.c	2007-05-03 20:32:07.000000000 +0100
     5.9 -@@ -7047,10 +7047,11 @@
    5.10 +--- ioemu.orig/vl.c	2007-05-10 15:34:24.000000000 +0100
    5.11 ++++ ioemu/vl.c	2007-05-10 15:34:25.000000000 +0100
    5.12 +@@ -7030,10 +7030,11 @@
    5.13                   }
    5.14                   break;
    5.15               case QEMU_OPTION_nographic:
     6.1 --- a/tools/ioemu/patches/qemu-dm	Thu May 10 15:58:35 2007 +0100
     6.2 +++ b/tools/ioemu/patches/qemu-dm	Thu May 10 16:05:31 2007 +0100
     6.3 @@ -1,7 +1,7 @@
     6.4  Index: ioemu/Makefile.target
     6.5  ===================================================================
     6.6 ---- ioemu.orig/Makefile.target	2007-05-09 13:47:24.000000000 +0100
     6.7 -+++ ioemu/Makefile.target	2007-05-09 14:08:42.000000000 +0100
     6.8 +--- ioemu.orig/Makefile.target	2007-05-10 15:36:06.000000000 +0100
     6.9 ++++ ioemu/Makefile.target	2007-05-10 15:56:20.000000000 +0100
    6.10  @@ -332,7 +332,7 @@
    6.11   endif
    6.12   
    6.13 @@ -13,8 +13,8 @@ Index: ioemu/Makefile.target
    6.14   VL_OBJS+=block-cow.o block-qcow.o aes.o block-vmdk.o block-cloop.o block-dmg.o block-bochs.o block-vpc.o block-vvfat.o block-qcow2.o
    6.15  Index: ioemu/configure
    6.16  ===================================================================
    6.17 ---- ioemu.orig/configure	2007-05-09 13:47:24.000000000 +0100
    6.18 -+++ ioemu/configure	2007-05-09 14:08:42.000000000 +0100
    6.19 +--- ioemu.orig/configure	2007-05-10 15:36:06.000000000 +0100
    6.20 ++++ ioemu/configure	2007-05-10 15:56:20.000000000 +0100
    6.21  @@ -77,8 +77,8 @@
    6.22   bigendian="no"
    6.23   mingw32="no"
    6.24 @@ -37,8 +37,8 @@ Index: ioemu/configure
    6.25     target_user_only="yes"
    6.26  Index: ioemu/cpu-all.h
    6.27  ===================================================================
    6.28 ---- ioemu.orig/cpu-all.h	2007-05-09 13:47:22.000000000 +0100
    6.29 -+++ ioemu/cpu-all.h	2007-05-09 14:08:42.000000000 +0100
    6.30 +--- ioemu.orig/cpu-all.h	2007-05-10 15:36:04.000000000 +0100
    6.31 ++++ ioemu/cpu-all.h	2007-05-10 15:56:20.000000000 +0100
    6.32  @@ -690,7 +690,9 @@
    6.33   void page_set_flags(target_ulong start, target_ulong end, int flags);
    6.34   void page_unprotect_range(target_ulong data, target_ulong data_size);
    6.35 @@ -64,8 +64,8 @@ Index: ioemu/cpu-all.h
    6.36   void cpu_dump_state(CPUState *env, FILE *f, 
    6.37  Index: ioemu/disas.h
    6.38  ===================================================================
    6.39 ---- ioemu.orig/disas.h	2007-05-09 13:47:22.000000000 +0100
    6.40 -+++ ioemu/disas.h	2007-05-09 13:47:24.000000000 +0100
    6.41 +--- ioemu.orig/disas.h	2007-05-10 15:36:04.000000000 +0100
    6.42 ++++ ioemu/disas.h	2007-05-10 15:36:06.000000000 +0100
    6.43  @@ -1,6 +1,7 @@
    6.44   #ifndef _QEMU_DISAS_H
    6.45   #define _QEMU_DISAS_H
    6.46 @@ -83,9 +83,25 @@ Index: ioemu/disas.h
    6.47   #endif /* _QEMU_DISAS_H */
    6.48  Index: ioemu/exec-all.h
    6.49  ===================================================================
    6.50 ---- ioemu.orig/exec-all.h	2007-05-09 13:47:22.000000000 +0100
    6.51 -+++ ioemu/exec-all.h	2007-05-09 14:08:42.000000000 +0100
    6.52 -@@ -519,7 +519,7 @@
    6.53 +--- ioemu.orig/exec-all.h	2007-05-10 15:36:04.000000000 +0100
    6.54 ++++ ioemu/exec-all.h	2007-05-10 15:56:40.000000000 +0100
    6.55 +@@ -357,6 +357,7 @@
    6.56 + extern CPUReadMemoryFunc *io_mem_read[IO_MEM_NB_ENTRIES][4];
    6.57 + extern void *io_mem_opaque[IO_MEM_NB_ENTRIES];
    6.58 + 
    6.59 ++#ifndef CONFIG_DM
    6.60 + #ifdef __powerpc__
    6.61 + static inline int testandset (int *p)
    6.62 + {
    6.63 +@@ -480,6 +481,7 @@
    6.64 +     return __sync_lock_test_and_set (p, 1);
    6.65 + }
    6.66 + #endif
    6.67 ++#endif /* !CONFIG_DM */
    6.68 + 
    6.69 + typedef int spinlock_t;
    6.70 + 
    6.71 +@@ -519,7 +521,7 @@
    6.72   
    6.73   extern int tb_invalidated_flag;
    6.74   
    6.75 @@ -94,7 +110,7 @@ Index: ioemu/exec-all.h
    6.76   
    6.77   void tlb_fill(target_ulong addr, int is_write, int is_user, 
    6.78                 void *retaddr);
    6.79 -@@ -546,7 +546,7 @@
    6.80 +@@ -546,7 +548,7 @@
    6.81   
    6.82   #endif
    6.83   
    6.84 @@ -105,8 +121,8 @@ Index: ioemu/exec-all.h
    6.85       return addr;
    6.86  Index: ioemu/hw/pc.c
    6.87  ===================================================================
    6.88 ---- ioemu.orig/hw/pc.c	2007-05-09 13:47:22.000000000 +0100
    6.89 -+++ ioemu/hw/pc.c	2007-05-09 14:08:42.000000000 +0100
    6.90 +--- ioemu.orig/hw/pc.c	2007-05-10 15:36:04.000000000 +0100
    6.91 ++++ ioemu/hw/pc.c	2007-05-10 15:56:20.000000000 +0100
    6.92  @@ -74,6 +74,7 @@
    6.93       }
    6.94   }
    6.95 @@ -168,8 +184,8 @@ Index: ioemu/hw/pc.c
    6.96           if (serial_hds[i]) {
    6.97  Index: ioemu/hw/vga_int.h
    6.98  ===================================================================
    6.99 ---- ioemu.orig/hw/vga_int.h	2007-05-09 13:47:22.000000000 +0100
   6.100 -+++ ioemu/hw/vga_int.h	2007-05-09 14:08:41.000000000 +0100
   6.101 +--- ioemu.orig/hw/vga_int.h	2007-05-10 15:36:04.000000000 +0100
   6.102 ++++ ioemu/hw/vga_int.h	2007-05-10 15:56:19.000000000 +0100
   6.103  @@ -28,7 +28,7 @@
   6.104   #define ST01_DISP_ENABLE    0x01
   6.105   
   6.106 @@ -181,8 +197,8 @@ Index: ioemu/hw/vga_int.h
   6.107   #define VBE_DISPI_MAX_YRES              1200
   6.108  Index: ioemu/monitor.c
   6.109  ===================================================================
   6.110 ---- ioemu.orig/monitor.c	2007-05-09 13:47:22.000000000 +0100
   6.111 -+++ ioemu/monitor.c	2007-05-09 14:08:59.000000000 +0100
   6.112 +--- ioemu.orig/monitor.c	2007-05-10 15:36:04.000000000 +0100
   6.113 ++++ ioemu/monitor.c	2007-05-10 15:56:20.000000000 +0100
   6.114  @@ -69,6 +69,12 @@
   6.115   
   6.116   void term_flush(void)
   6.117 @@ -424,8 +440,8 @@ Index: ioemu/monitor.c
   6.118   {
   6.119  Index: ioemu/vl.c
   6.120  ===================================================================
   6.121 ---- ioemu.orig/vl.c	2007-05-09 13:47:22.000000000 +0100
   6.122 -+++ ioemu/vl.c	2007-05-09 14:08:42.000000000 +0100
   6.123 +--- ioemu.orig/vl.c	2007-05-10 15:36:04.000000000 +0100
   6.124 ++++ ioemu/vl.c	2007-05-10 15:56:20.000000000 +0100
   6.125  @@ -396,12 +396,15 @@
   6.126   void hw_error(const char *fmt, ...)
   6.127   {
     7.1 --- a/tools/ioemu/patches/qemu-pci	Thu May 10 15:58:35 2007 +0100
     7.2 +++ b/tools/ioemu/patches/qemu-pci	Thu May 10 16:05:31 2007 +0100
     7.3 @@ -1,7 +1,7 @@
     7.4  Index: ioemu/hw/pci.c
     7.5  ===================================================================
     7.6 ---- ioemu.orig/hw/pci.c	2007-05-09 14:10:16.000000000 +0100
     7.7 -+++ ioemu/hw/pci.c	2007-05-09 14:10:38.000000000 +0100
     7.8 +--- ioemu.orig/hw/pci.c	2007-05-10 15:17:54.000000000 +0100
     7.9 ++++ ioemu/hw/pci.c	2007-05-10 15:19:29.000000000 +0100
    7.10  @@ -314,6 +314,7 @@
    7.11               case 0x0b:
    7.12               case 0x0e:
    7.13 @@ -31,8 +31,8 @@ Index: ioemu/hw/pci.c
    7.14           if (++addr > 0xff)
    7.15  Index: ioemu/hw/rtl8139.c
    7.16  ===================================================================
    7.17 ---- ioemu.orig/hw/rtl8139.c	2007-05-09 14:10:36.000000000 +0100
    7.18 -+++ ioemu/hw/rtl8139.c	2007-05-09 14:10:38.000000000 +0100
    7.19 +--- ioemu.orig/hw/rtl8139.c	2007-05-10 15:17:54.000000000 +0100
    7.20 ++++ ioemu/hw/rtl8139.c	2007-05-10 15:19:29.000000000 +0100
    7.21  @@ -3432,6 +3432,8 @@
    7.22       pci_conf[0x0e] = 0x00; /* header_type */
    7.23       pci_conf[0x3d] = 1;    /* interrupt pin 0 */
    7.24 @@ -44,8 +44,8 @@ Index: ioemu/hw/rtl8139.c
    7.25   
    7.26  Index: ioemu/hw/usb-uhci.c
    7.27  ===================================================================
    7.28 ---- ioemu.orig/hw/usb-uhci.c	2007-05-09 14:10:34.000000000 +0100
    7.29 -+++ ioemu/hw/usb-uhci.c	2007-05-09 14:10:38.000000000 +0100
    7.30 +--- ioemu.orig/hw/usb-uhci.c	2007-05-10 15:17:54.000000000 +0100
    7.31 ++++ ioemu/hw/usb-uhci.c	2007-05-10 15:19:29.000000000 +0100
    7.32  @@ -832,6 +832,8 @@
    7.33       pci_conf[0x0e] = 0x00; // header_type
    7.34       pci_conf[0x3d] = 4; // interrupt pin 3
    7.35 @@ -57,9 +57,9 @@ Index: ioemu/hw/usb-uhci.c
    7.36           qemu_register_usb_port(&s->ports[i].port, s, i, uhci_attach);
    7.37  Index: ioemu/vl.h
    7.38  ===================================================================
    7.39 ---- ioemu.orig/vl.h	2007-05-09 14:10:38.000000000 +0100
    7.40 -+++ ioemu/vl.h	2007-05-09 14:10:38.000000000 +0100
    7.41 -@@ -779,8 +779,11 @@
    7.42 +--- ioemu.orig/vl.h	2007-05-10 15:19:28.000000000 +0100
    7.43 ++++ ioemu/vl.h	2007-05-10 15:19:29.000000000 +0100
    7.44 +@@ -777,8 +777,11 @@
    7.45   #define PCI_MAX_LAT		0x3f	/* 8 bits */
    7.46   
    7.47   struct PCIDevice {
     8.1 --- a/tools/ioemu/patches/qemu-pci-vendor-ids	Thu May 10 15:58:35 2007 +0100
     8.2 +++ b/tools/ioemu/patches/qemu-pci-vendor-ids	Thu May 10 16:05:31 2007 +0100
     8.3 @@ -1,7 +1,7 @@
     8.4  Index: ioemu/hw/cirrus_vga.c
     8.5  ===================================================================
     8.6 ---- ioemu.orig/hw/cirrus_vga.c	2007-05-03 19:16:30.000000000 +0100
     8.7 -+++ ioemu/hw/cirrus_vga.c	2007-05-03 20:36:50.000000000 +0100
     8.8 +--- ioemu.orig/hw/cirrus_vga.c	2007-05-10 15:04:56.000000000 +0100
     8.9 ++++ ioemu/hw/cirrus_vga.c	2007-05-10 15:05:07.000000000 +0100
    8.10  @@ -3354,6 +3354,10 @@
    8.11       pci_conf[0x0a] = PCI_CLASS_SUB_VGA;
    8.12       pci_conf[0x0b] = PCI_CLASS_BASE_DISPLAY;
    8.13 @@ -15,8 +15,8 @@ Index: ioemu/hw/cirrus_vga.c
    8.14       s = &d->cirrus_vga;
    8.15  Index: ioemu/hw/rtl8139.c
    8.16  ===================================================================
    8.17 ---- ioemu.orig/hw/rtl8139.c	2007-05-03 20:36:46.000000000 +0100
    8.18 -+++ ioemu/hw/rtl8139.c	2007-05-03 20:36:50.000000000 +0100
    8.19 +--- ioemu.orig/hw/rtl8139.c	2007-05-10 15:05:06.000000000 +0100
    8.20 ++++ ioemu/hw/rtl8139.c	2007-05-10 15:05:07.000000000 +0100
    8.21  @@ -3432,8 +3432,10 @@
    8.22       pci_conf[0x0e] = 0x00; /* header_type */
    8.23       pci_conf[0x3d] = 1;    /* interrupt pin 0 */
    8.24 @@ -32,9 +32,9 @@ Index: ioemu/hw/rtl8139.c
    8.25   
    8.26  Index: ioemu/hw/ide.c
    8.27  ===================================================================
    8.28 ---- ioemu.orig/hw/ide.c	2007-05-03 20:35:19.000000000 +0100
    8.29 -+++ ioemu/hw/ide.c	2007-05-03 20:36:50.000000000 +0100
    8.30 -@@ -2747,6 +2747,10 @@
    8.31 +--- ioemu.orig/hw/ide.c	2007-05-10 15:05:02.000000000 +0100
    8.32 ++++ ioemu/hw/ide.c	2007-05-10 15:05:07.000000000 +0100
    8.33 +@@ -2750,6 +2750,10 @@
    8.34       pci_conf[0x0a] = 0x01; // class_sub = PCI_IDE
    8.35       pci_conf[0x0b] = 0x01; // class_base = PCI_mass_storage
    8.36       pci_conf[0x0e] = 0x00; // header_type
     9.1 --- a/tools/ioemu/patches/qemu-serial-fixes	Thu May 10 15:58:35 2007 +0100
     9.2 +++ b/tools/ioemu/patches/qemu-serial-fixes	Thu May 10 16:05:31 2007 +0100
     9.3 @@ -13,9 +13,9 @@ Signed-off-by: Keir Fraser <keir@xensour
     9.4  
     9.5  Index: ioemu/vl.c
     9.6  ===================================================================
     9.7 ---- ioemu.orig/vl.c	2007-05-03 20:38:49.000000000 +0100
     9.8 -+++ ioemu/vl.c	2007-05-03 20:39:06.000000000 +0100
     9.9 -@@ -1874,7 +1874,7 @@
    9.10 +--- ioemu.orig/vl.c	2007-05-10 15:35:24.000000000 +0100
    9.11 ++++ ioemu/vl.c	2007-05-10 15:35:25.000000000 +0100
    9.12 +@@ -1871,7 +1871,7 @@
    9.13   
    9.14       tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP
    9.15                             |INLCR|IGNCR|ICRNL|IXON);
    9.16 @@ -26,8 +26,8 @@ Index: ioemu/vl.c
    9.17       switch(data_bits) {
    9.18  Index: ioemu/hw/serial.c
    9.19  ===================================================================
    9.20 ---- ioemu.orig/hw/serial.c	2007-05-03 20:36:58.000000000 +0100
    9.21 -+++ ioemu/hw/serial.c	2007-05-03 20:39:06.000000000 +0100
    9.22 +--- ioemu.orig/hw/serial.c	2007-05-10 15:35:24.000000000 +0100
    9.23 ++++ ioemu/hw/serial.c	2007-05-10 15:35:25.000000000 +0100
    9.24  @@ -73,6 +73,11 @@
    9.25   #define UART_LSR_OE	0x02	/* Overrun error indicator */
    9.26   #define UART_LSR_DR	0x01	/* Receiver data ready */
    10.1 --- a/tools/ioemu/patches/qemu-tunable-ide-write-cache	Thu May 10 15:58:35 2007 +0100
    10.2 +++ b/tools/ioemu/patches/qemu-tunable-ide-write-cache	Thu May 10 16:05:31 2007 +0100
    10.3 @@ -1,7 +1,7 @@
    10.4  Index: ioemu/hw/ide.c
    10.5  ===================================================================
    10.6 ---- ioemu.orig/hw/ide.c	2007-05-03 20:31:55.000000000 +0100
    10.7 -+++ ioemu/hw/ide.c	2007-05-03 20:35:19.000000000 +0100
    10.8 +--- ioemu.orig/hw/ide.c	2007-05-10 15:04:31.000000000 +0100
    10.9 ++++ ioemu/hw/ide.c	2007-05-10 15:05:02.000000000 +0100
   10.10  @@ -306,6 +306,7 @@
   10.11       PCIDevice *pci_dev;
   10.12       struct BMDMAState *bmdma;
   10.13 @@ -20,7 +20,17 @@ Index: ioemu/hw/ide.c
   10.14   #ifdef TARGET_I386
   10.15       if (win2k_install_hack && ((++s->irq_count % 16) == 0)) {
   10.16           /* It seems there is a bug in the Windows 2000 installer HDD
   10.17 -@@ -1849,7 +1853,15 @@
   10.18 +@@ -956,6 +960,9 @@
   10.19 + 
   10.20 +     /* end of transfer ? */
   10.21 +     if (s->nsector == 0) {
   10.22 ++        /* Ensure the data hit disk before telling the guest OS so. */
   10.23 ++        if (!s->write_cache)
   10.24 ++            bdrv_flush(s->bs);
   10.25 +         s->status = READY_STAT | SEEK_STAT;
   10.26 +         ide_set_irq(s);
   10.27 +     eot:
   10.28 +@@ -1849,7 +1856,15 @@
   10.29               /* XXX: valid for CDROM ? */
   10.30               switch(s->feature) {
   10.31               case 0x02: /* write cache enable */
   10.32 @@ -36,7 +46,7 @@ Index: ioemu/hw/ide.c
   10.33               case 0xaa: /* read look-ahead enable */
   10.34               case 0x55: /* read look-ahead disable */
   10.35                   s->status = READY_STAT | SEEK_STAT;
   10.36 -@@ -2282,6 +2294,7 @@
   10.37 +@@ -2282,6 +2297,7 @@
   10.38           s->irq = irq;
   10.39           s->sector_write_timer = qemu_new_timer(vm_clock, 
   10.40                                                  ide_sector_write_timer_cb, s);
    11.1 --- a/tools/ioemu/patches/scsi	Thu May 10 15:58:35 2007 +0100
    11.2 +++ b/tools/ioemu/patches/scsi	Thu May 10 16:05:31 2007 +0100
    11.3 @@ -1,7 +1,7 @@
    11.4  Index: ioemu/vl.c
    11.5  ===================================================================
    11.6 ---- ioemu.orig/vl.c	2007-05-09 13:49:10.000000000 +0100
    11.7 -+++ ioemu/vl.c	2007-05-09 13:49:10.000000000 +0100
    11.8 +--- ioemu.orig/vl.c	2007-05-10 15:35:25.000000000 +0100
    11.9 ++++ ioemu/vl.c	2007-05-10 15:35:25.000000000 +0100
   11.10  @@ -124,7 +124,7 @@
   11.11   IOPortWriteFunc *ioport_write_table[3][MAX_IOPORTS];
   11.12   /* Note: bs_table[MAX_DISKS] is a dummy block driver if none available
   11.13 @@ -11,7 +11,7 @@ Index: ioemu/vl.c
   11.14   /* point to the block driver where the snapshots are managed */
   11.15   BlockDriverState *bs_snapshots;
   11.16   int vga_ram_size;
   11.17 -@@ -1529,7 +1529,7 @@
   11.18 +@@ -1526,7 +1526,7 @@
   11.19           case 's': 
   11.20               {
   11.21                   int i;
   11.22 @@ -20,7 +20,7 @@ Index: ioemu/vl.c
   11.23                       if (bs_table[i])
   11.24                           bdrv_commit(bs_table[i]);
   11.25                   }
   11.26 -@@ -6969,7 +6969,7 @@
   11.27 +@@ -6954,7 +6954,7 @@
   11.28       int snapshot, linux_boot;
   11.29       const char *initrd_filename;
   11.30   #ifndef CONFIG_DM
   11.31 @@ -29,7 +29,7 @@ Index: ioemu/vl.c
   11.32   #endif /* !CONFIG_DM */
   11.33       const char *fd_filename[MAX_FD];
   11.34       const char *kernel_filename, *kernel_cmdline;
   11.35 -@@ -7038,7 +7038,7 @@
   11.36 +@@ -7023,7 +7023,7 @@
   11.37       for(i = 0; i < MAX_FD; i++)
   11.38           fd_filename[i] = NULL;
   11.39   #ifndef CONFIG_DM
   11.40 @@ -38,7 +38,7 @@ Index: ioemu/vl.c
   11.41           hd_filename[i] = NULL;
   11.42   #endif /* !CONFIG_DM */
   11.43       ram_size = DEFAULT_RAM_SIZE * 1024 * 1024;
   11.44 -@@ -7737,7 +7737,7 @@
   11.45 +@@ -7714,7 +7714,7 @@
   11.46       }
   11.47   
   11.48       /* open the virtual block devices */
   11.49 @@ -49,9 +49,9 @@ Index: ioemu/vl.c
   11.50                   char buf[64];
   11.51  Index: ioemu/vl.h
   11.52  ===================================================================
   11.53 ---- ioemu.orig/vl.h	2007-05-09 13:49:10.000000000 +0100
   11.54 -+++ ioemu/vl.h	2007-05-09 13:51:28.000000000 +0100
   11.55 -@@ -965,8 +965,9 @@
   11.56 +--- ioemu.orig/vl.h	2007-05-10 15:35:25.000000000 +0100
   11.57 ++++ ioemu/vl.h	2007-05-10 15:35:25.000000000 +0100
   11.58 +@@ -963,8 +963,9 @@
   11.59   
   11.60   /* ide.c */
   11.61   #define MAX_DISKS 4
   11.62 @@ -64,8 +64,8 @@ Index: ioemu/vl.h
   11.63                     BlockDriverState *hd0, BlockDriverState *hd1);
   11.64  Index: ioemu/hw/pc.c
   11.65  ===================================================================
   11.66 ---- ioemu.orig/hw/pc.c	2007-05-09 13:49:09.000000000 +0100
   11.67 -+++ ioemu/hw/pc.c	2007-05-09 13:49:10.000000000 +0100
   11.68 +--- ioemu.orig/hw/pc.c	2007-05-10 15:35:25.000000000 +0100
   11.69 ++++ ioemu/hw/pc.c	2007-05-10 15:35:25.000000000 +0100
   11.70  @@ -761,7 +761,6 @@
   11.71               piix4_smbus_register_device(eeprom, 0x50 + i);
   11.72           }
   11.73 @@ -95,8 +95,8 @@ Index: ioemu/hw/pc.c
   11.74   static void pc_init_pci(uint64_t ram_size, int vga_ram_size, char *boot_device,
   11.75  Index: ioemu/xenstore.c
   11.76  ===================================================================
   11.77 ---- ioemu.orig/xenstore.c	2007-05-09 13:49:10.000000000 +0100
   11.78 -+++ ioemu/xenstore.c	2007-05-09 13:49:10.000000000 +0100
   11.79 +--- ioemu.orig/xenstore.c	2007-05-10 15:35:25.000000000 +0100
   11.80 ++++ ioemu/xenstore.c	2007-05-10 15:35:25.000000000 +0100
   11.81  @@ -18,7 +18,7 @@
   11.82   #include <fcntl.h>
   11.83   
   11.84 @@ -163,8 +163,8 @@ Index: ioemu/xenstore.c
   11.85           }
   11.86  Index: ioemu/monitor.c
   11.87  ===================================================================
   11.88 ---- ioemu.orig/monitor.c	2007-05-09 13:48:54.000000000 +0100
   11.89 -+++ ioemu/monitor.c	2007-05-09 13:49:19.000000000 +0100
   11.90 +--- ioemu.orig/monitor.c	2007-05-10 15:32:53.000000000 +0100
   11.91 ++++ ioemu/monitor.c	2007-05-10 15:35:25.000000000 +0100
   11.92  @@ -209,7 +209,7 @@
   11.93       int i, all_devices;
   11.94       
   11.95 @@ -176,8 +176,8 @@ Index: ioemu/monitor.c
   11.96                   !strcmp(bdrv_get_device_name(bs_table[i]), device))
   11.97  Index: ioemu/hw/lsi53c895a.c
   11.98  ===================================================================
   11.99 ---- ioemu.orig/hw/lsi53c895a.c	2007-05-09 13:48:54.000000000 +0100
  11.100 -+++ ioemu/hw/lsi53c895a.c	2007-05-09 13:49:10.000000000 +0100
  11.101 +--- ioemu.orig/hw/lsi53c895a.c	2007-05-10 15:32:53.000000000 +0100
  11.102 ++++ ioemu/hw/lsi53c895a.c	2007-05-10 15:35:25.000000000 +0100
  11.103  @@ -1351,8 +1351,13 @@
  11.104           shift = (offset & 3) * 8;
  11.105           return (s->scratch[n] >> shift) & 0xff;
    12.1 --- a/tools/ioemu/patches/series	Thu May 10 15:58:35 2007 +0100
    12.2 +++ b/tools/ioemu/patches/series	Thu May 10 16:05:31 2007 +0100
    12.3 @@ -5,7 +5,6 @@ qemu-cleanup
    12.4  qemu-64bit
    12.5  qemu-bugfixes
    12.6  qemu-logging
    12.7 -qemu-infrastructure
    12.8  qemu-hvm-banner
    12.9  xen-domain-name
   12.10  xen-domid
   12.11 @@ -41,9 +40,7 @@ vnc-fixes
   12.12  vnc-protocol-fixes
   12.13  vnc-start-vncviewer
   12.14  vnc-title-domain-name
   12.15 -vnc-access-monitor-vt
   12.16  vnc-display-find-unused
   12.17 -vnc-listen-specific-interface
   12.18  vnc-backoff-screen-scan
   12.19  xenstore
   12.20  xenstore-block-device-config
   12.21 @@ -79,3 +76,4 @@ scsi
   12.22  qemu-cirrus-bounds-checks
   12.23  qemu-block-device-bounds-checks
   12.24  qemu-dma-null-pointer-check
   12.25 +vnc-fix-text-display-shift-key
    13.1 --- a/tools/ioemu/patches/tpm-tis-device	Thu May 10 15:58:35 2007 +0100
    13.2 +++ b/tools/ioemu/patches/tpm-tis-device	Thu May 10 16:05:31 2007 +0100
    13.3 @@ -22,8 +22,8 @@ Signed-off-by: Stefan Berger <stefanb@us
    13.4  
    13.5  Index: ioemu/Makefile.target
    13.6  ===================================================================
    13.7 ---- ioemu.orig/Makefile.target	2007-05-03 20:38:49.000000000 +0100
    13.8 -+++ ioemu/Makefile.target	2007-05-03 20:39:04.000000000 +0100
    13.9 +--- ioemu.orig/Makefile.target	2007-05-10 15:19:29.000000000 +0100
   13.10 ++++ ioemu/Makefile.target	2007-05-10 15:19:29.000000000 +0100
   13.11  @@ -400,6 +400,7 @@
   13.12   VL_OBJS+= piix4acpi.o
   13.13   VL_OBJS+= xenstore.o
   13.14 @@ -34,8 +34,8 @@ Index: ioemu/Makefile.target
   13.15   ifeq ($(TARGET_BASE_ARCH), ppc)
   13.16  Index: ioemu/hw/pc.c
   13.17  ===================================================================
   13.18 ---- ioemu.orig/hw/pc.c	2007-05-03 20:32:20.000000000 +0100
   13.19 -+++ ioemu/hw/pc.c	2007-05-03 20:38:55.000000000 +0100
   13.20 +--- ioemu.orig/hw/pc.c	2007-05-10 15:19:28.000000000 +0100
   13.21 ++++ ioemu/hw/pc.c	2007-05-10 15:19:29.000000000 +0100
   13.22  @@ -730,6 +730,9 @@
   13.23           }
   13.24       }
   13.25 @@ -49,7 +49,7 @@ Index: ioemu/hw/pc.c
   13.26  Index: ioemu/hw/tpm_tis.c
   13.27  ===================================================================
   13.28  --- /dev/null	1970-01-01 00:00:00.000000000 +0000
   13.29 -+++ ioemu/hw/tpm_tis.c	2007-05-03 20:38:55.000000000 +0100
   13.30 ++++ ioemu/hw/tpm_tis.c	2007-05-10 15:19:29.000000000 +0100
   13.31  @@ -0,0 +1,1128 @@
   13.32  +/*
   13.33  + * tpm_tis.c - QEMU emulator for a 1.2 TPM with TIS interface
   13.34 @@ -1181,9 +1181,9 @@ Index: ioemu/hw/tpm_tis.c
   13.35  +}
   13.36  Index: ioemu/vl.h
   13.37  ===================================================================
   13.38 ---- ioemu.orig/vl.h	2007-05-03 20:38:53.000000000 +0100
   13.39 -+++ ioemu/vl.h	2007-05-03 20:38:55.000000000 +0100
   13.40 -@@ -1088,6 +1088,10 @@
   13.41 +--- ioemu.orig/vl.h	2007-05-10 15:19:29.000000000 +0100
   13.42 ++++ ioemu/vl.h	2007-05-10 15:19:29.000000000 +0100
   13.43 +@@ -1086,6 +1086,10 @@
   13.44   /* smbus_eeprom.c */
   13.45   SMBusDevice *smbus_eeprom_device_init(uint8_t addr, uint8_t *buf);
   13.46   
    14.1 --- a/tools/ioemu/patches/vnc-backoff-screen-scan	Thu May 10 15:58:35 2007 +0100
    14.2 +++ b/tools/ioemu/patches/vnc-backoff-screen-scan	Thu May 10 16:05:31 2007 +0100
    14.3 @@ -1,7 +1,7 @@
    14.4  Index: ioemu/vnc.c
    14.5  ===================================================================
    14.6 ---- ioemu.orig/vnc.c	2007-05-03 20:22:19.000000000 +0100
    14.7 -+++ ioemu/vnc.c	2007-05-03 20:23:38.000000000 +0100
    14.8 +--- ioemu.orig/vnc.c	2007-05-10 15:18:01.000000000 +0100
    14.9 ++++ ioemu/vnc.c	2007-05-10 15:18:58.000000000 +0100
   14.10  @@ -28,7 +28,19 @@
   14.11   #include "qemu_socket.h"
   14.12   #include <assert.h>
   14.13 @@ -23,7 +23,7 @@ Index: ioemu/vnc.c
   14.14   
   14.15   #include "vnc_keysym.h"
   14.16   #include "keymaps.c"
   14.17 -@@ -65,10 +77,11 @@
   14.18 +@@ -61,10 +73,11 @@
   14.19   struct VncState
   14.20   {
   14.21       QEMUTimer *timer;
   14.22 @@ -36,7 +36,7 @@ Index: ioemu/vnc.c
   14.23       int width;
   14.24       int height;
   14.25       uint64_t *dirty_row;	/* screen regions which are possibly dirty */
   14.26 -@@ -106,8 +119,6 @@
   14.27 +@@ -102,8 +115,6 @@
   14.28       int visible_w;
   14.29       int visible_h;
   14.30   
   14.31 @@ -45,7 +45,7 @@ Index: ioemu/vnc.c
   14.32       /* input */
   14.33       uint8_t modifiers_state[256];
   14.34   };
   14.35 -@@ -412,7 +423,7 @@
   14.36 +@@ -408,7 +419,7 @@
   14.37       int y = 0;
   14.38       int pitch = ds->linesize;
   14.39       VncState *vs = ds->opaque;
   14.40 @@ -54,7 +54,7 @@ Index: ioemu/vnc.c
   14.41   
   14.42       if (src_x < vs->visible_x || src_y < vs->visible_y ||
   14.43   	dst_x < vs->visible_x || dst_y < vs->visible_y ||
   14.44 -@@ -422,10 +433,8 @@
   14.45 +@@ -418,10 +429,8 @@
   14.46   	(dst_y + h) > (vs->visible_y + vs->visible_h))
   14.47   	updating_client = 0;
   14.48   
   14.49 @@ -66,7 +66,7 @@ Index: ioemu/vnc.c
   14.50   
   14.51       if (dst_y > src_y) {
   14.52   	y = h - 1;
   14.53 -@@ -477,110 +486,149 @@
   14.54 +@@ -473,110 +482,149 @@
   14.55   static void _vnc_update_client(void *opaque)
   14.56   {
   14.57       VncState *vs = opaque;
   14.58 @@ -299,7 +299,7 @@ Index: ioemu/vnc.c
   14.59   }
   14.60   
   14.61   static void vnc_update_client(void *opaque)
   14.62 -@@ -593,8 +641,10 @@
   14.63 +@@ -589,8 +637,10 @@
   14.64   
   14.65   static void vnc_timer_init(VncState *vs)
   14.66   {
   14.67 @@ -311,7 +311,7 @@ Index: ioemu/vnc.c
   14.68   }
   14.69   
   14.70   static void vnc_dpy_refresh(DisplayState *ds)
   14.71 -@@ -654,7 +704,6 @@
   14.72 +@@ -650,7 +700,6 @@
   14.73   	vs->csock = -1;
   14.74   	buffer_reset(&vs->input);
   14.75   	buffer_reset(&vs->output);
   14.76 @@ -319,7 +319,7 @@ Index: ioemu/vnc.c
   14.77   	return 0;
   14.78       }
   14.79       return ret;
   14.80 -@@ -961,7 +1010,6 @@
   14.81 +@@ -957,7 +1006,6 @@
   14.82   				       int x_position, int y_position,
   14.83   				       int w, int h)
   14.84   {
   14.85 @@ -327,7 +327,7 @@ Index: ioemu/vnc.c
   14.86       if (!incremental)
   14.87   	framebuffer_set_updated(vs, x_position, y_position, w, h);
   14.88       vs->visible_x = x_position;
   14.89 -@@ -1091,6 +1139,7 @@
   14.90 +@@ -1087,6 +1135,7 @@
   14.91   {
   14.92       int i;
   14.93       uint16_t limit;
   14.94 @@ -335,7 +335,7 @@ Index: ioemu/vnc.c
   14.95   
   14.96       switch (data[0]) {
   14.97       case 0:
   14.98 -@@ -1134,12 +1183,18 @@
   14.99 +@@ -1130,12 +1179,18 @@
  14.100   	if (len == 1)
  14.101   	    return 8;
  14.102   
  14.103 @@ -356,9 +356,9 @@ Index: ioemu/vnc.c
  14.104       case 6:
  14.105  Index: ioemu/vl.c
  14.106  ===================================================================
  14.107 ---- ioemu.orig/vl.c	2007-05-03 20:23:03.000000000 +0100
  14.108 -+++ ioemu/vl.c	2007-05-03 20:23:30.000000000 +0100
  14.109 -@@ -812,6 +812,12 @@
  14.110 +--- ioemu.orig/vl.c	2007-05-10 15:18:01.000000000 +0100
  14.111 ++++ ioemu/vl.c	2007-05-10 15:18:58.000000000 +0100
  14.112 +@@ -811,6 +811,12 @@
  14.113       }
  14.114   }
  14.115   
  14.116 @@ -373,9 +373,9 @@ Index: ioemu/vl.c
  14.117   void qemu_mod_timer(QEMUTimer *ts, int64_t expire_time)
  14.118  Index: ioemu/vl.h
  14.119  ===================================================================
  14.120 ---- ioemu.orig/vl.h	2007-05-03 20:23:25.000000000 +0100
  14.121 -+++ ioemu/vl.h	2007-05-03 20:23:30.000000000 +0100
  14.122 -@@ -443,6 +443,7 @@
  14.123 +--- ioemu.orig/vl.h	2007-05-10 15:18:01.000000000 +0100
  14.124 ++++ ioemu/vl.h	2007-05-10 15:18:58.000000000 +0100
  14.125 +@@ -441,6 +441,7 @@
  14.126   void qemu_free_timer(QEMUTimer *ts);
  14.127   void qemu_del_timer(QEMUTimer *ts);
  14.128   void qemu_mod_timer(QEMUTimer *ts, int64_t expire_time);
    15.1 --- a/tools/ioemu/patches/vnc-display-find-unused	Thu May 10 15:58:35 2007 +0100
    15.2 +++ b/tools/ioemu/patches/vnc-display-find-unused	Thu May 10 16:05:31 2007 +0100
    15.3 @@ -1,8 +1,8 @@
    15.4  Index: ioemu/vnc.c
    15.5  ===================================================================
    15.6 ---- ioemu.orig/vnc.c	2007-05-09 14:12:04.000000000 +0100
    15.7 -+++ ioemu/vnc.c	2007-05-09 14:12:21.000000000 +0100
    15.8 -@@ -1270,7 +1270,7 @@
    15.9 +--- ioemu.orig/vnc.c	2007-05-10 15:11:41.000000000 +0100
   15.10 ++++ ioemu/vnc.c	2007-05-10 15:11:41.000000000 +0100
   15.11 +@@ -1266,7 +1266,7 @@
   15.12   
   15.13   extern int parse_host_port(struct sockaddr_in *saddr, const char *str);
   15.14   
   15.15 @@ -11,7 +11,7 @@ Index: ioemu/vnc.c
   15.16   {
   15.17       struct sockaddr *addr;
   15.18       struct sockaddr_in iaddr;
   15.19 -@@ -1312,6 +1312,9 @@
   15.20 +@@ -1308,6 +1308,9 @@
   15.21   
   15.22       vnc_dpy_resize(vs->ds, 640, 400);
   15.23   
   15.24 @@ -21,7 +21,7 @@ Index: ioemu/vnc.c
   15.25   #ifndef _WIN32
   15.26       if (strstart(arg, "unix:", &p)) {
   15.27   	addr = (struct sockaddr *)&uaddr;
   15.28 -@@ -1356,7 +1359,11 @@
   15.29 +@@ -1352,7 +1355,11 @@
   15.30   	}
   15.31       }
   15.32   
   15.33 @@ -34,7 +34,7 @@ Index: ioemu/vnc.c
   15.34   	fprintf(stderr, "bind() failed\n");
   15.35   	exit(1);
   15.36       }
   15.37 -@@ -1370,6 +1377,8 @@
   15.38 +@@ -1366,6 +1373,8 @@
   15.39       if (ret == -1) {
   15.40   	exit(1);
   15.41       }
   15.42 @@ -45,8 +45,8 @@ Index: ioemu/vnc.c
   15.43   int vnc_start_viewer(int port)
   15.44  Index: ioemu/vl.c
   15.45  ===================================================================
   15.46 ---- ioemu.orig/vl.c	2007-05-09 14:12:03.000000000 +0100
   15.47 -+++ ioemu/vl.c	2007-05-09 14:12:16.000000000 +0100
   15.48 +--- ioemu.orig/vl.c	2007-05-10 15:11:41.000000000 +0100
   15.49 ++++ ioemu/vl.c	2007-05-10 15:11:41.000000000 +0100
   15.50  @@ -132,6 +132,7 @@
   15.51   static DisplayState display_state;
   15.52   int nographic;
   15.53 @@ -130,8 +130,8 @@ Index: ioemu/vl.c
   15.54       }
   15.55  Index: ioemu/vl.h
   15.56  ===================================================================
   15.57 ---- ioemu.orig/vl.h	2007-05-09 14:12:03.000000000 +0100
   15.58 -+++ ioemu/vl.h	2007-05-09 14:12:16.000000000 +0100
   15.59 +--- ioemu.orig/vl.h	2007-05-10 15:11:41.000000000 +0100
   15.60 ++++ ioemu/vl.h	2007-05-10 15:11:41.000000000 +0100
   15.61  @@ -928,7 +928,7 @@
   15.62   void cocoa_display_init(DisplayState *ds, int full_screen);
   15.63   
    16.1 --- a/tools/ioemu/patches/vnc-fix-signedness	Thu May 10 15:58:35 2007 +0100
    16.2 +++ b/tools/ioemu/patches/vnc-fix-signedness	Thu May 10 16:05:31 2007 +0100
    16.3 @@ -8,9 +8,9 @@ Signed-off-by:  Anthony Liguori <aliguor
    16.4  
    16.5  Index: ioemu/vnc.c
    16.6  ===================================================================
    16.7 ---- ioemu.orig/vnc.c	2007-05-09 14:12:44.000000000 +0100
    16.8 -+++ ioemu/vnc.c	2007-05-09 14:12:45.000000000 +0100
    16.9 -@@ -54,12 +54,12 @@
   16.10 +--- ioemu.orig/vnc.c	2007-05-10 15:19:29.000000000 +0100
   16.11 ++++ ioemu/vnc.c	2007-05-10 15:19:30.000000000 +0100
   16.12 +@@ -50,12 +50,12 @@
   16.13   {
   16.14       size_t capacity;
   16.15       size_t offset;
   16.16 @@ -25,7 +25,7 @@ Index: ioemu/vnc.c
   16.17   
   16.18   typedef void VncWritePixels(VncState *vs, void *data, int size);
   16.19   
   16.20 -@@ -90,7 +90,7 @@
   16.21 +@@ -86,7 +86,7 @@
   16.22       uint64_t *update_row;	/* outstanding updates */
   16.23       int has_update;		/* there's outstanding updates in the
   16.24   				 * visible area */
   16.25 @@ -34,7 +34,7 @@ Index: ioemu/vnc.c
   16.26       int depth; /* internal VNC frame buffer byte per pixel */
   16.27       int has_resize;
   16.28       int has_hextile;
   16.29 -@@ -165,7 +165,7 @@
   16.30 +@@ -161,7 +161,7 @@
   16.31   static void vnc_update_client(void *opaque);
   16.32   static void vnc_client_read(void *opaque);
   16.33   static void framebuffer_set_updated(VncState *vs, int x, int y, int w, int h);
   16.34 @@ -43,7 +43,7 @@ Index: ioemu/vnc.c
   16.35   static void set_seed(unsigned int *seedp);
   16.36   static void get_random(int len, unsigned char *buf);
   16.37   
   16.38 -@@ -357,7 +357,7 @@
   16.39 +@@ -353,7 +353,7 @@
   16.40   static void send_framebuffer_update_raw(VncState *vs, int x, int y, int w, int h)
   16.41   {
   16.42       int i;
   16.43 @@ -52,7 +52,7 @@ Index: ioemu/vnc.c
   16.44   
   16.45       vnc_framebuffer_update(vs, x, y, w, h, 0);
   16.46   
   16.47 -@@ -421,9 +421,9 @@
   16.48 +@@ -417,9 +417,9 @@
   16.49   static void vnc_copy(DisplayState *ds, int src_x, int src_y, int dst_x, int dst_y, int w, int h)
   16.50   {
   16.51       int src, dst;
   16.52 @@ -65,7 +65,7 @@ Index: ioemu/vnc.c
   16.53       int y = 0;
   16.54       int pitch = ds->linesize;
   16.55       VncState *vs = ds->opaque;
   16.56 -@@ -492,8 +492,8 @@
   16.57 +@@ -488,8 +488,8 @@
   16.58       VncState *vs = opaque;
   16.59       int64_t now;
   16.60       int y;
   16.61 @@ -76,7 +76,7 @@ Index: ioemu/vnc.c
   16.62       uint64_t width_mask;
   16.63       int n_rectangles;
   16.64       int saved_offset;
   16.65 -@@ -518,7 +518,7 @@
   16.66 +@@ -514,7 +514,7 @@
   16.67       for (y = 0; y < vs->ds->height; y++) {
   16.68   	if (vs->dirty_row[y] & width_mask) {
   16.69   	    int x;
   16.70 @@ -85,7 +85,7 @@ Index: ioemu/vnc.c
   16.71   
   16.72   	    ptr = row;
   16.73   	    old_ptr = old_row;
   16.74 -@@ -681,7 +681,7 @@
   16.75 +@@ -677,7 +677,7 @@
   16.76       return buffer->offset == 0;
   16.77   }
   16.78   
   16.79 @@ -94,7 +94,7 @@ Index: ioemu/vnc.c
   16.80   {
   16.81       return buffer->buffer + buffer->offset;
   16.82   }
   16.83 -@@ -815,7 +815,7 @@
   16.84 +@@ -811,7 +811,7 @@
   16.85   
   16.86   static void vnc_write_u8(VncState *vs, uint8_t value)
   16.87   {
   16.88 @@ -103,7 +103,7 @@ Index: ioemu/vnc.c
   16.89   }
   16.90   
   16.91   static void vnc_flush(VncState *vs)
   16.92 -@@ -1139,11 +1139,10 @@
   16.93 +@@ -1135,11 +1135,10 @@
   16.94       vga_hw_update();
   16.95   }
   16.96   
   16.97 @@ -116,7 +116,7 @@ Index: ioemu/vnc.c
   16.98   
   16.99       switch (data[0]) {
  16.100       case 0:
  16.101 -@@ -1212,7 +1211,7 @@
  16.102 +@@ -1208,7 +1207,7 @@
  16.103   		return 8 + v;
  16.104   	}
  16.105   
  16.106 @@ -125,7 +125,7 @@ Index: ioemu/vnc.c
  16.107   	break;
  16.108       default:
  16.109   	printf("Msg: %d\n", data[0]);
  16.110 -@@ -1224,7 +1223,7 @@
  16.111 +@@ -1220,7 +1219,7 @@
  16.112       return 0;
  16.113   }
  16.114   
  16.115 @@ -134,7 +134,7 @@ Index: ioemu/vnc.c
  16.116   {
  16.117       size_t l;
  16.118       char pad[3] = { 0, 0, 0 };
  16.119 -@@ -1285,7 +1284,7 @@
  16.120 +@@ -1281,7 +1280,7 @@
  16.121       return 0;
  16.122   }
  16.123   
  16.124 @@ -143,7 +143,7 @@ Index: ioemu/vnc.c
  16.125   {
  16.126       extern char vncpasswd[64];
  16.127       extern unsigned char challenge[AUTHCHALLENGESIZE];
  16.128 -@@ -1323,7 +1322,7 @@
  16.129 +@@ -1319,7 +1318,7 @@
  16.130       return 0;
  16.131   }
  16.132   
  16.133 @@ -152,7 +152,7 @@ Index: ioemu/vnc.c
  16.134   {
  16.135       extern char vncpasswd[64];
  16.136       extern unsigned char challenge[AUTHCHALLENGESIZE];
  16.137 -@@ -1538,7 +1537,7 @@
  16.138 +@@ -1535,7 +1534,7 @@
  16.139   
  16.140   unsigned int seed;
  16.141   
  16.142 @@ -163,8 +163,8 @@ Index: ioemu/vnc.c
  16.143       set_seed(&seed);
  16.144  Index: ioemu/vnchextile.h
  16.145  ===================================================================
  16.146 ---- ioemu.orig/vnchextile.h	2007-05-09 14:12:15.000000000 +0100
  16.147 -+++ ioemu/vnchextile.h	2007-05-09 14:12:45.000000000 +0100
  16.148 +--- ioemu.orig/vnchextile.h	2007-05-10 15:17:54.000000000 +0100
  16.149 ++++ ioemu/vnchextile.h	2007-05-10 15:19:30.000000000 +0100
  16.150  @@ -13,7 +13,7 @@
  16.151                                                uint32_t *last_fg32,
  16.152                                                int *has_bg, int *has_fg)
    17.1 --- a/tools/ioemu/patches/vnc-fix-version-check	Thu May 10 15:58:35 2007 +0100
    17.2 +++ b/tools/ioemu/patches/vnc-fix-version-check	Thu May 10 16:05:31 2007 +0100
    17.3 @@ -1,8 +1,8 @@
    17.4  Index: ioemu/vnc.c
    17.5  ===================================================================
    17.6 ---- ioemu.orig/vnc.c	2007-05-03 20:53:32.000000000 +0100
    17.7 -+++ ioemu/vnc.c	2007-05-03 20:53:59.000000000 +0100
    17.8 -@@ -1341,7 +1341,7 @@
    17.9 +--- ioemu.orig/vnc.c	2007-05-10 15:11:44.000000000 +0100
   17.10 ++++ ioemu/vnc.c	2007-05-10 15:11:44.000000000 +0100
   17.11 +@@ -1337,7 +1337,7 @@
   17.12   
   17.13   
   17.14       support = 0;
    18.1 --- a/tools/ioemu/patches/vnc-password	Thu May 10 15:58:35 2007 +0100
    18.2 +++ b/tools/ioemu/patches/vnc-password	Thu May 10 16:05:31 2007 +0100
    18.3 @@ -17,8 +17,8 @@ Signed-off-by: Masami Watanabe <masami.w
    18.4  
    18.5  Index: ioemu/Makefile.target
    18.6  ===================================================================
    18.7 ---- ioemu.orig/Makefile.target	2007-05-09 14:12:44.000000000 +0100
    18.8 -+++ ioemu/Makefile.target	2007-05-09 14:12:44.000000000 +0100
    18.9 +--- ioemu.orig/Makefile.target	2007-05-10 15:35:24.000000000 +0100
   18.10 ++++ ioemu/Makefile.target	2007-05-10 15:35:24.000000000 +0100
   18.11  @@ -443,6 +443,7 @@
   18.12   VL_OBJS+=sdl.o x_keymap.o
   18.13   endif
   18.14 @@ -39,9 +39,9 @@ Index: ioemu/Makefile.target
   18.15   
   18.16  Index: ioemu/vl.c
   18.17  ===================================================================
   18.18 ---- ioemu.orig/vl.c	2007-05-09 14:12:44.000000000 +0100
   18.19 -+++ ioemu/vl.c	2007-05-09 14:12:44.000000000 +0100
   18.20 -@@ -189,6 +189,9 @@
   18.21 +--- ioemu.orig/vl.c	2007-05-10 15:35:16.000000000 +0100
   18.22 ++++ ioemu/vl.c	2007-05-10 15:35:24.000000000 +0100
   18.23 +@@ -186,6 +186,9 @@
   18.24   char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
   18.25   extern int domid;
   18.26   
   18.27 @@ -51,7 +51,7 @@ Index: ioemu/vl.c
   18.28   /***********************************************************/
   18.29   /* x86 ISA bus support */
   18.30   
   18.31 -@@ -6897,6 +6900,7 @@
   18.32 +@@ -6882,6 +6885,7 @@
   18.33       vncunused = 0;
   18.34       kernel_filename = NULL;
   18.35       kernel_cmdline = "";
   18.36 @@ -59,7 +59,7 @@ Index: ioemu/vl.c
   18.37   #ifndef CONFIG_DM
   18.38   #ifdef TARGET_PPC
   18.39       cdrom_index = 1;
   18.40 -@@ -7644,6 +7648,10 @@
   18.41 +@@ -7621,6 +7625,10 @@
   18.42   
   18.43       init_ioports();
   18.44   
   18.45 @@ -72,9 +72,9 @@ Index: ioemu/vl.c
   18.46           dumb_display_init(ds);
   18.47  Index: ioemu/vl.h
   18.48  ===================================================================
   18.49 ---- ioemu.orig/vl.h	2007-05-09 14:12:44.000000000 +0100
   18.50 -+++ ioemu/vl.h	2007-05-09 14:12:44.000000000 +0100
   18.51 -@@ -1434,6 +1434,7 @@
   18.52 +--- ioemu.orig/vl.h	2007-05-10 15:35:24.000000000 +0100
   18.53 ++++ ioemu/vl.h	2007-05-10 15:35:24.000000000 +0100
   18.54 +@@ -1432,6 +1432,7 @@
   18.55   void xenstore_process_event(void *opaque);
   18.56   void xenstore_check_new_media_present(int timeout);
   18.57   void xenstore_write_vncport(int vnc_display);
   18.58 @@ -82,7 +82,7 @@ Index: ioemu/vl.h
   18.59   
   18.60   int xenstore_vm_write(int domid, char *key, char *val);
   18.61   char *xenstore_vm_read(int domid, char *key, int *len);
   18.62 -@@ -1452,4 +1453,7 @@
   18.63 +@@ -1450,4 +1451,7 @@
   18.64   
   18.65   void destroy_hvm_domain(void);
   18.66   
   18.67 @@ -92,17 +92,17 @@ Index: ioemu/vl.h
   18.68   #endif /* VL_H */
   18.69  Index: ioemu/vnc.c
   18.70  ===================================================================
   18.71 ---- ioemu.orig/vnc.c	2007-05-09 14:12:43.000000000 +0100
   18.72 -+++ ioemu/vnc.c	2007-05-09 14:12:44.000000000 +0100
   18.73 +--- ioemu.orig/vnc.c	2007-05-10 15:32:53.000000000 +0100
   18.74 ++++ ioemu/vnc.c	2007-05-10 15:35:24.000000000 +0100
   18.75  @@ -44,6 +44,7 @@
   18.76   
   18.77   #include "vnc_keysym.h"
   18.78   #include "keymaps.c"
   18.79  +#include "d3des.h"
   18.80   
   18.81 - #define XK_MISCELLANY
   18.82 - #define XK_LATIN1
   18.83 -@@ -164,6 +165,9 @@
   18.84 + typedef struct Buffer
   18.85 + {
   18.86 +@@ -160,6 +161,9 @@
   18.87   static void vnc_update_client(void *opaque);
   18.88   static void vnc_client_read(void *opaque);
   18.89   static void framebuffer_set_updated(VncState *vs, int x, int y, int w, int h);
   18.90 @@ -112,7 +112,7 @@ Index: ioemu/vnc.c
   18.91   
   18.92   #if 0
   18.93   static inline void vnc_set_bit(uint32_t *d, int k)
   18.94 -@@ -1281,23 +1285,92 @@
   18.95 +@@ -1277,23 +1281,92 @@
   18.96       return 0;
   18.97   }
   18.98   
   18.99 @@ -209,7 +209,7 @@ Index: ioemu/vnc.c
  18.100   
  18.101       return 0;
  18.102   }
  18.103 -@@ -1462,3 +1535,32 @@
  18.104 +@@ -1459,3 +1532,32 @@
  18.105   	return pid;
  18.106       }
  18.107   }
  18.108 @@ -244,8 +244,8 @@ Index: ioemu/vnc.c
  18.109  +}
  18.110  Index: ioemu/xenstore.c
  18.111  ===================================================================
  18.112 ---- ioemu.orig/xenstore.c	2007-05-09 14:12:43.000000000 +0100
  18.113 -+++ ioemu/xenstore.c	2007-05-09 14:12:44.000000000 +0100
  18.114 +--- ioemu.orig/xenstore.c	2007-05-10 15:32:53.000000000 +0100
  18.115 ++++ ioemu/xenstore.c	2007-05-10 15:35:24.000000000 +0100
  18.116  @@ -253,6 +253,57 @@
  18.117       free(buf);
  18.118   }
  18.119 @@ -307,7 +307,7 @@ Index: ioemu/xenstore.c
  18.120  Index: ioemu/d3des.c
  18.121  ===================================================================
  18.122  --- /dev/null	1970-01-01 00:00:00.000000000 +0000
  18.123 -+++ ioemu/d3des.c	2007-05-09 14:12:44.000000000 +0100
  18.124 ++++ ioemu/d3des.c	2007-05-10 15:35:24.000000000 +0100
  18.125  @@ -0,0 +1,434 @@
  18.126  +/*
  18.127  + * This is D3DES (V5.09) by Richard Outerbridge with the double and
  18.128 @@ -746,7 +746,7 @@ Index: ioemu/d3des.c
  18.129  Index: ioemu/d3des.h
  18.130  ===================================================================
  18.131  --- /dev/null	1970-01-01 00:00:00.000000000 +0000
  18.132 -+++ ioemu/d3des.h	2007-05-09 14:12:44.000000000 +0100
  18.133 ++++ ioemu/d3des.h	2007-05-10 15:35:24.000000000 +0100
  18.134  @@ -0,0 +1,51 @@
  18.135  +/*
  18.136  + * This is D3DES (V5.09) by Richard Outerbridge with the double and
    19.1 --- a/tools/ioemu/patches/xen-mapcache	Thu May 10 15:58:35 2007 +0100
    19.2 +++ b/tools/ioemu/patches/xen-mapcache	Thu May 10 16:05:31 2007 +0100
    19.3 @@ -17,9 +17,9 @@ Signed-off-by: Keir Fraser <keir@xensour
    19.4  
    19.5  Index: ioemu/vl.c
    19.6  ===================================================================
    19.7 ---- ioemu.orig/vl.c	2007-05-09 13:49:09.000000000 +0100
    19.8 -+++ ioemu/vl.c	2007-05-09 13:49:10.000000000 +0100
    19.9 -@@ -278,7 +278,7 @@
   19.10 +--- ioemu.orig/vl.c	2007-05-10 15:35:25.000000000 +0100
   19.11 ++++ ioemu/vl.c	2007-05-10 15:35:25.000000000 +0100
   19.12 +@@ -275,7 +275,7 @@
   19.13       for(i = start; i < start + length; i += size) {
   19.14           ioport_read_table[bsize][i] = func;
   19.15           if (ioport_opaque[i] != NULL && ioport_opaque[i] != opaque)
   19.16 @@ -28,7 +28,7 @@ Index: ioemu/vl.c
   19.17           ioport_opaque[i] = opaque;
   19.18       }
   19.19       return 0;
   19.20 -@@ -6806,6 +6806,157 @@
   19.21 +@@ -6791,6 +6791,157 @@
   19.22       suspend_requested = 1;
   19.23   }
   19.24   
   19.25 @@ -186,7 +186,7 @@ Index: ioemu/vl.c
   19.26   int main(int argc, char **argv)
   19.27   {
   19.28   #ifdef CONFIG_GDBSTUB
   19.29 -@@ -6842,8 +6993,11 @@
   19.30 +@@ -6827,8 +6978,11 @@
   19.31       unsigned long ioreq_pfn;
   19.32       extern void *shared_page;
   19.33       extern void *buffered_io_page;
   19.34 @@ -199,7 +199,7 @@ Index: ioemu/vl.c
   19.35   
   19.36       char qemu_dm_logfilename[64];
   19.37   
   19.38 -@@ -7136,6 +7290,7 @@
   19.39 +@@ -7119,6 +7273,7 @@
   19.40                   break;
   19.41               case QEMU_OPTION_m:
   19.42                   ram_size = atol(optarg) * 1024 * 1024;
   19.43 @@ -207,7 +207,7 @@ Index: ioemu/vl.c
   19.44                   if (ram_size <= 0)
   19.45                       help();
   19.46   #ifndef CONFIG_DM
   19.47 -@@ -7495,30 +7650,15 @@
   19.48 +@@ -7472,30 +7627,15 @@
   19.49   
   19.50   #if defined(__i386__) || defined(__x86_64__)
   19.51   
   19.52 @@ -241,7 +241,7 @@ Index: ioemu/vl.c
   19.53       if (shared_page == NULL) {
   19.54           fprintf(logfile, "map shared IO page returned error %d\n", errno);
   19.55           exit(-1);
   19.56 -@@ -7527,15 +7667,12 @@
   19.57 +@@ -7504,15 +7644,12 @@
   19.58       xc_get_hvm_param(xc_handle, domid, HVM_PARAM_BUFIOREQ_PFN, &ioreq_pfn);
   19.59       fprintf(logfile, "buffered io page at pfn %lx\n", ioreq_pfn);
   19.60       buffered_io_page = xc_map_foreign_range(xc_handle, domid, PAGE_SIZE,
   19.61 @@ -260,8 +260,8 @@ Index: ioemu/vl.c
   19.62       nr_pages = ram_size/PAGE_SIZE;
   19.63  Index: ioemu/target-i386-dm/exec-dm.c
   19.64  ===================================================================
   19.65 ---- ioemu.orig/target-i386-dm/exec-dm.c	2007-05-09 13:48:54.000000000 +0100
   19.66 -+++ ioemu/target-i386-dm/exec-dm.c	2007-05-09 13:49:10.000000000 +0100
   19.67 +--- ioemu.orig/target-i386-dm/exec-dm.c	2007-05-10 15:32:53.000000000 +0100
   19.68 ++++ ioemu/target-i386-dm/exec-dm.c	2007-05-10 15:35:25.000000000 +0100
   19.69  @@ -36,6 +36,7 @@
   19.70   
   19.71   #include "cpu.h"
   19.72 @@ -380,9 +380,9 @@ Index: ioemu/target-i386-dm/exec-dm.c
   19.73   
   19.74  Index: ioemu/vl.h
   19.75  ===================================================================
   19.76 ---- ioemu.orig/vl.h	2007-05-09 13:49:09.000000000 +0100
   19.77 -+++ ioemu/vl.h	2007-05-09 13:49:10.000000000 +0100
   19.78 -@@ -161,6 +161,28 @@
   19.79 +--- ioemu.orig/vl.h	2007-05-10 15:35:25.000000000 +0100
   19.80 ++++ ioemu/vl.h	2007-05-10 15:35:25.000000000 +0100
   19.81 +@@ -159,6 +159,28 @@
   19.82   
   19.83   extern FILE *logfile;
   19.84   
   19.85 @@ -413,8 +413,8 @@ Index: ioemu/vl.h
   19.86   
   19.87  Index: ioemu/target-i386-dm/cpu.h
   19.88  ===================================================================
   19.89 ---- ioemu.orig/target-i386-dm/cpu.h	2007-05-09 13:48:54.000000000 +0100
   19.90 -+++ ioemu/target-i386-dm/cpu.h	2007-05-09 13:49:10.000000000 +0100
   19.91 +--- ioemu.orig/target-i386-dm/cpu.h	2007-05-10 15:32:53.000000000 +0100
   19.92 ++++ ioemu/target-i386-dm/cpu.h	2007-05-10 15:35:25.000000000 +0100
   19.93  @@ -25,7 +25,8 @@
   19.94   #ifdef TARGET_X86_64
   19.95   #define TARGET_LONG_BITS 64
   19.96 @@ -427,8 +427,8 @@ Index: ioemu/target-i386-dm/cpu.h
   19.97   /* target supports implicit self modifying code */
   19.98  Index: ioemu/target-i386-dm/helper2.c
   19.99  ===================================================================
  19.100 ---- ioemu.orig/target-i386-dm/helper2.c	2007-05-09 13:48:54.000000000 +0100
  19.101 -+++ ioemu/target-i386-dm/helper2.c	2007-05-09 13:49:10.000000000 +0100
  19.102 +--- ioemu.orig/target-i386-dm/helper2.c	2007-05-10 15:34:24.000000000 +0100
  19.103 ++++ ioemu/target-i386-dm/helper2.c	2007-05-10 15:35:25.000000000 +0100
  19.104  @@ -526,6 +526,9 @@
  19.105       case IOREQ_TYPE_TIMEOFFSET:
  19.106           cpu_ioreq_timeoffset(env, req);
    20.1 --- a/tools/ioemu/patches/xen-platform-device	Thu May 10 15:58:35 2007 +0100
    20.2 +++ b/tools/ioemu/patches/xen-platform-device	Thu May 10 16:05:31 2007 +0100
    20.3 @@ -3,8 +3,8 @@ will come later.
    20.4  
    20.5  Index: ioemu/Makefile.target
    20.6  ===================================================================
    20.7 ---- ioemu.orig/Makefile.target	2007-05-09 13:56:21.000000000 +0100
    20.8 -+++ ioemu/Makefile.target	2007-05-09 13:56:35.000000000 +0100
    20.9 +--- ioemu.orig/Makefile.target	2007-05-10 15:19:05.000000000 +0100
   20.10 ++++ ioemu/Makefile.target	2007-05-10 15:19:28.000000000 +0100
   20.11  @@ -391,6 +391,7 @@
   20.12   VL_OBJS+= usb-uhci.o smbus_eeprom.o
   20.13   VL_OBJS+= piix4acpi.o
   20.14 @@ -15,8 +15,8 @@ Index: ioemu/Makefile.target
   20.15   ifeq ($(TARGET_BASE_ARCH), ppc)
   20.16  Index: ioemu/hw/pc.c
   20.17  ===================================================================
   20.18 ---- ioemu.orig/hw/pc.c	2007-05-09 13:56:21.000000000 +0100
   20.19 -+++ ioemu/hw/pc.c	2007-05-09 13:56:35.000000000 +0100
   20.20 +--- ioemu.orig/hw/pc.c	2007-05-10 15:19:11.000000000 +0100
   20.21 ++++ ioemu/hw/pc.c	2007-05-10 15:19:28.000000000 +0100
   20.22  @@ -676,6 +676,9 @@
   20.23       }
   20.24   #endif /* !CONFIG_DM */
   20.25 @@ -30,7 +30,7 @@ Index: ioemu/hw/pc.c
   20.26  Index: ioemu/hw/xen_platform.c
   20.27  ===================================================================
   20.28  --- /dev/null	1970-01-01 00:00:00.000000000 +0000
   20.29 -+++ ioemu/hw/xen_platform.c	2007-05-09 13:56:47.000000000 +0100
   20.30 ++++ ioemu/hw/xen_platform.c	2007-05-10 15:19:28.000000000 +0100
   20.31  @@ -0,0 +1,150 @@
   20.32  +/*
   20.33  + * XEN platform fake pci device, formerly known as the event channel device
   20.34 @@ -184,9 +184,9 @@ Index: ioemu/hw/xen_platform.c
   20.35  +}
   20.36  Index: ioemu/vl.h
   20.37  ===================================================================
   20.38 ---- ioemu.orig/vl.h	2007-05-09 13:56:21.000000000 +0100
   20.39 -+++ ioemu/vl.h	2007-05-09 13:56:35.000000000 +0100
   20.40 -@@ -1439,6 +1439,10 @@
   20.41 +--- ioemu.orig/vl.h	2007-05-10 15:19:11.000000000 +0100
   20.42 ++++ ioemu/vl.h	2007-05-10 15:19:28.000000000 +0100
   20.43 +@@ -1437,6 +1437,10 @@
   20.44   extern long time_offset;
   20.45   void timeoffset_get(void);
   20.46   
    21.1 --- a/tools/ioemu/patches/xen-support-buffered-ioreqs	Thu May 10 15:58:35 2007 +0100
    21.2 +++ b/tools/ioemu/patches/xen-support-buffered-ioreqs	Thu May 10 16:05:31 2007 +0100
    21.3 @@ -1,8 +1,8 @@
    21.4  Index: ioemu/vl.c
    21.5  ===================================================================
    21.6 ---- ioemu.orig/vl.c	2007-05-09 13:47:16.000000000 +0100
    21.7 -+++ ioemu/vl.c	2007-05-09 13:47:16.000000000 +0100
    21.8 -@@ -6838,6 +6838,7 @@
    21.9 +--- ioemu.orig/vl.c	2007-05-10 15:34:19.000000000 +0100
   21.10 ++++ ioemu/vl.c	2007-05-10 15:34:24.000000000 +0100
   21.11 +@@ -6823,6 +6823,7 @@
   21.12       int fds[2];
   21.13       unsigned long ioreq_pfn;
   21.14       extern void *shared_page;
   21.15 @@ -10,7 +10,7 @@ Index: ioemu/vl.c
   21.16       unsigned long nr_pages;
   21.17   
   21.18       char qemu_dm_logfilename[64];
   21.19 -@@ -7513,6 +7514,16 @@
   21.20 +@@ -7490,6 +7491,16 @@
   21.21           exit(-1);
   21.22       }
   21.23   
   21.24 @@ -29,8 +29,8 @@ Index: ioemu/vl.c
   21.25   #elif defined(__ia64__)
   21.26  Index: ioemu/target-i386-dm/helper2.c
   21.27  ===================================================================
   21.28 ---- ioemu.orig/target-i386-dm/helper2.c	2007-05-09 13:47:16.000000000 +0100
   21.29 -+++ ioemu/target-i386-dm/helper2.c	2007-05-09 13:47:16.000000000 +0100
   21.30 +--- ioemu.orig/target-i386-dm/helper2.c	2007-05-10 15:34:19.000000000 +0100
   21.31 ++++ ioemu/target-i386-dm/helper2.c	2007-05-10 15:34:24.000000000 +0100
   21.32  @@ -78,6 +78,10 @@
   21.33   
   21.34   shared_iopage_t *shared_page = NULL;
    22.1 --- a/tools/ioemu/patches/xenstore	Thu May 10 15:58:35 2007 +0100
    22.2 +++ b/tools/ioemu/patches/xenstore	Thu May 10 16:05:31 2007 +0100
    22.3 @@ -1,7 +1,7 @@
    22.4  Index: ioemu/xenstore.c
    22.5  ===================================================================
    22.6  --- /dev/null	1970-01-01 00:00:00.000000000 +0000
    22.7 -+++ ioemu/xenstore.c	2007-05-09 13:47:15.000000000 +0100
    22.8 ++++ ioemu/xenstore.c	2007-05-10 15:19:05.000000000 +0100
    22.9  @@ -0,0 +1,139 @@
   22.10  +/*
   22.11  + * This file is subject to the terms and conditions of the GNU General
   22.12 @@ -144,9 +144,9 @@ Index: ioemu/xenstore.c
   22.13  +}
   22.14  Index: ioemu/vl.h
   22.15  ===================================================================
   22.16 ---- ioemu.orig/vl.h	2007-05-09 13:47:15.000000000 +0100
   22.17 -+++ ioemu/vl.h	2007-05-09 13:47:15.000000000 +0100
   22.18 -@@ -1423,6 +1423,12 @@
   22.19 +--- ioemu.orig/vl.h	2007-05-10 15:18:58.000000000 +0100
   22.20 ++++ ioemu/vl.h	2007-05-10 15:19:05.000000000 +0100
   22.21 +@@ -1421,6 +1421,12 @@
   22.22   void readline_start(const char *prompt, int is_password,
   22.23                       ReadLineFunc *readline_func, void *opaque);
   22.24   
   22.25 @@ -161,8 +161,8 @@ Index: ioemu/vl.h
   22.26   extern char domain_name[];
   22.27  Index: ioemu/Makefile.target
   22.28  ===================================================================
   22.29 ---- ioemu.orig/Makefile.target	2007-05-09 13:44:51.000000000 +0100
   22.30 -+++ ioemu/Makefile.target	2007-05-09 13:47:15.000000000 +0100
   22.31 +--- ioemu.orig/Makefile.target	2007-05-10 15:17:54.000000000 +0100
   22.32 ++++ ioemu/Makefile.target	2007-05-10 15:19:05.000000000 +0100
   22.33  @@ -390,6 +390,7 @@
   22.34   VL_OBJS+= cirrus_vga.o mixeng.o parallel.o acpi.o piix_pci.o
   22.35   VL_OBJS+= usb-uhci.o smbus_eeprom.o
   22.36 @@ -173,9 +173,9 @@ Index: ioemu/Makefile.target
   22.37   ifeq ($(TARGET_BASE_ARCH), ppc)
   22.38  Index: ioemu/vl.c
   22.39  ===================================================================
   22.40 ---- ioemu.orig/vl.c	2007-05-09 13:47:15.000000000 +0100
   22.41 -+++ ioemu/vl.c	2007-05-09 13:47:15.000000000 +0100
   22.42 -@@ -7353,6 +7353,10 @@
   22.43 +--- ioemu.orig/vl.c	2007-05-10 15:18:58.000000000 +0100
   22.44 ++++ ioemu/vl.c	2007-05-10 15:19:05.000000000 +0100
   22.45 +@@ -7338,6 +7338,10 @@
   22.46       }
   22.47   #endif
   22.48   
   22.49 @@ -186,7 +186,7 @@ Index: ioemu/vl.c
   22.50   #ifdef USE_KQEMU
   22.51       if (smp_cpus > 1)
   22.52           kqemu_allowed = 0;
   22.53 -@@ -7643,6 +7647,8 @@
   22.54 +@@ -7627,6 +7631,8 @@
   22.55           }
   22.56       }
   22.57   
    23.1 --- a/tools/ioemu/patches/xenstore-block-device-config	Thu May 10 15:58:35 2007 +0100
    23.2 +++ b/tools/ioemu/patches/xenstore-block-device-config	Thu May 10 16:05:31 2007 +0100
    23.3 @@ -1,7 +1,7 @@
    23.4  Index: ioemu/xenstore.c
    23.5  ===================================================================
    23.6 ---- ioemu.orig/xenstore.c	2007-05-09 13:47:15.000000000 +0100
    23.7 -+++ ioemu/xenstore.c	2007-05-09 13:47:15.000000000 +0100
    23.8 +--- ioemu.orig/xenstore.c	2007-05-10 15:19:05.000000000 +0100
    23.9 ++++ ioemu/xenstore.c	2007-05-10 15:19:05.000000000 +0100
   23.10  @@ -9,8 +9,15 @@
   23.11    */
   23.12   
   23.13 @@ -206,9 +206,9 @@ Index: ioemu/xenstore.c
   23.14   
   23.15  Index: ioemu/vl.c
   23.16  ===================================================================
   23.17 ---- ioemu.orig/vl.c	2007-05-09 13:47:15.000000000 +0100
   23.18 -+++ ioemu/vl.c	2007-05-09 13:47:15.000000000 +0100
   23.19 -@@ -6220,9 +6220,11 @@
   23.20 +--- ioemu.orig/vl.c	2007-05-10 15:19:05.000000000 +0100
   23.21 ++++ ioemu/vl.c	2007-05-10 15:19:05.000000000 +0100
   23.22 +@@ -6213,9 +6213,11 @@
   23.23              "Standard options:\n"
   23.24              "-M machine      select emulated machine (-M ? for list)\n"
   23.25              "-fda/-fdb file  use 'file' as floppy disk 0/1 image\n"
   23.26 @@ -220,7 +220,7 @@ Index: ioemu/vl.c
   23.27              "-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)\n"
   23.28              "-snapshot       write to temporary files instead of disk image files\n"
   23.29   #ifdef CONFIG_SDL
   23.30 -@@ -6358,11 +6360,13 @@
   23.31 +@@ -6350,11 +6352,13 @@
   23.32       QEMU_OPTION_M,
   23.33       QEMU_OPTION_fda,
   23.34       QEMU_OPTION_fdb,
   23.35 @@ -234,7 +234,7 @@ Index: ioemu/vl.c
   23.36       QEMU_OPTION_boot,
   23.37       QEMU_OPTION_snapshot,
   23.38   #ifdef TARGET_I386
   23.39 -@@ -6440,11 +6444,13 @@
   23.40 +@@ -6431,11 +6435,13 @@
   23.41       { "M", HAS_ARG, QEMU_OPTION_M },
   23.42       { "fda", HAS_ARG, QEMU_OPTION_fda },
   23.43       { "fdb", HAS_ARG, QEMU_OPTION_fdb },
   23.44 @@ -248,7 +248,7 @@ Index: ioemu/vl.c
   23.45       { "boot", HAS_ARG, QEMU_OPTION_boot },
   23.46       { "snapshot", 0, QEMU_OPTION_snapshot },
   23.47   #ifdef TARGET_I386
   23.48 -@@ -6797,10 +6803,16 @@
   23.49 +@@ -6787,10 +6793,16 @@
   23.50   #ifdef CONFIG_GDBSTUB
   23.51       int use_gdbstub, gdbstub_port;
   23.52   #endif
   23.53 @@ -267,7 +267,7 @@ Index: ioemu/vl.c
   23.54       const char *kernel_filename, *kernel_cmdline;
   23.55       DisplayState *ds = &display_state;
   23.56       int cyls, heads, secs, translation;
   23.57 -@@ -6861,8 +6873,10 @@
   23.58 +@@ -6851,8 +6863,10 @@
   23.59       initrd_filename = NULL;
   23.60       for(i = 0; i < MAX_FD; i++)
   23.61           fd_filename[i] = NULL;
   23.62 @@ -278,7 +278,7 @@ Index: ioemu/vl.c
   23.63       ram_size = DEFAULT_RAM_SIZE * 1024 * 1024;
   23.64       vga_ram_size = VGA_RAM_SIZE;
   23.65       bios_size = BIOS_SIZE;
   23.66 -@@ -6876,11 +6890,13 @@
   23.67 +@@ -6866,11 +6880,13 @@
   23.68       vncunused = 0;
   23.69       kernel_filename = NULL;
   23.70       kernel_cmdline = "";
   23.71 @@ -292,7 +292,7 @@ Index: ioemu/vl.c
   23.72       cyls = heads = secs = 0;
   23.73       translation = BIOS_ATA_TRANSLATION_AUTO;
   23.74       pstrcpy(monitor_device, sizeof(monitor_device), "null");
   23.75 -@@ -6919,7 +6935,11 @@
   23.76 +@@ -6907,7 +6923,11 @@
   23.77               break;
   23.78           r = argv[optind];
   23.79           if (r[0] != '-') {
   23.80 @@ -304,7 +304,7 @@ Index: ioemu/vl.c
   23.81           } else {
   23.82               const QEMUOption *popt;
   23.83   
   23.84 -@@ -6966,6 +6986,7 @@
   23.85 +@@ -6954,6 +6974,7 @@
   23.86               case QEMU_OPTION_initrd:
   23.87                   initrd_filename = optarg;
   23.88                   break;
   23.89 @@ -312,7 +312,7 @@ Index: ioemu/vl.c
   23.90               case QEMU_OPTION_hda:
   23.91               case QEMU_OPTION_hdb:
   23.92               case QEMU_OPTION_hdc:
   23.93 -@@ -6978,6 +6999,7 @@
   23.94 +@@ -6966,6 +6987,7 @@
   23.95                           cdrom_index = -1;
   23.96                   }
   23.97                   break;
   23.98 @@ -320,7 +320,7 @@ Index: ioemu/vl.c
   23.99               case QEMU_OPTION_snapshot:
  23.100                   snapshot = 1;
  23.101                   break;
  23.102 -@@ -7030,11 +7052,13 @@
  23.103 +@@ -7018,11 +7040,13 @@
  23.104               case QEMU_OPTION_append:
  23.105                   kernel_cmdline = optarg;
  23.106                   break;
  23.107 @@ -334,7 +334,7 @@ Index: ioemu/vl.c
  23.108               case QEMU_OPTION_boot:
  23.109                   boot_device = optarg[0];
  23.110                   if (boot_device != 'a' && 
  23.111 -@@ -7354,6 +7378,7 @@
  23.112 +@@ -7339,6 +7363,7 @@
  23.113   #endif
  23.114   
  23.115   #ifdef CONFIG_DM
  23.116 @@ -342,7 +342,7 @@ Index: ioemu/vl.c
  23.117       xenstore_parse_domain_config(domid);
  23.118   #endif /* CONFIG_DM */
  23.119   
  23.120 -@@ -7363,6 +7388,7 @@
  23.121 +@@ -7348,6 +7373,7 @@
  23.122   #endif
  23.123       linux_boot = (kernel_filename != NULL);
  23.124   
  23.125 @@ -350,7 +350,7 @@ Index: ioemu/vl.c
  23.126       if (!linux_boot &&
  23.127           hd_filename[0] == '\0' && 
  23.128           (cdrom_index >= 0 && hd_filename[cdrom_index] == '\0') &&
  23.129 -@@ -7376,6 +7402,7 @@
  23.130 +@@ -7361,6 +7387,7 @@
  23.131           else
  23.132               boot_device = 'd';
  23.133       }
  23.134 @@ -358,7 +358,7 @@ Index: ioemu/vl.c
  23.135   
  23.136       setvbuf(stdout, NULL, _IOLBF, 0);
  23.137       
  23.138 -@@ -7528,6 +7555,7 @@
  23.139 +@@ -7513,6 +7540,7 @@
  23.140   
  23.141   #endif /* !CONFIG_DM */
  23.142   
  23.143 @@ -366,7 +366,7 @@ Index: ioemu/vl.c
  23.144       /* we always create the cdrom drive, even if no disk is there */
  23.145       bdrv_init();
  23.146       if (cdrom_index >= 0) {
  23.147 -@@ -7554,6 +7582,7 @@
  23.148 +@@ -7539,6 +7567,7 @@
  23.149               }
  23.150           }
  23.151       }
  23.152 @@ -376,8 +376,8 @@ Index: ioemu/vl.c
  23.153       fd_table[0] = bdrv_new("fda");
  23.154  Index: ioemu/monitor.c
  23.155  ===================================================================
  23.156 ---- ioemu.orig/monitor.c	2007-05-09 13:44:51.000000000 +0100
  23.157 -+++ ioemu/monitor.c	2007-05-09 13:47:15.000000000 +0100
  23.158 +--- ioemu.orig/monitor.c	2007-05-10 15:17:54.000000000 +0100
  23.159 ++++ ioemu/monitor.c	2007-05-10 15:19:05.000000000 +0100
  23.160  @@ -24,6 +24,7 @@
  23.161   #include "vl.h"
  23.162   #include "disas.h"
  23.163 @@ -406,9 +406,9 @@ Index: ioemu/monitor.c
  23.164       int i;
  23.165  Index: ioemu/vl.h
  23.166  ===================================================================
  23.167 ---- ioemu.orig/vl.h	2007-05-09 13:47:15.000000000 +0100
  23.168 -+++ ioemu/vl.h	2007-05-09 13:47:15.000000000 +0100
  23.169 -@@ -1411,6 +1411,8 @@
  23.170 +--- ioemu.orig/vl.h	2007-05-10 15:19:05.000000000 +0100
  23.171 ++++ ioemu/vl.h	2007-05-10 15:19:05.000000000 +0100
  23.172 +@@ -1409,6 +1409,8 @@
  23.173   void term_print_help(void);
  23.174   void monitor_readline(const char *prompt, int is_password,
  23.175                         char *buf, int buf_size);
  23.176 @@ -417,7 +417,7 @@ Index: ioemu/vl.h
  23.177   
  23.178   /* readline.c */
  23.179   typedef void ReadLineFunc(void *opaque, const char *str);
  23.180 -@@ -1425,6 +1427,9 @@
  23.181 +@@ -1423,6 +1425,9 @@
  23.182   
  23.183   /* xenstore.c */
  23.184   void xenstore_parse_domain_config(int domid);
  23.185 @@ -429,8 +429,8 @@ Index: ioemu/vl.h
  23.186   char *xenstore_vm_read(int domid, char *key, int *len);
  23.187  Index: ioemu/hw/ide.c
  23.188  ===================================================================
  23.189 ---- ioemu.orig/hw/ide.c	2007-05-09 13:44:51.000000000 +0100
  23.190 -+++ ioemu/hw/ide.c	2007-05-09 13:47:15.000000000 +0100
  23.191 +--- ioemu.orig/hw/ide.c	2007-05-10 15:17:54.000000000 +0100
  23.192 ++++ ioemu/hw/ide.c	2007-05-10 15:19:05.000000000 +0100
  23.193  @@ -1221,6 +1221,7 @@
  23.194           } else {
  23.195               ide_atapi_cmd_error(s, SENSE_NOT_READY, 
  23.196 @@ -441,8 +441,8 @@ Index: ioemu/hw/ide.c
  23.197       case GPCMD_MODE_SENSE_10:
  23.198  Index: ioemu/block-raw.c
  23.199  ===================================================================
  23.200 ---- ioemu.orig/block-raw.c	2007-05-09 13:44:51.000000000 +0100
  23.201 -+++ ioemu/block-raw.c	2007-05-09 13:47:15.000000000 +0100
  23.202 +--- ioemu.orig/block-raw.c	2007-05-10 15:17:54.000000000 +0100
  23.203 ++++ ioemu/block-raw.c	2007-05-10 15:19:05.000000000 +0100
  23.204  @@ -383,6 +383,7 @@
  23.205   static void raw_close(BlockDriverState *bs)
  23.206   {
    24.1 --- a/tools/ioemu/patches/xenstore-device-info-functions	Thu May 10 15:58:35 2007 +0100
    24.2 +++ b/tools/ioemu/patches/xenstore-device-info-functions	Thu May 10 16:05:31 2007 +0100
    24.3 @@ -15,8 +15,8 @@ Signed-off-by: Stefan Berger <stefanb@us
    24.4  
    24.5  Index: ioemu/xenstore.c
    24.6  ===================================================================
    24.7 ---- ioemu.orig/xenstore.c	2007-05-03 20:38:49.000000000 +0100
    24.8 -+++ ioemu/xenstore.c	2007-05-03 20:38:53.000000000 +0100
    24.9 +--- ioemu.orig/xenstore.c	2007-05-10 15:19:29.000000000 +0100
   24.10 ++++ ioemu/xenstore.c	2007-05-10 15:19:29.000000000 +0100
   24.11  @@ -304,6 +304,143 @@
   24.12       return rc;
   24.13   }
   24.14 @@ -163,9 +163,9 @@ Index: ioemu/xenstore.c
   24.15       char *buf = NULL, *path = NULL, *value = NULL;
   24.16  Index: ioemu/vl.h
   24.17  ===================================================================
   24.18 ---- ioemu.orig/vl.h	2007-05-03 20:38:49.000000000 +0100
   24.19 -+++ ioemu/vl.h	2007-05-03 20:38:53.000000000 +0100
   24.20 -@@ -1436,6 +1436,24 @@
   24.21 +--- ioemu.orig/vl.h	2007-05-10 15:19:29.000000000 +0100
   24.22 ++++ ioemu/vl.h	2007-05-10 15:19:29.000000000 +0100
   24.23 +@@ -1434,6 +1434,24 @@
   24.24   void xenstore_write_vncport(int vnc_display);
   24.25   int xenstore_read_vncpasswd(int domid);
   24.26   
    25.1 --- a/tools/ioemu/patches/xenstore-write-vnc-port	Thu May 10 15:58:35 2007 +0100
    25.2 +++ b/tools/ioemu/patches/xenstore-write-vnc-port	Thu May 10 16:05:31 2007 +0100
    25.3 @@ -1,7 +1,7 @@
    25.4  Index: ioemu/xenstore.c
    25.5  ===================================================================
    25.6 ---- ioemu.orig/xenstore.c	2007-05-09 13:47:15.000000000 +0100
    25.7 -+++ ioemu/xenstore.c	2007-05-09 13:47:15.000000000 +0100
    25.8 +--- ioemu.orig/xenstore.c	2007-05-10 15:19:05.000000000 +0100
    25.9 ++++ ioemu/xenstore.c	2007-05-10 15:19:05.000000000 +0100
   25.10  @@ -225,6 +225,34 @@
   25.11       free(vec);
   25.12   }
   25.13 @@ -39,10 +39,10 @@ Index: ioemu/xenstore.c
   25.14       char *buf = NULL, *path = NULL, *value = NULL;
   25.15  Index: ioemu/vl.c
   25.16  ===================================================================
   25.17 ---- ioemu.orig/vl.c	2007-05-09 13:47:15.000000000 +0100
   25.18 -+++ ioemu/vl.c	2007-05-09 13:47:15.000000000 +0100
   25.19 -@@ -7621,6 +7621,7 @@
   25.20 - 					    &vnclisten_addr);
   25.21 +--- ioemu.orig/vl.c	2007-05-10 15:19:05.000000000 +0100
   25.22 ++++ ioemu/vl.c	2007-05-10 15:19:05.000000000 +0100
   25.23 +@@ -7605,6 +7605,7 @@
   25.24 + 	vnc_display_port = vnc_display_init(ds, vnc_display, vncunused);
   25.25   	if (vncviewer)
   25.26   	    vnc_start_viewer(vnc_display_port);
   25.27  +	xenstore_write_vncport(vnc_display_port);
   25.28 @@ -51,9 +51,9 @@ Index: ioemu/vl.c
   25.29           sdl_display_init(ds, full_screen);
   25.30  Index: ioemu/vl.h
   25.31  ===================================================================
   25.32 ---- ioemu.orig/vl.h	2007-05-09 13:47:15.000000000 +0100
   25.33 -+++ ioemu/vl.h	2007-05-09 13:47:15.000000000 +0100
   25.34 -@@ -1430,6 +1430,7 @@
   25.35 +--- ioemu.orig/vl.h	2007-05-10 15:19:05.000000000 +0100
   25.36 ++++ ioemu/vl.h	2007-05-10 15:19:05.000000000 +0100
   25.37 +@@ -1428,6 +1428,7 @@
   25.38   int xenstore_fd(void);
   25.39   void xenstore_process_event(void *opaque);
   25.40   void xenstore_check_new_media_present(int timeout);