Glauber Costa 47b0758
Index: qemu-kvm-0.10/qemu/vnc.c
Glauber Costa 47b0758
===================================================================
Glauber Costa 47b0758
--- qemu-kvm-0.10.orig/qemu/vnc.c
Glauber Costa 47b0758
+++ qemu-kvm-0.10/qemu/vnc.c
Glauber Costa 47b0758
@@ -3,6 +3,7 @@
Glauber Costa 47b0758
  *
Glauber Costa 47b0758
  * Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws>
Glauber Costa 47b0758
  * Copyright (C) 2006 Fabrice Bellard
Glauber Costa 47b0758
+ * Copyright (C) 2009 Red Hat, Inc
Glauber Costa 47b0758
  *
Glauber Costa 47b0758
  * Permission is hereby granted, free of charge, to any person obtaining a copy
Glauber Costa 47b0758
  * of this software and associated documentation files (the "Software"), to deal
Glauber Costa 47b0758
@@ -23,25 +24,16 @@
Glauber Costa 47b0758
  * THE SOFTWARE.
Glauber Costa 47b0758
  */
Glauber Costa 47b0758
 
Glauber Costa 47b0758
-#include "qemu-common.h"
Glauber Costa 47b0758
-#include "console.h"
Glauber Costa 47b0758
+#include "vnc.h"
Glauber Costa 47b0758
 #include "sysemu.h"
Glauber Costa 47b0758
 #include "qemu_socket.h"
Glauber Costa 47b0758
 #include "qemu-timer.h"
Glauber Costa 47b0758
-#include "audio/audio.h"
Glauber Costa 47b0758
-#include <zlib.h>
Glauber Costa 47b0758
 
Glauber Costa 47b0758
 #define VNC_REFRESH_INTERVAL (1000 / 30)
Glauber Costa 47b0758
 
Glauber Costa 47b0758
-#include "vnc.h"
Glauber Costa 47b0758
 #include "vnc_keysym.h"
Glauber Costa 47b0758
 #include "d3des.h"
Glauber Costa 47b0758
 
Glauber Costa 47b0758
-#ifdef CONFIG_VNC_TLS
Glauber Costa 47b0758
-#include <gnutls/gnutls.h>
Glauber Costa 47b0758
-#include <gnutls/x509.h>
Glauber Costa 47b0758
-#endif /* CONFIG_VNC_TLS */
Glauber Costa 47b0758
-
Glauber Costa 47b0758
 // #define _VNC_DEBUG 1
Glauber Costa 47b0758
 
Glauber Costa 47b0758
 #ifdef _VNC_DEBUG
Glauber Costa 47b0758
@@ -64,103 +56,6 @@ static void vnc_debug_gnutls_log(int lev
Glauber Costa 47b0758
     } \
Glauber Costa 47b0758
 }
Glauber Costa 47b0758
 
