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

[Xen-changelog] [xen-unstable] [qemu patches] Update patches for changeset 11561:c742b2ae920c.



# HG changeset patch
# User Christian Limpach <Christian.Limpach@xxxxxxxxxxxxx>
# Node ID 317e8516d464a47d3aa0eba6f01e14448df8159a
# Parent  ebb1982c03a167738300977438d8c1df40e7fca5
[qemu patches] Update patches for changeset 11561:c742b2ae920c.

Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxxx>
---
 tools/ioemu/patches/fix-vga-scanning-code-overflow |   37 +++++++++++++
 tools/ioemu/patches/series                         |    1 
 tools/ioemu/patches/vnc-access-monitor-vt          |    4 -
 tools/ioemu/patches/vnc-cleanup                    |   42 +++++++++++----
 tools/ioemu/patches/vnc-display-find-unused        |   14 ++---
 tools/ioemu/patches/vnc-fixes                      |   57 +++++++++------------
 tools/ioemu/patches/vnc-start-vncviewer            |    8 +-
 tools/ioemu/patches/vnc-title-domain-name          |    6 +-
 8 files changed, 111 insertions(+), 58 deletions(-)

diff -r ebb1982c03a1 -r 317e8516d464 tools/ioemu/patches/series
--- a/tools/ioemu/patches/series        Thu Sep 21 18:58:17 2006 +0100
+++ b/tools/ioemu/patches/series        Thu Sep 21 19:28:35 2006 +0100
@@ -29,6 +29,7 @@ acpi-support
 acpi-support
 acpi-timer-support
 acpi-poweroff-support
+fix-vga-scanning-code-overflow
 vnc-cleanup
 vnc-fixes
 vnc-start-vncviewer
diff -r ebb1982c03a1 -r 317e8516d464 tools/ioemu/patches/vnc-access-monitor-vt
--- a/tools/ioemu/patches/vnc-access-monitor-vt Thu Sep 21 18:58:17 2006 +0100
+++ b/tools/ioemu/patches/vnc-access-monitor-vt Thu Sep 21 19:28:35 2006 +0100
@@ -1,7 +1,7 @@ Index: ioemu/vnc.c
 Index: ioemu/vnc.c
 ===================================================================
---- ioemu.orig/vnc.c   2006-08-17 19:50:14.623519661 +0100
-+++ ioemu/vnc.c        2006-08-17 19:50:15.956372339 +0100
+--- ioemu.orig/vnc.c   2006-09-21 19:10:57.000000000 +0100
++++ ioemu/vnc.c        2006-09-21 19:11:00.000000000 +0100
 @@ -32,6 +32,10 @@
  #include "vnc_keysym.h"
  #include "keymaps.c"
@@ -22,7 +22,7 @@ Index: ioemu/vnc.c
  };
  
  #define DIRTY_PIXEL_BITS 64
