From: Alexander Graf <agraf@suse.de>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 1/7] Split VNC defines to vnc.h
Date: Thu, 29 Jan 2009 12:24:52 +0100 [thread overview]
Message-ID: <1233228298-4844-2-git-send-email-agraf@suse.de> (raw)
In-Reply-To: <1233228298-4844-1-git-send-email-agraf@suse.de>
The VNC protocol contains quite some constants, some of which are
currently hardcoded in the vnc.c code. This is not exactly pretty.
Let's move all those constants out to vnc.h, so they are clearly
separated. While at it, I also included other defines that will be
used later in this patch series.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
vnc.c | 36 +-----------------
vnc.h | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 131 insertions(+), 35 deletions(-)
create mode 100644 vnc.h
diff --git a/vnc.c b/vnc.c
index 2b3a6eb..e88f38f 100644
--- a/vnc.c
+++ b/vnc.c
@@ -32,6 +32,7 @@
#define VNC_REFRESH_INTERVAL (1000 / 30)
+#include "vnc.h"
#include "vnc_keysym.h"
#include "keymaps.c"
#include "d3des.h"
@@ -88,41 +89,6 @@ typedef void VncSendHextileTile(VncState *vs,
#define VNC_AUTH_CHALLENGE_SIZE 16
-enum {
- VNC_AUTH_INVALID = 0,
- VNC_AUTH_NONE = 1,
- VNC_AUTH_VNC = 2,
- VNC_AUTH_RA2 = 5,
- VNC_AUTH_RA2NE = 6,
- VNC_AUTH_TIGHT = 16,
- VNC_AUTH_ULTRA = 17,
- VNC_AUTH_TLS = 18,
- VNC_AUTH_VENCRYPT = 19
-};
-
-#ifdef CONFIG_VNC_TLS
-enum {
- VNC_WIREMODE_CLEAR,
- VNC_WIREMODE_TLS,
-};
-
-enum {
- VNC_AUTH_VENCRYPT_PLAIN = 256,
- VNC_AUTH_VENCRYPT_TLSNONE = 257,
- VNC_AUTH_VENCRYPT_TLSVNC = 258,
- VNC_AUTH_VENCRYPT_TLSPLAIN = 259,
- VNC_AUTH_VENCRYPT_X509NONE = 260,
- VNC_AUTH_VENCRYPT_X509VNC = 261,
- VNC_AUTH_VENCRYPT_X509PLAIN = 262,
-};
-
-#define X509_CA_CERT_FILE "ca-cert.pem"
-#define X509_CA_CRL_FILE "ca-crl.pem"
-#define X509_SERVER_KEY_FILE "server-key.pem"
-#define X509_SERVER_CERT_FILE "server-cert.pem"
-
-#endif /* CONFIG_VNC_TLS */
-
struct VncState
{
QEMUTimer *timer;
diff --git a/vnc.h b/vnc.h
new file mode 100644
index 0000000..ae69bc3
--- /dev/null
+++ b/vnc.h
@@ -0,0 +1,130 @@
+#ifndef __VNCTIGHT_H
+#define __VNCTIGHT_H
+
+/*****************************************************************************
+ *
+ * Authentication modes
+ *
+ *****************************************************************************/
+
+enum {
+ VNC_AUTH_INVALID = 0,
+ VNC_AUTH_NONE = 1,
+ VNC_AUTH_VNC = 2,
+ VNC_AUTH_RA2 = 5,
+ VNC_AUTH_RA2NE = 6,
+ VNC_AUTH_TIGHT = 16,
+ VNC_AUTH_ULTRA = 17,
+ VNC_AUTH_TLS = 18,
+ VNC_AUTH_VENCRYPT = 19
+};
+
+#define VNC_AUTH_NONE_SIG "NOAUTH__"
+#define VNC_AUTH_VNC_SIG "VNCAUTH_"
+
+#ifdef CONFIG_VNC_TLS
+enum {
+ VNC_WIREMODE_CLEAR,
+ VNC_WIREMODE_TLS,
+};
+
+enum {
+ VNC_AUTH_VENCRYPT_PLAIN = 256,
+ VNC_AUTH_VENCRYPT_TLSNONE = 257,
+ VNC_AUTH_VENCRYPT_TLSVNC = 258,
+ VNC_AUTH_VENCRYPT_TLSPLAIN = 259,
+ VNC_AUTH_VENCRYPT_X509NONE = 260,
+ VNC_AUTH_VENCRYPT_X509VNC = 261,
+ VNC_AUTH_VENCRYPT_X509PLAIN = 262,
+};
+
+#define X509_CA_CERT_FILE "ca-cert.pem"
+#define X509_CA_CRL_FILE "ca-crl.pem"
+#define X509_SERVER_KEY_FILE "server-key.pem"
+#define X509_SERVER_CERT_FILE "server-cert.pem"
+
+#endif /* CONFIG_VNC_TLS */
+
+/*****************************************************************************
+ *
+ * Encoding types
+ *
+ *****************************************************************************/
+
+#define VNC_ENCODING_RAW 0x00000000
+#define VNC_ENCODING_COPYRECT 0x00000001
+#define VNC_ENCODING_RRE 0x00000002
+#define VNC_ENCODING_CORRE 0x00000004
+#define VNC_ENCODING_HEXTILE 0x00000005
+#define VNC_ENCODING_ZLIB 0x00000006
+#define VNC_ENCODING_TIGHT 0x00000007
+#define VNC_ENCODING_ZLIBHEX 0x00000008
+#define VNC_ENCODING_ZRLE 0x00000010
+#define VNC_ENCODING_COMPRESSLEVEL0 0xFFFFFF00
+#define VNC_ENCODING_QUALITYLEVEL0 0xFFFFFFE0
+#define VNC_ENCODING_XCURSOR 0xFFFFFF10
+#define VNC_ENCODING_RICH_CURSOR 0xFFFFFF11
+#define VNC_ENCODING_POINTER_POS 0xFFFFFF18
+#define VNC_ENCODING_LASTRECT 0xFFFFFF20
+#define VNC_ENCODING_DESKTOPRESIZE 0xFFFFFF21
+#define VNC_ENCODING_POINTER_TYPE_CHANGE 0XFFFFFEFF
+#define VNC_ENCODING_EXT_KEY_EVENT 0XFFFFFEFE
+#define VNC_ENCODING_AUDIO 0XFFFFFEFD
+#define VNC_ENCODING_WMVi 0x574D5669
+
+/* signatures for basic encoding types */
+#define VNC_ENCODING_RAW_SIG "RAW_____"
+#define VNC_ENCODING_COPYRECT_SIG "COPYRECT"
+#define VNC_ENCODING_RRE_SIG "RRE_____"
+#define VNC_ENCODING_CORRE_SIG "CORRE___"
+#define VNC_ENCODING_HEXTILE_SIG "HEXTILE_"
+#define VNC_ENCODING_ZLIB_SIG "ZLIB____"
+#define VNC_ENCODING_TIGHT_SIG "TIGHT___"
+#define VNC_ENCODING_ZLIBHEX_SIG "ZLIBHEX_"
+#define VNC_ENCODING_ZRLE_SIG "ZRLE____"
+#define VNC_ENCODING_COMPRESSLEVEL0_SIG "COMPRLVL"
+#define VNC_ENCODING_QUALITYLEVEL0_SIG "JPEGQLVL"
+
+/*****************************************************************************
+ *
+ * Other tight constants
+ *
+ *****************************************************************************/
+
+/*
+ * Vendors known by TightVNC: standard VNC/RealVNC, TridiaVNC, and TightVNC.
+ */
+
+#define VNC_VENDOR_STANDARD "STDV"
+#define VNC_VENDOR_TRIDIA "TRDV"
+#define VNC_VENDOR_TIGHT "TGHT"
+
+#define VNC_TIGHT_CCB_RESET_MASK (0x0f)
+#define VNC_TIGHT_CCB_TYPE_MASK (0x0f << 4)
+#define VNC_TIGHT_CCB_TYPE_FILL (0x08 << 4)
+#define VNC_TIGHT_CCB_TYPE_JPEG (0x09 << 4)
+#define VNC_TIGHT_CCB_BASIC_MAX (0x07 << 4)
+#define VNC_TIGHT_CCB_BASIC_ZLIB (0x03 << 4)
+#define VNC_TIGHT_CCB_BASIC_FILTER (0x04 << 4)
+
+/*****************************************************************************
+ *
+ * Features
+ *
+ *****************************************************************************/
+
+#define VNC_FEATURE_RESIZE 0
+#define VNC_FEATURE_HEXTILE 1
+#define VNC_FEATURE_POINTER_TYPE_CHANGE 2
+#define VNC_FEATURE_WMVI 3
+#define VNC_FEATURE_TIGHT 4
+#define VNC_FEATURE_TIGHT_PROTOCOL 5
+
+#define VNC_FEATURE_RESIZE_MASK (1 << VNC_FEATURE_RESIZE)
+#define VNC_FEATURE_HEXTILE_MASK (1 << VNC_FEATURE_HEXTILE)
+#define VNC_FEATURE_POINTER_TYPE_CHANGE_MASK (1 << VNC_FEATURE_POINTER_TYPE_CHANGE)
+#define VNC_FEATURE_WMVI_MASK (1 << VNC_FEATURE_WMVI)
+#define VNC_FEATURE_TIGHT_MASK (1 << VNC_FEATURE_TIGHT)
+#define VNC_FEATURE_TIGHT_PROTOCOL_MASK (1 << VNC_FEATURE_TIGHT_PROTOCOL)
+
+#endif /* __VNCTIGHT_H */
--
1.6.0.2
next prev parent reply other threads:[~2009-01-29 11:25 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-29 11:24 [Qemu-devel] [PATCH 0/7] Add tight support to VNC Alexander Graf
2009-01-29 11:24 ` Alexander Graf [this message]
2009-01-29 11:24 ` [Qemu-devel] [PATCH 2/7] Use VNC protocol defines Alexander Graf
2009-01-29 11:24 ` [Qemu-devel] [PATCH 3/7] Fix invalid #if in vnc.c when debugging is enabled Alexander Graf
2009-01-29 11:24 ` [Qemu-devel] [PATCH 4/7] Make vnc buffer big-chunk aware Alexander Graf
2009-01-29 11:24 ` [Qemu-devel] [PATCH 5/7] Split vnc authentication code Alexander Graf
2009-01-29 11:24 ` [Qemu-devel] [PATCH 6/7] Add tight protocol awareness to vnc.c Alexander Graf
2009-01-29 11:24 ` [Qemu-devel] [PATCH 7/7] Add tight encoding (jpeg) " Alexander Graf
2009-01-29 15:17 ` [Qemu-devel] " Anthony Liguori
2009-01-29 15:23 ` Stefano Stabellini
2009-01-29 15:47 ` Anthony Liguori
2009-01-29 15:13 ` [Qemu-devel] Re: [PATCH 6/7] Add tight protocol awareness " Anthony Liguori
2009-01-29 15:24 ` Alexander Graf
2009-01-29 15:43 ` Anthony Liguori
2009-01-29 15:11 ` [Qemu-devel] Re: [PATCH 4/7] Make vnc buffer big-chunk aware Anthony Liguori
2009-01-29 15:16 ` Alexander Graf
2009-01-29 15:22 ` [Qemu-devel] Re: [PATCH 1/7] Split VNC defines to vnc.h Anthony Liguori
2009-01-29 15:29 ` Alexander Graf
2009-01-29 15:46 ` Anthony Liguori
-- strict thread matches above, loose matches on Subject: below --
2009-01-30 14:38 [Qemu-devel] [PATCH 0/7] Add zlib support to VNC server Alexander Graf
2009-01-30 14:38 ` [Qemu-devel] [PATCH 1/7] Split VNC defines to vnc.h Alexander Graf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1233228298-4844-2-git-send-email-agraf@suse.de \
--to=agraf@suse.de \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).