Glauber Costa 47b0758
-typedef struct Buffer
Glauber Costa 47b0758
-{
Glauber Costa 47b0758
-    size_t capacity;
Glauber Costa 47b0758
-    size_t offset;
Glauber Costa 47b0758
-    uint8_t *buffer;
Glauber Costa 47b0758
-} Buffer;
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-typedef struct VncState VncState;
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-typedef int VncReadEvent(VncState *vs, uint8_t *data, size_t len);
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-typedef void VncWritePixels(VncState *vs, void *data, int size);
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-typedef void VncSendHextileTile(VncState *vs,
Glauber Costa 47b0758
-                                int x, int y, int w, int h,
Glauber Costa 47b0758
-                                void *last_bg,
Glauber Costa 47b0758
-                                void *last_fg,
Glauber Costa 47b0758
-                                int *has_bg, int *has_fg);
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-#define VNC_MAX_WIDTH 2048
Glauber Costa 47b0758
-#define VNC_MAX_HEIGHT 2048
Glauber Costa 47b0758
-#define VNC_DIRTY_WORDS (VNC_MAX_WIDTH / (16 * 32))
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-#define VNC_AUTH_CHALLENGE_SIZE 16
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-typedef struct VncDisplay VncDisplay;
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-struct VncDisplay
Glauber Costa 47b0758
-{
Glauber Costa 47b0758
-    int lsock;
Glauber Costa 47b0758
-    DisplayState *ds;
Glauber Costa 47b0758
-    VncState *clients;
Glauber Costa 47b0758
-    kbd_layout_t *kbd_layout;
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-    char *display;
Glauber Costa 47b0758
-    char *password;
Glauber Costa 47b0758
-    int auth;
Glauber Costa 47b0758
-#ifdef CONFIG_VNC_TLS
Glauber Costa 47b0758
-    int subauth;
Glauber Costa 47b0758
-    int x509verify;
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-    char *x509cacert;
Glauber Costa 47b0758
-    char *x509cacrl;
Glauber Costa 47b0758
-    char *x509cert;
Glauber Costa 47b0758
-    char *x509key;
Glauber Costa 47b0758
-#endif
Glauber Costa 47b0758
-};
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-struct VncState
Glauber Costa 47b0758
-{
Glauber Costa 47b0758
-    QEMUTimer *timer;
Glauber Costa 47b0758
-    int csock;
Glauber Costa 47b0758
-    DisplayState *ds;
Glauber Costa 47b0758
-    VncDisplay *vd;
Glauber Costa 47b0758
-    int need_update;
Glauber Costa 47b0758
-    uint32_t dirty_row[VNC_MAX_HEIGHT][VNC_DIRTY_WORDS];
Glauber Costa 47b0758
-    char *old_data;
Glauber Costa 47b0758
-    uint32_t features;
Glauber Costa 47b0758
-    int absolute;
Glauber Costa 47b0758
-    int last_x;
Glauber Costa 47b0758
-    int last_y;
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-    uint32_t vnc_encoding;
Glauber Costa 47b0758
-    uint8_t tight_quality;
Glauber Costa 47b0758
-    uint8_t tight_compression;
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-    int major;
Glauber Costa 47b0758
-    int minor;
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-    char challenge[VNC_AUTH_CHALLENGE_SIZE];
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-#ifdef CONFIG_VNC_TLS
Glauber Costa 47b0758
-    int wiremode;
Glauber Costa 47b0758
-    gnutls_session_t tls_session;
Glauber Costa 47b0758
-#endif
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-    Buffer output;
Glauber Costa 47b0758
-    Buffer input;
Glauber Costa 47b0758
-    /* current output mode information */
Glauber Costa 47b0758
-    VncWritePixels *write_pixels;
Glauber Costa 47b0758
-    VncSendHextileTile *send_hextile_tile;
Glauber Costa 47b0758
-    DisplaySurface clientds, serverds;
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-    CaptureVoiceOut *audio_cap;
Glauber Costa 47b0758
-    struct audsettings as;
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-    VncReadEvent *read_handler;
Glauber Costa 47b0758
-    size_t read_handler_expect;
Glauber Costa 47b0758
-    /* input */
Glauber Costa 47b0758
-    uint8_t modifiers_state[256];
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-    Buffer zlib;
Glauber Costa 47b0758
-    Buffer zlib_tmp;
Glauber Costa 47b0758
-    z_stream zlib_stream[4];
Glauber Costa 47b0758
-
Glauber Costa 47b0758
-    VncState *next;
Glauber Costa 47b0758
-};
Glauber Costa 47b0758
 
Glauber Costa 47b0758
 static VncDisplay *vnc_display; /* needed for info vnc */
Glauber Costa 47b0758
 static DisplayChangeListener *dcl;