-@@ -794,16 +800,80 @@
+@@ -790,16 +796,80 @@
  
  static void do_key_event(VncState *vs, int down, uint32_t sym)
  {
diff -r ebb1982c03a1 -r 317e8516d464 tools/ioemu/patches/vnc-cleanup
--- a/tools/ioemu/patches/vnc-cleanup   Thu Sep 21 18:58:17 2006 +0100
+++ b/tools/ioemu/patches/vnc-cleanup   Thu Sep 21 19:28:35 2006 +0100
@@ -1,7 +1,7 @@ Index: ioemu/vnc.c
 Index: ioemu/vnc.c
 ===================================================================
---- ioemu.orig/vnc.c   2006-08-17 19:37:36.091553839 +0100
-+++ ioemu/vnc.c        2006-08-17 19:50:10.313996001 +0100
+--- ioemu.orig/vnc.c   2006-09-21 18:54:22.000000000 +0100
++++ ioemu/vnc.c        2006-09-21 19:05:39.000000000 +0100
 @@ -143,13 +143,16 @@
  static void vnc_dpy_update(DisplayState *ds, int x, int y, int w, int h)
  {
@@ -30,7 +30,16 @@ Index: ioemu/vnc.c
  
      if (vs->need_update && vs->csock != -1) {
        int y;
-@@ -390,7 +394,7 @@
+@@ -383,6 +387,8 @@
+       int saved_offset;
+       int has_dirty = 0;
+ 
++      qemu_mod_timer(vs->timer, now + VNC_REFRESH_INTERVAL);
++
+         vnc_set_bits(width_mask, (vs->width / 16), VNC_DIRTY_WORDS);
+ 
+       /* Walk through the dirty map and eliminate tiles that
+@@ -390,7 +396,7 @@
        row = vs->ds->data;
        old_row = vs->old_data;
  
@@ -39,34 +48,50 @@ Index: ioemu/vnc.c
            if (vnc_and_bits(vs->dirty_row[y], width_mask, VNC_DIRTY_WORDS)) {
                int x;
                char *ptr, *old_ptr;
-@@ -415,10 +419,8 @@
+@@ -415,10 +421,8 @@
            old_row += vs->ds->linesize;
        }
  
 -      if (!has_dirty) {
 -          qemu_mod_timer(vs->timer, qemu_get_clock(rt_clock) + 
VNC_REFRESH_INTERVAL);
--          return;
++      if (!has_dirty)
+           return;
 -      }
-+      if (!has_dirty)
-+          goto out;
  
        /* Count rectangles */
        n_rectangles = 0;
-@@ -456,7 +458,9 @@
+@@ -454,17 +458,13 @@
+       vs->output.buffer[saved_offset] = (n_rectangles >> 8) & 0xFF;
+       vs->output.buffer[saved_offset + 1] = n_rectangles & 0xFF;
        vnc_flush(vs);
- 
+-
      }
 -    qemu_mod_timer(vs->timer, qemu_get_clock(rt_clock) + 
VNC_REFRESH_INTERVAL);
-+
-+ out:
-+    qemu_mod_timer(vs->timer, now + VNC_REFRESH_INTERVAL);
  }
  
  static void vnc_timer_init(VncState *vs)
+ {
+-    if (vs->timer == NULL) {
++    if (vs->timer == NULL)
+       vs->timer = qemu_new_timer(rt_clock, vnc_update_client, vs);
+-      qemu_mod_timer(vs->timer, qemu_get_clock(rt_clock));
+-    }
+ }
+ 
+ static void vnc_dpy_refresh(DisplayState *ds)
+@@ -736,6 +736,8 @@
+           old_row += vs->ds->linesize;
+       }
+     }
++
++    qemu_mod_timer(vs->timer, qemu_get_clock(rt_clock));
+ }
+ 
+ static void set_encodings(VncState *vs, int32_t *encodings, size_t 
n_encodings)
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-08-17 19:50:02.410869542 +0100
-+++ ioemu/vl.c 2006-08-17 19:50:10.316995669 +0100
+--- ioemu.orig/vl.c    2006-09-21 18:55:38.000000000 +0100
++++ ioemu/vl.c 2006-09-21 19:00:48.000000000 +0100
 @@ -5120,10 +5120,10 @@
          /* XXX: better handling of removal */
          for(ioh = first_io_handler; ioh != NULL; ioh = ioh_next) {
diff -r ebb1982c03a1 -r 317e8516d464 tools/ioemu/patches/vnc-display-find-unused
--- a/tools/ioemu/patches/vnc-display-find-unused       Thu Sep 21 18:58:17 
2006 +0100
+++ b/tools/ioemu/patches/vnc-display-find-unused       Thu Sep 21 19:28:35 
2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/vnc.c
 Index: ioemu/vnc.c
 ===================================================================
---- ioemu.orig/vnc.c   2006-08-17 19:50:15.956372339 +0100
-+++ ioemu/vnc.c        2006-08-17 19:50:17.083247783 +0100
-@@ -1183,7 +1183,7 @@
+--- ioemu.orig/vnc.c   2006-09-21 19:11:00.000000000 +0100
++++ ioemu/vnc.c        2006-09-21 19:11:03.000000000 +0100
+@@ -1181,7 +1181,7 @@
      }
  }
  
@@ -11,7 +11,7 @@ Index: ioemu/vnc.c
  {
      struct sockaddr_in addr;
      int reuse_addr, ret;
-@@ -1214,10 +1214,6 @@
+@@ -1212,10 +1212,6 @@
        exit(1);
      }
  
@@ -22,7 +22,7 @@ Index: ioemu/vnc.c
      reuse_addr = 1;
      ret = setsockopt(vs->lsock, SOL_SOCKET, SO_REUSEADDR,
                     (const char *)&reuse_addr, sizeof(reuse_addr));
-@@ -1226,7 +1222,16 @@
+@@ -1224,7 +1220,16 @@
        exit(1);
      }
  
@@ -39,7 +39,7 @@ Index: ioemu/vnc.c
        fprintf(stderr, "bind() failed\n");
        exit(1);
      }
-@@ -1247,6 +1252,8 @@
+@@ -1245,6 +1250,8 @@
      vs->ds->dpy_refresh = vnc_dpy_refresh;
  
      vnc_dpy_resize(vs->ds, 640, 400);
@@ -50,8 +50,8 @@ Index: ioemu/vnc.c
  int vnc_start_viewer(int port)
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-08-17 19:50:13.152682236 +0100
-+++ ioemu/vl.c 2006-08-17 19:50:17.086247452 +0100
+--- ioemu.orig/vl.c    2006-09-21 19:10:53.000000000 +0100
++++ ioemu/vl.c 2006-09-21 19:11:03.000000000 +0100
 @@ -121,6 +121,7 @@
  static DisplayState display_state;
  int nographic;
@@ -115,8 +115,8 @@ Index: ioemu/vl.c
      } else {
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-08-17 19:50:13.153682125 +0100
-+++ ioemu/vl.h 2006-08-17 19:50:17.087247341 +0100
+--- ioemu.orig/vl.h    2006-09-21 19:10:53.000000000 +0100
++++ ioemu/vl.h 2006-09-21 19:11:03.000000000 +0100
 @@ -785,7 +785,7 @@
  void cocoa_display_init(DisplayState *ds, int full_screen);
  
diff -r ebb1982c03a1 -r 317e8516d464 tools/ioemu/patches/vnc-fixes
--- a/tools/ioemu/patches/vnc-fixes     Thu Sep 21 18:58:17 2006 +0100
+++ b/tools/ioemu/patches/vnc-fixes     Thu Sep 21 19:28:35 2006 +0100
@@ -1,7 +1,7 @@ Index: ioemu/vl.c
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-08-17 19:50:10.316995669 +0100
-+++ ioemu/vl.c 2006-08-17 19:50:12.100798502 +0100
+--- ioemu.orig/vl.c    2006-09-21 19:08:18.000000000 +0100
++++ ioemu/vl.c 2006-09-21 19:26:24.000000000 +0100
 @@ -6534,8 +6534,10 @@
          }
      }