Glauber Costa 47b0758
Index: qemu-kvm-0.10/qemu/vnc.h
Glauber Costa 47b0758
===================================================================
Glauber Costa 47b0758
--- qemu-kvm-0.10.orig/qemu/vnc.h
Glauber Costa 47b0758
+++ qemu-kvm-0.10/qemu/vnc.h
Glauber Costa 47b0758
@@ -1,5 +1,148 @@
Glauber Costa 47b0758
-#ifndef __VNCTIGHT_H
Glauber Costa 47b0758
-#define __VNCTIGHT_H
Glauber Costa 47b0758
+/*
Glauber Costa 47b0758
+ * QEMU VNC display driver
Glauber Costa 47b0758
+ *
Glauber Costa 47b0758
+ * Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws>
Glauber Costa 47b0758
+ * Copyright (C) 2006 Fabrice Bellard
Glauber Costa 47b0758
+ * Copyright (C) 2009 Red Hat, Inc
Glauber Costa 47b0758
+ *
Glauber Costa 47b0758
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
Glauber Costa 47b0758
+ * of this software and associated documentation files (the "Software"), to deal
Glauber Costa 47b0758
+ * in the Software without restriction, including without limitation the rights
Glauber Costa 47b0758
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
Glauber Costa 47b0758
+ * copies of the Software, and to permit persons to whom the Software is
Glauber Costa 47b0758
+ * furnished to do so, subject to the following conditions:
Glauber Costa 47b0758
+ *
Glauber Costa 47b0758
+ * The above copyright notice and this permission notice shall be included in
Glauber Costa 47b0758
+ * all copies or substantial portions of the Software.
Glauber Costa 47b0758
+ *
Glauber Costa 47b0758
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
Glauber Costa 47b0758
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
Glauber Costa 47b0758
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
Glauber Costa 47b0758
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
Glauber Costa 47b0758
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
Glauber Costa 47b0758
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
Glauber Costa 47b0758
+ * THE SOFTWARE.
Glauber Costa 47b0758
+ */
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+#ifndef __QEMU_VNC_H
Glauber Costa 47b0758
+#define __QEMU_VNC_H
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+#include "qemu-common.h"
Glauber Costa 47b0758
+#include "console.h"
Glauber Costa 47b0758
+#include "audio/audio.h"
Glauber Costa 47b0758
+#include <zlib.h>
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+#ifdef CONFIG_VNC_TLS
Glauber Costa 47b0758
+#include <gnutls/gnutls.h>
Glauber Costa 47b0758
+#include <gnutls/x509.h>
Glauber Costa 47b0758
+#endif /* CONFIG_VNC_TLS */
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+#include "keymaps.h"
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+/*****************************************************************************
Glauber Costa 47b0758
+ *
Glauber Costa 47b0758
+ * Core data structures
Glauber Costa 47b0758
+ *
Glauber Costa 47b0758
+ *****************************************************************************/
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+typedef struct Buffer
Glauber Costa 47b0758
+{
Glauber Costa 47b0758
+    size_t capacity;
Glauber Costa 47b0758
+    size_t offset;
Glauber Costa 47b0758
+    uint8_t *buffer;
Glauber Costa 47b0758
+} Buffer;
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+typedef struct VncState VncState;
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+typedef int VncReadEvent(VncState *vs, uint8_t *data, size_t len);
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+typedef void VncWritePixels(VncState *vs, void *data, int size);
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+typedef void VncSendHextileTile(VncState *vs,
Glauber Costa 47b0758
+                                int x, int y, int w, int h,
Glauber Costa 47b0758
+                                void *last_bg,
Glauber Costa 47b0758
+                                void *last_fg,
Glauber Costa 47b0758
+                                int *has_bg, int *has_fg);
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+#define VNC_MAX_WIDTH 2048
Glauber Costa 47b0758
+#define VNC_MAX_HEIGHT 2048
Glauber Costa 47b0758
+#define VNC_DIRTY_WORDS (VNC_MAX_WIDTH / (16 * 32))
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+#define VNC_AUTH_CHALLENGE_SIZE 16
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+typedef struct VncDisplay VncDisplay;
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+struct VncDisplay
Glauber Costa 47b0758
+{
Glauber Costa 47b0758
+    int lsock;
Glauber Costa 47b0758
+    DisplayState *ds;
Glauber Costa 47b0758
+    VncState *clients;
Glauber Costa 47b0758
+    kbd_layout_t *kbd_layout;
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+    char *display;
Glauber Costa 47b0758
+    char *password;
Glauber Costa 47b0758
+    int auth;
Glauber Costa 47b0758
+#ifdef CONFIG_VNC_TLS
Glauber Costa 47b0758
+    int subauth;
Glauber Costa 47b0758
+    int x509verify;
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+    char *x509cacert;
Glauber Costa 47b0758
+    char *x509cacrl;
Glauber Costa 47b0758
+    char *x509cert;
Glauber Costa 47b0758
+    char *x509key;
Glauber Costa 47b0758
+#endif
Glauber Costa 47b0758
+};
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+struct VncState
Glauber Costa 47b0758
+{
Glauber Costa 47b0758
+    QEMUTimer *timer;
Glauber Costa 47b0758
+    int csock;
Glauber Costa 47b0758
+    DisplayState *ds;
Glauber Costa 47b0758
+    VncDisplay *vd;
Glauber Costa 47b0758
+    int need_update;
Glauber Costa 47b0758
+    uint32_t dirty_row[VNC_MAX_HEIGHT][VNC_DIRTY_WORDS];
Glauber Costa 47b0758
+    char *old_data;
Glauber Costa 47b0758
+    uint32_t features;
Glauber Costa 47b0758
+    int absolute;
Glauber Costa 47b0758
+    int last_x;
Glauber Costa 47b0758
+    int last_y;
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+    uint32_t vnc_encoding;
Glauber Costa 47b0758
+    uint8_t tight_quality;
Glauber Costa 47b0758
+    uint8_t tight_compression;
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+    int major;
Glauber Costa 47b0758
+    int minor;
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+    char challenge[VNC_AUTH_CHALLENGE_SIZE];
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+#ifdef CONFIG_VNC_TLS
Glauber Costa 47b0758
+    int wiremode;
Glauber Costa 47b0758
+    gnutls_session_t tls_session;
Glauber Costa 47b0758
+#endif
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+    Buffer output;
Glauber Costa 47b0758
+    Buffer input;
Glauber Costa 47b0758
+    /* current output mode information */
Glauber Costa 47b0758
+    VncWritePixels *write_pixels;
Glauber Costa 47b0758
+    VncSendHextileTile *send_hextile_tile;
Glauber Costa 47b0758
+    DisplaySurface clientds, serverds;
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+    CaptureVoiceOut *audio_cap;
Glauber Costa 47b0758
+    struct audsettings as;
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+    VncReadEvent *read_handler;
Glauber Costa 47b0758
+    size_t read_handler_expect;
Glauber Costa 47b0758
+    /* input */
Glauber Costa 47b0758
+    uint8_t modifiers_state[256];
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+    Buffer zlib;
Glauber Costa 47b0758
+    Buffer zlib_tmp;
Glauber Costa 47b0758
+    z_stream zlib_stream[4];
Glauber Costa 47b0758
+
Glauber Costa 47b0758
+    VncState *next;
Glauber Costa 47b0758
+};
Glauber Costa 47b0758
+
Glauber Costa 47b0758
 
Glauber Costa 47b0758
 /*****************************************************************************
Glauber Costa 47b0758
  *
Glauber Costa 47b0758
@@ -111,4 +254,4 @@ enum {
Glauber Costa 47b0758
 #define VNC_FEATURE_ZLIB_MASK                (1 << VNC_FEATURE_ZLIB)
Glauber Costa 47b0758
 #define VNC_FEATURE_COPYRECT_MASK            (1 << VNC_FEATURE_COPYRECT)
Glauber Costa 47b0758
 
Glauber Costa 47b0758
-#endif /* __VNCTIGHT_H */
Glauber Costa 47b0758
+#endif /* __QEMU_VNC_H */