@@ -17,8 +17,8 @@ Index: ioemu/vl.c
      if (use_gdbstub) {
 Index: ioemu/vnc.c
 ===================================================================
---- ioemu.orig/vnc.c   2006-08-17 19:50:10.313996001 +0100
-+++ ioemu/vnc.c        2006-08-17 19:50:12.101798392 +0100
+--- ioemu.orig/vnc.c   2006-09-21 19:08:18.000000000 +0100
++++ ioemu/vnc.c        2006-09-21 19:26:38.000000000 +0100
 @@ -3,6 +3,7 @@
   * 
   * Copyright (C) 2006 Anthony Liguori <anthony@xxxxxxxxxxxxx>
@@ -240,7 +240,7 @@ Index: ioemu/vnc.c
  {
      VncState *vs = opaque;
      int64_t now = qemu_get_clock(rt_clock);
-@@ -382,12 +445,16 @@
+@@ -382,14 +445,18 @@
        int y;
        char *row;
        char *old_row;
@@ -252,6 +252,8 @@ Index: ioemu/vnc.c
 +      int maxx, maxy;
 +      int tile_bytes = vs->depth * DP2X(vs, 1);
  
+       qemu_mod_timer(vs->timer, now + VNC_REFRESH_INTERVAL);
+ 
 -        vnc_set_bits(width_mask, (vs->width / 16), VNC_DIRTY_WORDS);
 +      if (vs->width != DP2X(vs, DIRTY_PIXEL_BITS))
 +          width_mask = (1ULL << X2DP_UP(vs, vs->ds->width)) - 1;
@@ -260,7 +262,7 @@ Index: ioemu/vnc.c
  
        /* Walk through the dirty map and eliminate tiles that
           really aren't dirty */
-@@ -395,23 +462,25 @@
+@@ -397,23 +464,25 @@
        old_row = vs->old_data;
  
        for (y = 0; y < vs->ds->height; y++) {
@@ -295,17 +297,17 @@ Index: ioemu/vnc.c
                }
            }
  
-@@ -419,7 +488,8 @@
+@@ -421,7 +490,8 @@
            old_row += vs->ds->linesize;
        }
  
 -      if (!has_dirty)
 +      if (!vs->has_update || vs->visible_y >= vs->ds->height ||
 +          vs->visible_x >= vs->ds->width)
-           goto out;
+           return;
  
        /* Count rectangles */
-@@ -429,40 +499,61 @@
+@@ -431,34 +501,56 @@
        saved_offset = vs->output.offset;
        vnc_write_u16(vs, 0);
  
@@ -354,32 +356,26 @@ Index: ioemu/vnc.c
        }
        vs->output.buffer[saved_offset] = (n_rectangles >> 8) & 0xFF;
        vs->output.buffer[saved_offset + 1] = n_rectangles & 0xFF;
--      vnc_flush(vs);
- 
--    }
++
 +      vs->has_update = 0;
 +      vs->need_update = 0;
-+      vnc_flush(vs);
+       vnc_flush(vs);
+-    }
 +      vs->slow_client = 0;
 +    } else
 +      vs->slow_client = 1;
- 
-  out:
-     qemu_mod_timer(vs->timer, now + VNC_REFRESH_INTERVAL);
- }
- 
++}
++
 +static void vnc_update_client(void *opaque)
 +{
 +    VncState *vs = opaque;
 +
 +    vs->ds->dpy_refresh(vs->ds);
 +    _vnc_update_client(vs);
-+}
-+
+ }
+ 
  static void vnc_timer_init(VncState *vs)
- {
-     if (vs->timer == NULL) {
-@@ -473,8 +564,6 @@
+@@ -469,8 +561,6 @@
  
  static void vnc_dpy_refresh(DisplayState *ds)
  {
@@ -388,7 +384,7 @@ Index: ioemu/vnc.c
      vga_hw_update();
  }
  
-@@ -510,7 +599,7 @@
+@@ -506,7 +596,7 @@
  
  static void buffer_reset(Buffer *buffer)
  {
@@ -397,7 +393,7 @@ Index: ioemu/vnc.c
  }
  
  static void buffer_append(Buffer *buffer, const void *data, size_t len)
-@@ -551,12 +640,12 @@
+@@ -547,12 +637,12 @@
      if (!ret)
        return;
  
@@ -413,7 +409,7 @@ Index: ioemu/vnc.c
  }
  
  static void vnc_read_when(VncState *vs, VncReadEvent *func, size_t expecting)
-@@ -588,11 +677,11 @@
+@@ -584,11 +674,11 @@
            return;
  
        if (!ret) {
@@ -428,7 +424,7 @@ Index: ioemu/vnc.c
      }
  }
  
-@@ -600,9 +689,9 @@
+@@ -596,9 +686,9 @@
  {
      buffer_reserve(&vs->output, len);
  
@@ -441,7 +437,7 @@ Index: ioemu/vnc.c
  
      buffer_append(&vs->output, data, len);
  }
-@@ -724,22 +813,25 @@
+@@ -720,22 +810,25 @@
      do_key_event(vs, down, sym);
  }
  
@@ -475,10 +471,10 @@ Index: ioemu/vnc.c
 +    vs->visible_y = y_position;
 +    vs->visible_w = w;
 +    vs->visible_h = h;
- }
- 
- static void set_encodings(VncState *vs, int32_t *encodings, size_t 
n_encodings)
-@@ -845,8 +937,6 @@
+ 
+     qemu_mod_timer(vs->timer, qemu_get_clock(rt_clock));
+ }
+@@ -843,8 +936,6 @@
      }
  
      vnc_dpy_resize(vs->ds, vs->ds->width, vs->ds->height);
@@ -487,7 +483,7 @@ Index: ioemu/vnc.c
  
      vga_hw_invalidate();
      vga_hw_update();
-@@ -1012,11 +1102,11 @@
+@@ -1010,11 +1101,11 @@
        vnc_write(vs, "RFB 003.003\n", 12);
        vnc_flush(vs);
        vnc_read_when(vs, protocol_version, 12);
@@ -501,7 +497,7 @@ Index: ioemu/vnc.c
      }
  }
  
-@@ -1073,17 +1163,15 @@
+@@ -1071,17 +1162,15 @@
        exit(1);
      }
  
@@ -524,8 +520,8 @@ Index: ioemu/vnc.c
  }
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-08-17 19:50:02.411869432 +0100
-+++ ioemu/vl.h 2006-08-17 19:50:12.102798281 +0100
+--- ioemu.orig/vl.h    2006-09-21 19:00:48.000000000 +0100
++++ ioemu/vl.h 2006-09-21 19:26:24.000000000 +0100
 @@ -319,6 +319,7 @@
  int is_graphic_console(void);
  CharDriverState *text_console_init(DisplayState *ds);
diff -r ebb1982c03a1 -r 317e8516d464 tools/ioemu/patches/vnc-start-vncviewer
--- a/tools/ioemu/patches/vnc-start-vncviewer   Thu Sep 21 18:58:17 2006 +0100
+++ b/tools/ioemu/patches/vnc-start-vncviewer   Thu Sep 21 19:28:35 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/vnc.c
 Index: ioemu/vnc.c
 ===================================================================
---- ioemu.orig/vnc.c   2006-08-17 19:50:12.101798392 +0100
-+++ ioemu/vnc.c        2006-08-17 19:50:13.149682567 +0100
-@@ -1175,3 +1175,25 @@
+--- ioemu.orig/vnc.c   2006-09-21 19:10:45.000000000 +0100
++++ ioemu/vnc.c        2006-09-21 19:10:53.000000000 +0100
+@@ -1173,3 +1173,25 @@
  
      vnc_dpy_resize(vs->ds, 640, 400);
  }
@@ -30,8 +30,8 @@ Index: ioemu/vnc.c
 +}
 Index: ioemu/vl.c
 ===================================================================
---- ioemu.orig/vl.c    2006-08-17 19:50:12.100798502 +0100
-+++ ioemu/vl.c 2006-08-17 19:50:13.152682236 +0100
+--- ioemu.orig/vl.c    2006-09-21 19:08:38.000000000 +0100
++++ ioemu/vl.c 2006-09-21 19:10:53.000000000 +0100
 @@ -120,6 +120,7 @@
  int bios_size;
  static DisplayState display_state;
@@ -93,8 +93,8 @@ Index: ioemu/vl.c
          sdl_display_init(ds, full_screen);
 Index: ioemu/vl.h
 ===================================================================
---- ioemu.orig/vl.h    2006-08-17 19:50:12.102798281 +0100
-+++ ioemu/vl.h 2006-08-17 19:50:13.153682125 +0100
+--- ioemu.orig/vl.h    2006-09-21 19:08:38.000000000 +0100
++++ ioemu/vl.h 2006-09-21 19:10:53.000000000 +0100
 @@ -786,6 +786,7 @@
  
  /* vnc.c */
diff -r ebb1982c03a1 -r 317e8516d464 tools/ioemu/patches/vnc-title-domain-name
--- a/tools/ioemu/patches/vnc-title-domain-name Thu Sep 21 18:58:17 2006 +0100
+++ b/tools/ioemu/patches/vnc-title-domain-name Thu Sep 21 19:28:35 2006 +0100
@@ -1,8 +1,8 @@ Index: ioemu/vnc.c
 Index: ioemu/vnc.c
 ===================================================================
---- ioemu.orig/vnc.c   2006-08-17 19:50:13.149682567 +0100
-+++ ioemu/vnc.c        2006-08-17 19:50:14.623519661 +0100
-@@ -1014,6 +1014,7 @@
+--- ioemu.orig/vnc.c   2006-09-21 19:10:53.000000000 +0100
++++ ioemu/vnc.c        2006-09-21 19:10:57.000000000 +0100
+@@ -1012,6 +1012,7 @@
  
  static int protocol_client_init(VncState *vs, char *data, size_t len)
  {
@@ -10,7 +10,7 @@ Index: ioemu/vnc.c
      char pad[3] = { 0, 0, 0 };
  
      vs->width = vs->ds->width;
-@@ -1059,8 +1060,10 @@
+@@ -1057,8 +1058,10 @@
        
      vnc_write(vs, pad, 3);           /* padding */
  
diff -r ebb1982c03a1 -r 317e8516d464 
tools/ioemu/patches/fix-vga-scanning-code-overflow
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/ioemu/patches/fix-vga-scanning-code-overflow        Thu Sep 21 
19:28:35 2006 +0100
@@ -0,0 +1,45 @@
+Index: ioemu/hw/vga.c
+===================================================================
+--- ioemu.orig/hw/vga.c        2006-09-21 19:07:52.000000000 +0100
++++ ioemu/hw/vga.c     2006-09-21 19:08:09.000000000 +0100
+@@ -1463,14 +1463,15 @@
+  */
+ static void vga_draw_graphic(VGAState *s, int full_update)
+ {
+-    int y1, y, update, page_min, page_max, linesize, y_start, double_scan, 
mask;
++    int y1, y, update, linesize, y_start, double_scan, mask;
+     int width, height, shift_control, line_offset, bwidth;
+     ram_addr_t page0, page1;
+     int disp_width, multi_scan, multi_run;
+     uint8_t *d;
+     uint32_t v, addr1, addr;
+     vga_draw_line_func *vga_draw_line;
+-    
++    ram_addr_t page_min, page_max;
++
+     full_update |= update_basic_params(s);
+ 
+     s->get_resolution(s, &width, &height);
+@@ -1561,8 +1562,8 @@
+     addr1 = (s->start_addr * 4);
+     bwidth = width * 4;
+     y_start = -1;
+-    page_min = 0x7fffffff;
+-    page_max = -1;
++    page_min = 0;
++    page_max = 0;
+     d = s->ds->data;
+     linesize = s->ds->linesize;
+     y1 = 0;
+@@ -1592,9 +1593,9 @@
+         if (update) {
+             if (y_start < 0)
+                 y_start = y;
+-            if (page0 < page_min)
++            if (page_min == 0 || page0 < page_min)
+                 page_min = page0;
+-            if (page1 > page_max)
++            if (page_max == 0 || page1 > page_max)
+                 page_max = page1;
+             vga_draw_line(s, d, s->vram_ptr + addr, width);
+             if (s->cursor_draw_line)

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


 


Rackspace

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