[Spice-devel] [PATCH] server: rename files
Frediano Ziglio
fziglio at redhat.com
Fri Nov 27 05:47:07 PST 2015
From: Marc-André Lureau <marcandre.lureau at gmail.com>
---
NEWS | 2 +-
server/Makefile.am | 62 +++----
server/{reds_sw_canvas.c => canvas.c} | 10 +-
server/{reds_sw_canvas.h => canvas.h} | 9 +-
server/{char_device.c => char-device.c} | 2 +-
server/{char_device.h => char-device.h} | 2 +-
server/dcc-encoders.h | 9 +-
server/dispatcher.h | 3 +-
server/display-channel.h | 16 +-
...glz_encoder_dictionary.c => glz-encoder-dict.c} | 5 +-
...glz_encoder_dictionary.h => glz-encoder-dict.h} | 4 +-
...r_dictionary_protected.h => glz-encoder-priv.h} | 21 ++-
server/{glz_encoder.c => glz-encoder.c} | 4 +-
server/{glz_encoder.h => glz-encoder.h} | 25 ++-
server/glz_encoder_config.h | 59 -------
server/{spice_image_cache.c => image-cache.c} | 2 +-
server/{spice_image_cache.h => image-cache.h} | 2 +-
server/{inputs_channel.c => inputs-channel.c} | 6 +-
server/{inputs_channel.h => inputs-channel.h} | 0
server/{jpeg_encoder.c => jpeg-encoder.c} | 3 +-
server/{jpeg_encoder.h => jpeg-encoder.h} | 0
server/{main_channel.c => main-channel.c} | 6 +-
server/{main_channel.h => main-channel.h} | 0
server/{main_dispatcher.c => main-dispatcher.c} | 2 +-
server/{main_dispatcher.h => main-dispatcher.h} | 0
server/{red_memslots.c => memslot.c} | 33 ++--
server/{red_memslots.h => memslot.h} | 39 +++--
.../{migration_protocol.h => migration-protocol.h} | 2 +-
server/{mjpeg_encoder.c => mjpeg-encoder.c} | 2 +-
server/{mjpeg_encoder.h => mjpeg-encoder.h} | 0
server/red_channel.c | 2 +-
server/red_common.h | 17 +-
server/red_dispatcher.c | 2 +-
server/red_dispatcher.h | 2 -
server/red_parse_qxl.c | 62 +++----
server/red_parse_qxl.h | 2 +-
server/red_record_qxl.c | 62 +++----
server/red_record_qxl.h | 2 +-
server/red_replay_qxl.c | 2 +-
server/red_worker.c | 16 +-
server/red_worker.h | 3 -
server/reds.c | 13 +-
server/reds.h | 5 +-
server/reds_stream.c | 2 +-
server/smartcard.c | 4 +-
server/{snd_worker.c => sound.c} | 6 +-
server/{snd_worker.h => sound.h} | 0
server/spice-bitmap-utils.c | 162 ++++++++++++++++++
server/spice-bitmap-utils.h | 15 +-
server/spice_bitmap_utils.c | 188 ---------------------
server/spice_bitmap_utils.h | 8 -
server/spicevmc.c | 4 +-
server/stream.h | 4 +-
server/utils.h | 6 +-
server/{zlib_encoder.c => zlib-encoder.c} | 2 +-
server/{zlib_encoder.h => zlib-encoder.h} | 0
56 files changed, 435 insertions(+), 486 deletions(-)
rename server/{reds_sw_canvas.c => canvas.c} (84%)
rename server/{reds_sw_canvas.h => canvas.h} (81%)
rename server/{char_device.c => char-device.c} (99%)
rename server/{char_device.h => char-device.h} (99%)
rename server/{glz_encoder_dictionary.c => glz-encoder-dict.c} (99%)
rename server/{glz_encoder_dictionary.h => glz-encoder-dict.h} (96%)
rename server/{glz_encoder_dictionary_protected.h => glz-encoder-priv.h} (95%)
rename server/{glz_encoder.c => glz-encoder.c} (99%)
rename server/{glz_encoder.h => glz-encoder.h} (67%)
delete mode 100644 server/glz_encoder_config.h
rename server/{spice_image_cache.c => image-cache.c} (99%)
rename server/{spice_image_cache.h => image-cache.h} (97%)
rename server/{inputs_channel.c => inputs-channel.c} (99%)
rename server/{inputs_channel.h => inputs-channel.h} (100%)
rename server/{jpeg_encoder.c => jpeg-encoder.c} (99%)
rename server/{jpeg_encoder.h => jpeg-encoder.h} (100%)
rename server/{main_channel.c => main-channel.c} (99%)
rename server/{main_channel.h => main-channel.h} (100%)
rename server/{main_dispatcher.c => main-dispatcher.c} (99%)
rename server/{main_dispatcher.h => main-dispatcher.h} (100%)
rename server/{red_memslots.c => memslot.c} (84%)
rename server/{red_memslots.h => memslot.h} (51%)
rename server/{migration_protocol.h => migration-protocol.h} (99%)
rename server/{mjpeg_encoder.c => mjpeg-encoder.c} (99%)
rename server/{mjpeg_encoder.h => mjpeg-encoder.h} (100%)
rename server/{snd_worker.c => sound.c} (99%)
rename server/{snd_worker.h => sound.h} (100%)
delete mode 100644 server/spice_bitmap_utils.c
delete mode 100644 server/spice_bitmap_utils.h
rename server/{zlib_encoder.c => zlib-encoder.c} (99%)
rename server/{zlib_encoder.h => zlib-encoder.h} (100%)
diff --git a/NEWS b/NEWS
index a33f6cf..c05f62a 100644
--- a/NEWS
+++ b/NEWS
@@ -101,7 +101,7 @@ Major changes in 0.11.3:
SPICE_MAIN_CAP_AGENT_CONNECTED_TOKENS
SPICE_MAIN_CAP_SEAMLESS_MIGRATE
* Misc:
- * char_device.c: Introducing shared flow control code for char devices
+ * char-device.c: Introducing shared flow control code for char devices
* Enable build without client, cegui and slirp.
Major changes in 0.11.0:
diff --git a/server/Makefile.am b/server/Makefile.am
index 6b45a42..7876e9c 100644
--- a/server/Makefile.am
+++ b/server/Makefile.am
@@ -4,6 +4,7 @@ SUBDIRS = . tests
AM_CPPFLAGS = \
-DSPICE_SERVER_INTERNAL \
-DRED_STATISTICS \
+ $(CELT051_CFLAGS) \
$(COMMON_CFLAGS) \
$(GLIB2_CFLAGS) \
$(LZ4_CFLAGS) \
@@ -66,25 +67,24 @@ libspice_server_la_SOURCES = \
agent-msg-filter.c \
agent-msg-filter.h \
cache-item.h \
- char_device.c \
- char_device.h \
+ char-device.c \
+ char-device.h \
demarshallers.h \
- glz_encoder.c \
- glz_encoder.h \
- glz_encoder_config.h \
- glz_encoder_dictionary.c \
- glz_encoder_dictionary.h \
- glz_encoder_dictionary_protected.h \
- inputs_channel.c \
- inputs_channel.h \
- jpeg_encoder.c \
- jpeg_encoder.h \
+ glz-encoder.c \
+ glz-encoder.h \
+ glz-encoder-dict.c \
+ glz-encoder-dict.h \
+ glz-encoder-priv.h \
+ inputs-channel.c \
+ inputs-channel.h \
+ jpeg-encoder.c \
+ jpeg-encoder.h \
lz4_encoder.c \
lz4_encoder.h \
- main_channel.c \
- main_channel.h \
- mjpeg_encoder.c \
- mjpeg_encoder.h \
+ main-channel.c \
+ main-channel.h \
+ mjpeg-encoder.c \
+ mjpeg-encoder.h \
red_channel.c \
red_channel.h \
red_common.h \
@@ -92,11 +92,11 @@ libspice_server_la_SOURCES = \
dispatcher.h \
red_dispatcher.c \
red_dispatcher.h \
- main_dispatcher.c \
- main_dispatcher.h \
- migration_protocol.h \
- red_memslots.c \
- red_memslots.h \
+ main-dispatcher.c \
+ main-dispatcher.h \
+ migration-protocol.h \
+ memslot.c \
+ memslot.h \
red_parse_qxl.c \
red_record_qxl.c \
red_record_qxl.h \
@@ -114,20 +114,18 @@ libspice_server_la_SOURCES = \
reds-private.h \
reds_stream.c \
reds_stream.h \
- reds_sw_canvas.c \
- reds_sw_canvas.h \
- snd_worker.c \
- snd_worker.h \
+ sound.c \
+ sound.h \
+ spice-experimental.h \
+ spice.h \
stat.h \
spicevmc.c \
spice_timer_queue.c \
spice_timer_queue.h \
- zlib_encoder.c \
- zlib_encoder.h \
- spice_bitmap_utils.h \
- spice_bitmap_utils.c \
- spice_image_cache.h \
- spice_image_cache.c \
+ zlib-encoder.c \
+ zlib-encoder.h \
+ image-cache.h \
+ image-cache.c \
pixmap-cache.h \
pixmap-cache.c \
tree.h \
@@ -144,6 +142,8 @@ libspice_server_la_SOURCES = \
display-limits.h \
dcc-encoders.c \
dcc-encoders.h \
+ canvas.c \
+ canvas.h \
$(NULL)
if HAVE_SMARTCARD
diff --git a/server/reds_sw_canvas.c b/server/canvas.c
similarity index 84%
rename from server/reds_sw_canvas.c
rename to server/canvas.c
index 297df37..883fe25 100644
--- a/server/reds_sw_canvas.c
+++ b/server/canvas.c
@@ -1,3 +1,4 @@
+/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */
/*
Copyright (C) 2011 Red Hat, Inc.
@@ -14,13 +15,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "canvas.h"
-#include "common/spice_common.h"
-
-#include "reds_sw_canvas.h"
+#define SPICE_CANVAS_INTERNAL
#define SW_CANVAS_IMAGE_CACHE
#include "common/sw_canvas.c"
#undef SW_CANVAS_IMAGE_CACHE
+#undef SPICE_CANVAS_INTERNAL
diff --git a/server/reds_sw_canvas.h b/server/canvas.h
similarity index 81%
rename from server/reds_sw_canvas.h
rename to server/canvas.h
index 96a4c0c..d2835ec 100644
--- a/server/reds_sw_canvas.h
+++ b/server/canvas.h
@@ -1,3 +1,4 @@
+/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */
/*
Copyright (C) 2011 Red Hat, Inc.
@@ -14,11 +15,13 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef _H_REDS_SW_CANVAS
-#define _H_REDS_SW_CANVAS
+#ifndef CANVAS_H_
+#define CANVAS_H_
+#define SPICE_CANVAS_INTERNAL
#define SW_CANVAS_IMAGE_CACHE
#include "common/sw_canvas.h"
#undef SW_CANVAS_IMAGE_CACHE
+#undef SPICE_CANVAS_INTERNAL
-#endif
+#endif /* CANVAS_H_ */
diff --git a/server/char_device.c b/server/char-device.c
similarity index 99%
rename from server/char_device.c
rename to server/char-device.c
index ae7cb98..3790fab 100644
--- a/server/char_device.c
+++ b/server/char-device.c
@@ -21,7 +21,7 @@
#include <config.h>
-#include "char_device.h"
+#include "char-device.h"
#include "red_channel.h"
#include "reds.h"
diff --git a/server/char_device.h b/server/char-device.h
similarity index 99%
rename from server/char_device.h
rename to server/char-device.h
index 55d1ee6..30b3d4a 100644
--- a/server/char_device.h
+++ b/server/char-device.h
@@ -20,7 +20,7 @@
#include "spice.h"
#include "red_channel.h"
-#include "migration_protocol.h"
+#include "migration-protocol.h"
/*
* Shared code for char devices, mainly for flow control.
diff --git a/server/dcc-encoders.h b/server/dcc-encoders.h
index 5de66f7..dc00ed1 100644
--- a/server/dcc-encoders.h
+++ b/server/dcc-encoders.h
@@ -23,14 +23,13 @@
#include "common/quic.h"
#include "red_channel.h"
#include "red_parse_qxl.h"
-#include "spice_image_cache.h"
-#include "glz_encoder_dictionary.h"
-#include "glz_encoder.h"
-#include "jpeg_encoder.h"
+#include "image-cache.h"
+#include "glz-encoder.h"
+#include "jpeg-encoder.h"
#ifdef USE_LZ4
#include "lz4_encoder.h"
#endif
-#include "zlib_encoder.h"
+#include "zlib-encoder.h"
typedef struct RedCompressBuf RedCompressBuf;
typedef struct GlzDrawableInstanceItem GlzDrawableInstanceItem;
diff --git a/server/dispatcher.h b/server/dispatcher.h
index 353744a..0d3175f 100644
--- a/server/dispatcher.h
+++ b/server/dispatcher.h
@@ -18,8 +18,7 @@
#ifndef DISPATCHER_H
#define DISPATCHER_H
-#include <spice.h>
-#include "utils.h"
+#include "red_common.h"
typedef struct Dispatcher Dispatcher;
diff --git a/server/display-channel.h b/server/display-channel.h
index 2ac8173..e17381c 100644
--- a/server/display-channel.h
+++ b/server/display-channel.h
@@ -25,22 +25,22 @@
#include "reds_stream.h"
#include "cache-item.h"
#include "pixmap-cache.h"
-#include "reds_sw_canvas.h"
+#include "canvas.h"
#include "stat.h"
#include "reds.h"
-#include "mjpeg_encoder.h"
-#include "red_memslots.h"
+#include "mjpeg-encoder.h"
+#include "memslot.h"
#include "red_parse_qxl.h"
#include "red_record_qxl.h"
#include "demarshallers.h"
#include "red_channel.h"
#include "red_dispatcher.h"
#include "dispatcher.h"
-#include "main_channel.h"
-#include "migration_protocol.h"
-#include "main_dispatcher.h"
-#include "spice_bitmap_utils.h"
-#include "spice_image_cache.h"
+#include "main-channel.h"
+#include "migration-protocol.h"
+#include "main-dispatcher.h"
+#include "spice-bitmap-utils.h"
+#include "image-cache.h"
#include "utils.h"
#include "tree.h"
#include "stream.h"
diff --git a/server/glz_encoder_dictionary.c b/server/glz-encoder-dict.c
similarity index 99%
rename from server/glz_encoder_dictionary.c
rename to server/glz-encoder-dict.c
index 70226e1..af74736 100644
--- a/server/glz_encoder_dictionary.c
+++ b/server/glz-encoder-dict.c
@@ -22,8 +22,9 @@
#include <string.h>
#include <stdio.h>
-#include "glz_encoder_dictionary.h"
-#include "glz_encoder_dictionary_protected.h"
+#include "glz-encoder.h"
+#include "glz-encoder-dict.h"
+#include "glz-encoder-priv.h"
/* turning all used images to free ones. If they are alive, calling the free_image callback for
each one */
diff --git a/server/glz_encoder_dictionary.h b/server/glz-encoder-dict.h
similarity index 96%
rename from server/glz_encoder_dictionary.h
rename to server/glz-encoder-dict.h
index eb57aa5..0a58b4b 100644
--- a/server/glz_encoder_dictionary.h
+++ b/server/glz-encoder-dict.h
@@ -19,7 +19,6 @@
#define _H_GLZ_ENCODER_DICTIONARY
#include <stdint.h>
-#include "glz_encoder_config.h"
/*
Interface for maintaining lz dictionary that is shared among several encoders.
@@ -30,6 +29,9 @@
typedef void GlzEncDictContext;
typedef void GlzEncDictImageContext;
+typedef void GlzUsrImageContext;
+typedef struct GlzEncoderUsrContext GlzEncoderUsrContext;
+
/* NOTE: DISPLAY_MIGRATE_DATA_VERSION should change in case GlzEncDictRestoreData changes*/
typedef struct GlzEncDictRestoreData {
uint32_t size;
diff --git a/server/glz_encoder_dictionary_protected.h b/server/glz-encoder-priv.h
similarity index 95%
rename from server/glz_encoder_dictionary_protected.h
rename to server/glz-encoder-priv.h
index 098684f..a14ec74 100644
--- a/server/glz_encoder_dictionary_protected.h
+++ b/server/glz-encoder-priv.h
@@ -15,8 +15,10 @@
License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef _H_GLZ_ENCODER_DICTIONARY_PROTECTED
-#define _H_GLZ_ENCODER_DICTIONARY_PROTECTED
+#ifndef _H_GLZ_ENCODER_PRIV
+#define _H_GLZ_ENCODER_PRIV
+
+#include "red_common.h"
/* Interface for using the dictionary for encoding.
Data structures are exposed for the encoder for efficiency
@@ -183,4 +185,17 @@ void glz_dictionary_post_encode(uint32_t encoder_id, GlzEncoderUsrContext *usr,
(dict)->window.encoders_heads[enc_id]].pixels_so_far <= \
ref_seg->pixels_so_far)))
-#endif // _H_GLZ_ENCODER_DICTIONARY_PROTECTED
+#ifdef DEBUG
+
+#define GLZ_ASSERT(usr, x) \
+ if (!(x)) (usr)->error(usr, "%s: ASSERT %s failed\n", __FUNCTION__, #x);
+
+#else
+
+#define GLZ_ASSERT(usr, x)
+
+#endif
+
+
+
+#endif // _H_GLZ_ENCODER_PRIV
diff --git a/server/glz_encoder.c b/server/glz-encoder.c
similarity index 99%
rename from server/glz_encoder.c
rename to server/glz-encoder.c
index 65f4478..f761330 100644
--- a/server/glz_encoder.c
+++ b/server/glz-encoder.c
@@ -21,8 +21,8 @@
#include <glib.h>
#include <pthread.h>
#include <stdio.h>
-#include "glz_encoder.h"
-#include "glz_encoder_dictionary_protected.h"
+#include "glz-encoder.h"
+#include "glz-encoder-priv.h"
/* Holds a specific data for one encoder, and data that is relevant for the current image encoded */
diff --git a/server/glz_encoder.h b/server/glz-encoder.h
similarity index 67%
rename from server/glz_encoder.h
rename to server/glz-encoder.h
index e91f515..6de7513 100644
--- a/server/glz_encoder.h
+++ b/server/glz-encoder.h
@@ -20,10 +20,29 @@
/* Manging the lz encoding using a dictionary that is shared among encoders */
-#include <stdint.h>
+#include "red_common.h"
#include "common/lz_common.h"
-#include "glz_encoder_dictionary.h"
-#include "glz_encoder_config.h"
+#include "glz-encoder-dict.h"
+
+struct GlzEncoderUsrContext {
+ SPICE_GNUC_PRINTF(2, 3) void (*error)(GlzEncoderUsrContext *usr, const char *fmt, ...);
+ SPICE_GNUC_PRINTF(2, 3) void (*warn)(GlzEncoderUsrContext *usr, const char *fmt, ...);
+ SPICE_GNUC_PRINTF(2, 3) void (*info)(GlzEncoderUsrContext *usr, const char *fmt, ...);
+ void *(*malloc)(GlzEncoderUsrContext *usr, int size);
+ void (*free)(GlzEncoderUsrContext *usr, void *ptr);
+
+ // get the next chunk of the image which is entered to the dictionary. If the image is down to
+ // top, return it from the last line to the first one (stride should always be positive)
+ int (*more_lines)(GlzEncoderUsrContext *usr, uint8_t **lines);
+
+ // get the next chunk of the compressed buffer.return number of bytes in the chunk.
+ int (*more_space)(GlzEncoderUsrContext *usr, uint8_t **io_ptr);
+
+ // called when an image is removed from the dictionary, due to the window size limit
+ void (*free_image)(GlzEncoderUsrContext *usr, GlzUsrImageContext *image);
+
+};
+
typedef void GlzEncoderContext;
diff --git a/server/glz_encoder_config.h b/server/glz_encoder_config.h
deleted file mode 100644
index 6472668..0000000
--- a/server/glz_encoder_config.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- Copyright (C) 2009 Red Hat, Inc.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _H_GLZ_ENCODER_CONFIG
-#define _H_GLZ_ENCODER_CONFIG
-
-#include <spice/macros.h>
-#include "common/lz_common.h"
-
-typedef void GlzUsrImageContext;
-typedef struct GlzEncoderUsrContext GlzEncoderUsrContext;
-
-struct GlzEncoderUsrContext {
- SPICE_GNUC_PRINTF(2, 3) void (*error)(GlzEncoderUsrContext *usr, const char *fmt, ...);
- SPICE_GNUC_PRINTF(2, 3) void (*warn)(GlzEncoderUsrContext *usr, const char *fmt, ...);
- SPICE_GNUC_PRINTF(2, 3) void (*info)(GlzEncoderUsrContext *usr, const char *fmt, ...);
- void *(*malloc)(GlzEncoderUsrContext *usr, int size);
- void (*free)(GlzEncoderUsrContext *usr, void *ptr);
-
- // get the next chunk of the image which is entered to the dictionary. If the image is down to
- // top, return it from the last line to the first one (stride should always be positive)
- int (*more_lines)(GlzEncoderUsrContext *usr, uint8_t **lines);
-
- // get the next chunk of the compressed buffer.return number of bytes in the chunk.
- int (*more_space)(GlzEncoderUsrContext *usr, uint8_t **io_ptr);
-
- // called when an image is removed from the dictionary, due to the window size limit
- void (*free_image)(GlzEncoderUsrContext *usr, GlzUsrImageContext *image);
-
-};
-
-
-#ifdef DEBUG
-
-#define GLZ_ASSERT(usr, x) \
- if (!(x)) (usr)->error(usr, "%s: ASSERT %s failed\n", __FUNCTION__, #x);
-
-#else
-
-#define GLZ_ASSERT(usr, x)
-
-#endif
-
-
-#endif
diff --git a/server/spice_image_cache.c b/server/image-cache.c
similarity index 99%
rename from server/spice_image_cache.c
rename to server/image-cache.c
index 1c5de24..f4d2ee9 100644
--- a/server/spice_image_cache.c
+++ b/server/image-cache.c
@@ -18,7 +18,7 @@
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
-#include "spice_image_cache.h"
+#include "image-cache.h"
#include "red_parse_qxl.h"
#include "display-channel.h"
diff --git a/server/spice_image_cache.h b/server/image-cache.h
similarity index 97%
rename from server/spice_image_cache.h
rename to server/image-cache.h
index 6d6b32d..91ccc6d 100644
--- a/server/spice_image_cache.h
+++ b/server/image-cache.h
@@ -24,7 +24,7 @@
#include "common/canvas_base.h"
#include "common/ring.h"
-/* FIXME: move back to display_channel.h (once structs are private) */
+/* FIXME: move back to display-channel.h (once structs are private) */
typedef struct Drawable Drawable;
typedef struct DisplayChannelClient DisplayChannelClient;
diff --git a/server/inputs_channel.c b/server/inputs-channel.c
similarity index 99%
rename from server/inputs_channel.c
rename to server/inputs-channel.c
index 2934572..3e8fccd 100644
--- a/server/inputs_channel.c
+++ b/server/inputs-channel.c
@@ -39,9 +39,9 @@
#include "reds.h"
#include "reds_stream.h"
#include "red_channel.h"
-#include "main_channel.h"
-#include "inputs_channel.h"
-#include "migration_protocol.h"
+#include "main-channel.h"
+#include "inputs-channel.h"
+#include "migration-protocol.h"
// TODO: RECEIVE_BUF_SIZE used to be the same for inputs_channel and main_channel
// since it was defined once in reds.c which contained both.
diff --git a/server/inputs_channel.h b/server/inputs-channel.h
similarity index 100%
rename from server/inputs_channel.h
rename to server/inputs-channel.h
diff --git a/server/jpeg_encoder.c b/server/jpeg-encoder.c
similarity index 99%
rename from server/jpeg_encoder.c
rename to server/jpeg-encoder.c
index 0296e9b..428fd5b 100644
--- a/server/jpeg_encoder.c
+++ b/server/jpeg-encoder.c
@@ -19,7 +19,8 @@
#endif
#include "red_common.h"
-#include "jpeg_encoder.h"
+#include "jpeg-encoder.h"
+
#include <jpeglib.h>
typedef struct JpegEncoder {
diff --git a/server/jpeg_encoder.h b/server/jpeg-encoder.h
similarity index 100%
rename from server/jpeg_encoder.h
rename to server/jpeg-encoder.h
diff --git a/server/main_channel.c b/server/main-channel.c
similarity index 99%
rename from server/main_channel.c
rename to server/main-channel.c
index 1af6baa..5ca5bba 100644
--- a/server/main_channel.c
+++ b/server/main-channel.c
@@ -41,12 +41,12 @@
#include "common/ring.h"
#include "demarshallers.h"
-#include "main_channel.h"
+#include "main-channel.h"
#include "red_channel.h"
#include "red_common.h"
#include "reds.h"
-#include "migration_protocol.h"
-#include "main_dispatcher.h"
+#include "migration-protocol.h"
+#include "main-dispatcher.h"
#include "utils.h"
#define ZERO_BUF_SIZE 4096
diff --git a/server/main_channel.h b/server/main-channel.h
similarity index 100%
rename from server/main_channel.h
rename to server/main-channel.h
diff --git a/server/main_dispatcher.c b/server/main-dispatcher.c
similarity index 99%
rename from server/main_dispatcher.c
rename to server/main-dispatcher.c
index 6ad9d89..eb7cee6 100644
--- a/server/main_dispatcher.c
+++ b/server/main-dispatcher.c
@@ -23,7 +23,7 @@
#include "red_common.h"
#include "dispatcher.h"
-#include "main_dispatcher.h"
+#include "main-dispatcher.h"
#include "red_channel.h"
#include "reds.h"
diff --git a/server/main_dispatcher.h b/server/main-dispatcher.h
similarity index 100%
rename from server/main_dispatcher.h
rename to server/main-dispatcher.h
diff --git a/server/red_memslots.c b/server/memslot.c
similarity index 84%
rename from server/red_memslots.c
rename to server/memslot.c
index 1b3ec62..6b5bb8d 100644
--- a/server/red_memslots.c
+++ b/server/memslot.c
@@ -21,8 +21,7 @@
#include <inttypes.h>
-#include "red_common.h"
-#include "red_memslots.h"
+#include "memslot.h"
static unsigned long __get_clean_virt(RedMemSlotInfo *info, QXLPHYSICAL addr)
{
@@ -49,7 +48,7 @@ static void print_memslots(RedMemSlotInfo *info)
}
/* return 1 if validation successfull, 0 otherwise */
-int validate_virt(RedMemSlotInfo *info, unsigned long virt, int slot_id,
+int memslot_validate_virt(RedMemSlotInfo *info, unsigned long virt, int slot_id,
uint32_t add_size, uint32_t group_id)
{
MemSlot *slot;
@@ -76,7 +75,7 @@ int validate_virt(RedMemSlotInfo *info, unsigned long virt, int slot_id,
* return virtual address if successful, which may be 0.
* returns 0 and sets error to 1 if an error condition occurs.
*/
-unsigned long get_virt(RedMemSlotInfo *info, QXLPHYSICAL addr, uint32_t add_size,
+unsigned long memslot_get_virt(RedMemSlotInfo *info, QXLPHYSICAL addr, uint32_t add_size,
int group_id, int *error)
{
int slot_id;
@@ -92,7 +91,7 @@ unsigned long get_virt(RedMemSlotInfo *info, QXLPHYSICAL addr, uint32_t add_size
return 0;
}
- slot_id = get_memslot_id(info, addr);
+ slot_id = memslot_get_id(info, addr);
if (slot_id > info->num_memslots) {
print_memslots(info);
spice_critical("slot_id %d too big, addr=%" PRIx64, slot_id, addr);
@@ -102,7 +101,7 @@ unsigned long get_virt(RedMemSlotInfo *info, QXLPHYSICAL addr, uint32_t add_size
slot = &info->mem_slots[group_id][slot_id];
- generation = get_generation(info, addr);
+ generation = memslot_get_generation(info, addr);
if (generation != slot->generation) {
print_memslots(info);
spice_critical("address generation is not valid, group_id %d, slot_id %d, gen %d, slot_gen %d\n",
@@ -114,7 +113,7 @@ unsigned long get_virt(RedMemSlotInfo *info, QXLPHYSICAL addr, uint32_t add_size
h_virt = __get_clean_virt(info, addr);
h_virt += slot->address_delta;
- if (!validate_virt(info, h_virt, slot_id, add_size, group_id)) {
+ if (!memslot_validate_virt(info, h_virt, slot_id, add_size, group_id)) {
*error = 1;
return 0;
}
@@ -122,7 +121,7 @@ unsigned long get_virt(RedMemSlotInfo *info, QXLPHYSICAL addr, uint32_t add_size
return h_virt;
}
-void red_memslot_info_init(RedMemSlotInfo *info,
+void memslot_info_init(RedMemSlotInfo *info,
uint32_t num_groups, uint32_t num_slots,
uint8_t generation_bits,
uint8_t id_bits,
@@ -130,8 +129,8 @@ void red_memslot_info_init(RedMemSlotInfo *info,
{
uint32_t i;
- spice_assert(num_slots > 0);
- spice_assert(num_groups > 0);
+ spice_return_if_fail(num_slots > 0);
+ spice_return_if_fail(num_groups > 0);
info->num_memslots_groups = num_groups;
info->num_memslots = num_slots;
@@ -153,12 +152,12 @@ void red_memslot_info_init(RedMemSlotInfo *info,
(info->mem_slot_bits + info->generation_bits));
}
-void red_memslot_info_add_slot(RedMemSlotInfo *info, uint32_t slot_group_id, uint32_t slot_id,
+void memslot_info_add_slot(RedMemSlotInfo *info, uint32_t slot_group_id, uint32_t slot_id,
uint64_t addr_delta, unsigned long virt_start, unsigned long virt_end,
uint32_t generation)
{
- spice_assert(info->num_memslots_groups > slot_group_id);
- spice_assert(info->num_memslots > slot_id);
+ spice_return_if_fail(info->num_memslots_groups > slot_group_id);
+ spice_return_if_fail(info->num_memslots > slot_id);
info->mem_slots[slot_group_id][slot_id].address_delta = addr_delta;
info->mem_slots[slot_group_id][slot_id].virt_start_addr = virt_start;
@@ -166,16 +165,16 @@ void red_memslot_info_add_slot(RedMemSlotInfo *info, uint32_t slot_group_id, uin
info->mem_slots[slot_group_id][slot_id].generation = generation;
}
-void red_memslot_info_del_slot(RedMemSlotInfo *info, uint32_t slot_group_id, uint32_t slot_id)
+void memslot_info_del_slot(RedMemSlotInfo *info, uint32_t slot_group_id, uint32_t slot_id)
{
- spice_assert(info->num_memslots_groups > slot_group_id);
- spice_assert(info->num_memslots > slot_id);
+ spice_return_if_fail(info->num_memslots_groups > slot_group_id);
+ spice_return_if_fail(info->num_memslots > slot_id);
info->mem_slots[slot_group_id][slot_id].virt_start_addr = 0;
info->mem_slots[slot_group_id][slot_id].virt_end_addr = 0;
}
-void red_memslot_info_reset(RedMemSlotInfo *info)
+void memslot_info_reset(RedMemSlotInfo *info)
{
uint32_t i;
for (i = 0; i < info->num_memslots_groups; ++i) {
diff --git a/server/red_memslots.h b/server/memslot.h
similarity index 51%
rename from server/red_memslots.h
rename to server/memslot.h
index 27443a6..6f02f90 100644
--- a/server/red_memslots.h
+++ b/server/memslot.h
@@ -16,8 +16,8 @@
License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef _H_REDMEMSLOTS
-#define _H_REDMEMSLOTS
+#ifndef _H_MEMSLOT
+#define _H_MEMSLOT
#include "red_common.h"
@@ -43,30 +43,29 @@ typedef struct RedMemSlotInfo {
unsigned long memslot_clean_virt_mask;
} RedMemSlotInfo;
-static inline int get_memslot_id(RedMemSlotInfo *info, uint64_t addr)
+static inline int memslot_get_id (RedMemSlotInfo *info, uint64_t addr)
{
return addr >> info->memslot_id_shift;
}
-static inline int get_generation(RedMemSlotInfo *info, uint64_t addr)
+static inline int memslot_get_generation (RedMemSlotInfo *info, uint64_t addr)
{
return (addr >> info->memslot_gen_shift) & info->memslot_gen_mask;
}
-int validate_virt(RedMemSlotInfo *info, unsigned long virt, int slot_id,
- uint32_t add_size, uint32_t group_id);
-unsigned long get_virt(RedMemSlotInfo *info, QXLPHYSICAL addr, uint32_t add_size,
- int group_id, int *error);
+int memslot_validate_virt (RedMemSlotInfo *info, unsigned long virt, int slot_id,
+ uint32_t add_size, uint32_t group_id);
+unsigned long memslot_get_virt (RedMemSlotInfo *info, QXLPHYSICAL addr, uint32_t add_size,
+ int group_id, int *error);
+void memslot_info_init (RedMemSlotInfo *info,
+ uint32_t num_groups, uint32_t num_slots,
+ uint8_t generation_bits,
+ uint8_t id_bits,
+ uint8_t internal_groupslot_id);
+void memslot_info_add_slot (RedMemSlotInfo *info, uint32_t slot_group_id, uint32_t slot_id,
+ uint64_t addr_delta, unsigned long virt_start, unsigned long virt_end,
+ uint32_t generation);
+void memslot_info_del_slot (RedMemSlotInfo *info, uint32_t slot_group_id, uint32_t slot_id);
+void memslot_info_reset (RedMemSlotInfo *info);
-void red_memslot_info_init(RedMemSlotInfo *info,
- uint32_t num_groups, uint32_t num_slots,
- uint8_t generation_bits,
- uint8_t id_bits,
- uint8_t internal_groupslot_id);
-void red_memslot_info_add_slot(RedMemSlotInfo *info, uint32_t slot_group_id, uint32_t slot_id,
- uint64_t addr_delta, unsigned long virt_start, unsigned long virt_end,
- uint32_t generation);
-void red_memslot_info_del_slot(RedMemSlotInfo *info, uint32_t slot_group_id, uint32_t slot_id);
-void red_memslot_info_reset(RedMemSlotInfo *info);
-
-#endif
+#endif /* MEMSLOT_H_ */
diff --git a/server/migration_protocol.h b/server/migration-protocol.h
similarity index 99%
rename from server/migration_protocol.h
rename to server/migration-protocol.h
index 21d3ec8..c1d97ef 100644
--- a/server/migration_protocol.h
+++ b/server/migration-protocol.h
@@ -20,7 +20,7 @@
#include <spice/macros.h>
#include <spice/vd_agent.h>
-#include "glz_encoder_dictionary.h"
+#include "glz-encoder-dict.h"
/* ************************************************
* src-server to dst-server migration data messages
diff --git a/server/mjpeg_encoder.c b/server/mjpeg-encoder.c
similarity index 99%
rename from server/mjpeg_encoder.c
rename to server/mjpeg-encoder.c
index 9b331c1..04c95a6 100644
--- a/server/mjpeg_encoder.c
+++ b/server/mjpeg-encoder.c
@@ -20,7 +20,7 @@
#endif
#include "red_common.h"
-#include "mjpeg_encoder.h"
+#include "mjpeg-encoder.h"
#include "utils.h"
#include <jerror.h>
#include <jpeglib.h>
diff --git a/server/mjpeg_encoder.h b/server/mjpeg-encoder.h
similarity index 100%
rename from server/mjpeg_encoder.h
rename to server/mjpeg-encoder.h
diff --git a/server/red_channel.c b/server/red_channel.c
index 609c83f..948d354 100644
--- a/server/red_channel.c
+++ b/server/red_channel.c
@@ -42,7 +42,7 @@
#include "red_channel.h"
#include "reds.h"
#include "reds_stream.h"
-#include "main_dispatcher.h"
+#include "main-dispatcher.h"
#include "utils.h"
typedef struct EmptyMsgPipeItem {
diff --git a/server/red_common.h b/server/red_common.h
index 7f1677e..2d3977b 100644
--- a/server/red_common.h
+++ b/server/red_common.h
@@ -18,15 +18,26 @@
#ifndef _H_RED_COMMON
#define _H_RED_COMMON
-#include <spice/macros.h>
+#include <glib.h>
+
+#include <errno.h>
+#include <stdbool.h>
+#include <stdint.h>
#include <string.h>
+#include <unistd.h>
+#include <spice/macros.h>
+#include "common/log.h"
+#include "common/lz_common.h"
+#include "common/marshaller.h"
#include "common/mem.h"
-#include "common/spice_common.h"
#include "common/messages.h"
-#include "common/lz_common.h"
+#include "common/ring.h"
+#include "common/spice_common.h"
+#include "common/draw.h"
#include "spice.h"
+#include "utils.h"
#define SPICE_GNUC_VISIBLE __attribute__ ((visibility ("default")))
diff --git a/server/red_dispatcher.c b/server/red_dispatcher.c
index a7825f5..7baa197 100644
--- a/server/red_dispatcher.c
+++ b/server/red_dispatcher.c
@@ -32,7 +32,7 @@
#include "spice.h"
#include "red_worker.h"
-#include "reds_sw_canvas.h"
+#include "canvas.h"
#include "reds.h"
#include "dispatcher.h"
#include "red_parse_qxl.h"
diff --git a/server/red_dispatcher.h b/server/red_dispatcher.h
index 9f3474f..13c0cee 100644
--- a/server/red_dispatcher.h
+++ b/server/red_dispatcher.h
@@ -18,8 +18,6 @@
#ifndef _H_RED_DISPATCHER
#define _H_RED_DISPATCHER
-#include <unistd.h>
-#include <errno.h>
#include "red_channel.h"
typedef struct RedDispatcher RedDispatcher;
diff --git a/server/red_parse_qxl.c b/server/red_parse_qxl.c
index 2cfd5ea..9464c7a 100644
--- a/server/red_parse_qxl.c
+++ b/server/red_parse_qxl.c
@@ -25,7 +25,7 @@
#include "common/lz_common.h"
#include "spice-bitmap-utils.h"
#include "red_common.h"
-#include "red_memslots.h"
+#include "memslot.h"
#include "red_parse_qxl.h"
/* Max size in bytes for any data field used in a QXL command.
@@ -52,7 +52,7 @@ static void hexdump_qxl(RedMemSlotInfo *slots, int group_id,
uint8_t *hex;
int i;
- hex = (uint8_t*)get_virt(slots, addr, bytes, group_id);
+ hex = (uint8_t*)memslot_get_virt(slots, addr, bytes, group_id);
for (i = 0; i < bytes; i++) {
if (0 == i % 16) {
fprintf(stderr, "%lx: ", addr+i);
@@ -118,7 +118,7 @@ static size_t red_get_data_chunks_ptr(RedMemSlotInfo *slots, int group_id,
data_size += red->data_size;
red->data = qxl->data;
red->prev_chunk = red->next_chunk = NULL;
- if (!validate_virt(slots, (intptr_t)red->data, memslot_id, red->data_size, group_id)) {
+ if (!memslot_validate_virt(slots, (intptr_t)red->data, memslot_id, red->data_size, group_id)) {
red->data = NULL;
return 0;
}
@@ -132,8 +132,8 @@ static size_t red_get_data_chunks_ptr(RedMemSlotInfo *slots, int group_id,
goto error;
}
- memslot_id = get_memslot_id(slots, next_chunk);
- qxl = (QXLDataChunk *)get_virt(slots, next_chunk, sizeof(*qxl),
+ memslot_id = memslot_get_id(slots, next_chunk);
+ qxl = (QXLDataChunk *)memslot_get_virt(slots, next_chunk, sizeof(*qxl),
group_id, &error);
if (error)
goto error;
@@ -161,7 +161,7 @@ static size_t red_get_data_chunks_ptr(RedMemSlotInfo *slots, int group_id,
spice_warning("too much data inside chunks, avoiding DoS\n");
goto error;
}
- if (!validate_virt(slots, (intptr_t)red->data, memslot_id, red->data_size, group_id))
+ if (!memslot_validate_virt(slots, (intptr_t)red->data, memslot_id, red->data_size, group_id))
goto error;
}
@@ -185,9 +185,9 @@ static size_t red_get_data_chunks(RedMemSlotInfo *slots, int group_id,
{
QXLDataChunk *qxl;
int error;
- int memslot_id = get_memslot_id(slots, addr);
+ int memslot_id = memslot_get_id(slots, addr);
- qxl = (QXLDataChunk *)get_virt(slots, addr, sizeof(*qxl), group_id, &error);
+ qxl = (QXLDataChunk *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id, &error);
if (error) {
return 0;
}
@@ -242,12 +242,12 @@ static SpicePath *red_get_path(RedMemSlotInfo *slots, int group_id,
uint32_t count;
int error;
- qxl = (QXLPath *)get_virt(slots, addr, sizeof(*qxl), group_id, &error);
+ qxl = (QXLPath *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id, &error);
if (error) {
return NULL;
}
size = red_get_data_chunks_ptr(slots, group_id,
- get_memslot_id(slots, addr),
+ memslot_get_id(slots, addr),
&chunks, &qxl->chunk);
data = red_linearize_chunk(&chunks, size, &free_data);
red_put_data_chunks(&chunks);
@@ -321,12 +321,12 @@ static SpiceClipRects *red_get_clip_rects(RedMemSlotInfo *slots, int group_id,
int error;
uint32_t num_rects;
- qxl = (QXLClipRects *)get_virt(slots, addr, sizeof(*qxl), group_id, &error);
+ qxl = (QXLClipRects *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id, &error);
if (error) {
return NULL;
}
size = red_get_data_chunks_ptr(slots, group_id,
- get_memslot_id(slots, addr),
+ memslot_get_id(slots, addr),
&chunks, &qxl->chunk);
data = red_linearize_chunk(&chunks, size, &free_data);
red_put_data_chunks(&chunks);
@@ -355,7 +355,7 @@ static SpiceChunks *red_get_image_data_flat(RedMemSlotInfo *slots, int group_id,
data = spice_chunks_new(1);
data->data_size = size;
- data->chunk[0].data = (void*)get_virt(slots, addr, size, group_id, &error);
+ data->chunk[0].data = (void*)memslot_get_virt(slots, addr, size, group_id, &error);
if (error) {
return 0;
}
@@ -445,7 +445,7 @@ static SpiceImage *red_get_image(RedMemSlotInfo *slots, int group_id,
return NULL;
}
- qxl = (QXLImage *)get_virt(slots, addr, sizeof(*qxl), group_id, &error);
+ qxl = (QXLImage *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id, &error);
if (error) {
return NULL;
}
@@ -488,14 +488,14 @@ static SpiceImage *red_get_image(RedMemSlotInfo *slots, int group_id,
if (palette) {
QXLPalette *qp;
int i, num_ents;
- qp = (QXLPalette *)get_virt(slots, palette,
+ qp = (QXLPalette *)memslot_get_virt(slots, palette,
sizeof(*qp), group_id, &error);
if (error) {
goto error;
}
num_ents = qp->num_ents;
- if (!validate_virt(slots, (intptr_t)qp->ents,
- get_memslot_id(slots, palette),
+ if (!memslot_validate_virt(slots, (intptr_t)qp->ents,
+ memslot_get_id(slots, palette),
num_ents * sizeof(qp->ents[0]), group_id)) {
goto error;
}
@@ -544,7 +544,7 @@ static SpiceImage *red_get_image(RedMemSlotInfo *slots, int group_id,
case SPICE_IMAGE_TYPE_QUIC:
red->u.quic.data_size = qxl->quic.data_size;
size = red_get_data_chunks_ptr(slots, group_id,
- get_memslot_id(slots, addr),
+ memslot_get_id(slots, addr),
&chunks, (QXLDataChunk *)qxl->quic.data);
spice_assert(size == red->u.quic.data_size);
if (size != red->u.quic.data_size) {
@@ -741,7 +741,7 @@ static bool get_transform(RedMemSlotInfo *slots,
if (qxl_transform == 0)
return FALSE;
- t = (uint32_t *)get_virt(slots, qxl_transform, sizeof(*dst_transform), group_id, &error);
+ t = (uint32_t *)memslot_get_virt(slots, qxl_transform, sizeof(*dst_transform), group_id, &error);
if (!t || error)
return FALSE;
@@ -816,7 +816,7 @@ static int red_get_stroke_ptr(RedMemSlotInfo *slots, int group_id,
red->attr.style = spice_malloc_n(style_nseg, sizeof(SPICE_FIXED28_4));
red->attr.style_nseg = style_nseg;
spice_assert(qxl->attr.style);
- buf = (uint8_t *)get_virt(slots, qxl->attr.style,
+ buf = (uint8_t *)memslot_get_virt(slots, qxl->attr.style,
style_nseg * sizeof(QXLFIXED), group_id, &error);
if (error) {
return error;
@@ -858,12 +858,12 @@ static SpiceString *red_get_string(RedMemSlotInfo *slots, int group_id,
int error;
uint16_t qxl_flags, qxl_length;
- qxl = (QXLString *)get_virt(slots, addr, sizeof(*qxl), group_id, &error);
+ qxl = (QXLString *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id, &error);
if (error) {
return NULL;
}
chunk_size = red_get_data_chunks_ptr(slots, group_id,
- get_memslot_id(slots, addr),
+ memslot_get_id(slots, addr),
&chunks, &qxl->chunk);
if (!chunk_size) {
/* XXX could be a zero sized string.. */
@@ -1013,7 +1013,7 @@ static int red_get_native_drawable(RedMemSlotInfo *slots, int group_id,
int i;
int error = 0;
- qxl = (QXLDrawable *)get_virt(slots, addr, sizeof(*qxl), group_id, &error);
+ qxl = (QXLDrawable *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id, &error);
if (error) {
return error;
}
@@ -1096,7 +1096,7 @@ static int red_get_compat_drawable(RedMemSlotInfo *slots, int group_id,
QXLCompatDrawable *qxl;
int error;
- qxl = (QXLCompatDrawable *)get_virt(slots, addr, sizeof(*qxl), group_id, &error);
+ qxl = (QXLCompatDrawable *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id, &error);
if (error) {
return error;
}
@@ -1244,7 +1244,7 @@ int red_get_update_cmd(RedMemSlotInfo *slots, int group_id,
QXLUpdateCmd *qxl;
int error;
- qxl = (QXLUpdateCmd *)get_virt(slots, addr, sizeof(*qxl), group_id, &error);
+ qxl = (QXLUpdateCmd *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id, &error);
if (error) {
return 1;
}
@@ -1273,7 +1273,7 @@ int red_get_message(RedMemSlotInfo *slots, int group_id,
* luckily this is for debug logging only,
* so we can just ignore it by default.
*/
- qxl = (QXLMessage *)get_virt(slots, addr, sizeof(*qxl), group_id, &error);
+ qxl = (QXLMessage *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id, &error);
if (error) {
return 1;
}
@@ -1312,7 +1312,7 @@ int red_get_surface_cmd(RedMemSlotInfo *slots, int group_id,
int error;
unsigned int bpp;
- qxl = (QXLSurfaceCmd *)get_virt(slots, addr, sizeof(*qxl), group_id,
+ qxl = (QXLSurfaceCmd *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id,
&error);
if (error) {
return 1;
@@ -1350,7 +1350,7 @@ int red_get_surface_cmd(RedMemSlotInfo *slots, int group_id,
return 1;
}
red->u.surface_create.data =
- (uint8_t*)get_virt(slots, qxl->u.surface_create.data, size, group_id, &error);
+ (uint8_t*)memslot_get_virt(slots, qxl->u.surface_create.data, size, group_id, &error);
if (error) {
return 1;
}
@@ -1374,7 +1374,7 @@ static int red_get_cursor(RedMemSlotInfo *slots, int group_id,
bool free_data;
int error;
- qxl = (QXLCursor *)get_virt(slots, addr, sizeof(*qxl), group_id, &error);
+ qxl = (QXLCursor *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id, &error);
if (error) {
return 1;
}
@@ -1389,7 +1389,7 @@ static int red_get_cursor(RedMemSlotInfo *slots, int group_id,
red->flags = 0;
red->data_size = qxl->data_size;
size = red_get_data_chunks_ptr(slots, group_id,
- get_memslot_id(slots, addr),
+ memslot_get_id(slots, addr),
&chunks, &qxl->chunk);
red->data_size = MIN(red->data_size, size);
data = red_linearize_chunk(&chunks, size, &free_data);
@@ -1414,7 +1414,7 @@ int red_get_cursor_cmd(RedMemSlotInfo *slots, int group_id,
QXLCursorCmd *qxl;
int error;
- qxl = (QXLCursorCmd *)get_virt(slots, addr, sizeof(*qxl), group_id, &error);
+ qxl = (QXLCursorCmd *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id, &error);
if (error) {
return error;
}
diff --git a/server/red_parse_qxl.h b/server/red_parse_qxl.h
index b3b28e1..09059f5 100644
--- a/server/red_parse_qxl.h
+++ b/server/red_parse_qxl.h
@@ -21,7 +21,7 @@
#include <spice/qxl_dev.h>
#include "red_common.h"
-#include "red_memslots.h"
+#include "memslot.h"
typedef struct RedDrawable {
int refs;
diff --git a/server/red_record_qxl.c b/server/red_record_qxl.c
index b35b462..0a29432 100644
--- a/server/red_record_qxl.c
+++ b/server/red_record_qxl.c
@@ -23,9 +23,9 @@
#include <inttypes.h>
#include "red_worker.h"
#include "red_common.h"
-#include "red_memslots.h"
+#include "memslot.h"
#include "red_parse_qxl.h"
-#include "zlib_encoder.h"
+#include "zlib-encoder.h"
#if 0
static void hexdump_qxl(RedMemSlotInfo *slots, int group_id,
@@ -139,21 +139,21 @@ static size_t red_record_data_chunks_ptr(FILE *fd, const char *prefix,
while (cur->next_chunk) {
cur =
- (QXLDataChunk*)get_virt(slots, cur->next_chunk, sizeof(*cur), group_id,
+ (QXLDataChunk*)memslot_get_virt(slots, cur->next_chunk, sizeof(*cur), group_id,
&error);
data_size += cur->data_size;
count_chunks++;
}
fprintf(fd, "data_chunks %d %ld\n", count_chunks, data_size);
- validate_virt(slots, (intptr_t)qxl->data, memslot_id, qxl->data_size, group_id);
+ memslot_validate_virt(slots, (intptr_t)qxl->data, memslot_id, qxl->data_size, group_id);
write_binary(fd, prefix, qxl->data_size, qxl->data);
while (qxl->next_chunk) {
- memslot_id = get_memslot_id(slots, qxl->next_chunk);
- qxl = (QXLDataChunk*)get_virt(slots, qxl->next_chunk, sizeof(*qxl), group_id,
+ memslot_id = memslot_get_id(slots, qxl->next_chunk);
+ qxl = (QXLDataChunk*)memslot_get_virt(slots, qxl->next_chunk, sizeof(*qxl), group_id,
&error);
- validate_virt(slots, (intptr_t)qxl->data, memslot_id, qxl->data_size, group_id);
+ memslot_validate_virt(slots, (intptr_t)qxl->data, memslot_id, qxl->data_size, group_id);
write_binary(fd, prefix, qxl->data_size, qxl->data);
}
@@ -165,10 +165,10 @@ static size_t red_record_data_chunks(FILE *fd, const char *prefix,
QXLPHYSICAL addr)
{
QXLDataChunk *qxl;
- int memslot_id = get_memslot_id(slots, addr);
+ int memslot_id = memslot_get_id(slots, addr);
int error;
- qxl = (QXLDataChunk*)get_virt(slots, addr, sizeof(*qxl), group_id,
+ qxl = (QXLDataChunk*)memslot_get_virt(slots, addr, sizeof(*qxl), group_id,
&error);
return red_record_data_chunks_ptr(fd, prefix, slots, group_id, memslot_id, qxl);
}
@@ -195,10 +195,10 @@ static void red_record_path(FILE *fd, RedMemSlotInfo *slots, int group_id,
QXLPath *qxl;
int error;
- qxl = (QXLPath *)get_virt(slots, addr, sizeof(*qxl), group_id,
+ qxl = (QXLPath *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id,
&error);
red_record_data_chunks_ptr(fd, "path", slots, group_id,
- get_memslot_id(slots, addr),
+ memslot_get_id(slots, addr),
&qxl->chunk);
}
@@ -208,11 +208,11 @@ static void red_record_clip_rects(FILE *fd, RedMemSlotInfo *slots, int group_id,
QXLClipRects *qxl;
int error;
- qxl = (QXLClipRects *)get_virt(slots, addr, sizeof(*qxl), group_id,
+ qxl = (QXLClipRects *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id,
&error);
fprintf(fd, "num_rects %d\n", qxl->num_rects);
red_record_data_chunks_ptr(fd, "clip_rects", slots, group_id,
- get_memslot_id(slots, addr),
+ memslot_get_id(slots, addr),
&qxl->chunk);
}
@@ -223,7 +223,7 @@ static void red_record_virt_data_flat(FILE *fd, const char *prefix,
int error;
write_binary(fd, prefix,
- size, (uint8_t*)get_virt(slots, addr, size, group_id,
+ size, (uint8_t*)memslot_get_virt(slots, addr, size, group_id,
&error));
}
@@ -253,7 +253,7 @@ static void red_record_image(FILE *fd, RedMemSlotInfo *slots, int group_id,
return;
}
- qxl = (QXLImage *)get_virt(slots, addr, sizeof(*qxl), group_id,
+ qxl = (QXLImage *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id,
&error);
fprintf(fd, "descriptor.id %ld\n", qxl->descriptor.id);
fprintf(fd, "descriptor.type %d\n", qxl->descriptor.type);
@@ -273,12 +273,12 @@ static void red_record_image(FILE *fd, RedMemSlotInfo *slots, int group_id,
if (qxl->bitmap.palette) {
QXLPalette *qp;
int i, num_ents;
- qp = (QXLPalette *)get_virt(slots, qxl->bitmap.palette,
+ qp = (QXLPalette *)memslot_get_virt(slots, qxl->bitmap.palette,
sizeof(*qp), group_id, &error);
num_ents = qp->num_ents;
fprintf(fd, "qp.num_ents %d\n", qp->num_ents);
- validate_virt(slots, (intptr_t)qp->ents,
- get_memslot_id(slots, qxl->bitmap.palette),
+ memslot_validate_virt(slots, (intptr_t)qp->ents,
+ memslot_get_id(slots, qxl->bitmap.palette),
num_ents * sizeof(qp->ents[0]), group_id);
fprintf(fd, "unique %ld\n", qp->unique);
for (i = 0; i < num_ents; i++) {
@@ -302,7 +302,7 @@ static void red_record_image(FILE *fd, RedMemSlotInfo *slots, int group_id,
case SPICE_IMAGE_TYPE_QUIC:
fprintf(fd, "quic.data_size %d\n", qxl->quic.data_size);
size = red_record_data_chunks_ptr(fd, "quic.data", slots, group_id,
- get_memslot_id(slots, addr),
+ memslot_get_id(slots, addr),
(QXLDataChunk *)qxl->quic.data);
spice_assert(size == qxl->quic.data_size);
break;
@@ -426,7 +426,7 @@ static void red_record_stroke_ptr(FILE *fd, RedMemSlotInfo *slots, int group_id,
fprintf(fd, "attr.style_nseg %d\n", qxl->attr.style_nseg);
spice_assert(qxl->attr.style);
- buf = (uint8_t *)get_virt(slots, qxl->attr.style,
+ buf = (uint8_t *)memslot_get_virt(slots, qxl->attr.style,
style_nseg * sizeof(QXLFIXED), group_id,
&error);
write_binary(fd, "style", style_nseg * sizeof(QXLFIXED), buf);
@@ -443,13 +443,13 @@ static void red_record_string(FILE *fd, RedMemSlotInfo *slots, int group_id,
size_t chunk_size;
int error;
- qxl = (QXLString *)get_virt(slots, addr, sizeof(*qxl), group_id,
+ qxl = (QXLString *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id,
&error);
fprintf(fd, "data_size %d\n", qxl->data_size);
fprintf(fd, "length %d\n", qxl->length);
fprintf(fd, "flags %d\n", qxl->flags);
chunk_size = red_record_data_chunks_ptr(fd, "string", slots, group_id,
- get_memslot_id(slots, addr),
+ memslot_get_id(slots, addr),
&qxl->chunk);
spice_assert(chunk_size == qxl->data_size);
}
@@ -521,7 +521,7 @@ static void red_record_native_drawable(FILE *fd, RedMemSlotInfo *slots, int grou
int i;
int error;
- qxl = (QXLDrawable *)get_virt(slots, addr, sizeof(*qxl), group_id,
+ qxl = (QXLDrawable *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id,
&error);
red_record_rect_ptr(fd, "bbox", &qxl->bbox);
@@ -597,7 +597,7 @@ static void red_record_compat_drawable(FILE *fd, RedMemSlotInfo *slots, int grou
QXLCompatDrawable *qxl;
int error;
- qxl = (QXLCompatDrawable *)get_virt(slots, addr, sizeof(*qxl), group_id,
+ qxl = (QXLCompatDrawable *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id,
&error);
red_record_rect_ptr(fd, "bbox", &qxl->bbox);
@@ -676,7 +676,7 @@ static void red_record_update_cmd(FILE *fd, RedMemSlotInfo *slots, int group_id,
QXLUpdateCmd *qxl;
int error;
- qxl = (QXLUpdateCmd *)get_virt(slots, addr, sizeof(*qxl), group_id,
+ qxl = (QXLUpdateCmd *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id,
&error);
fprintf(fd, "update\n");
@@ -697,7 +697,7 @@ static void red_record_message(FILE *fd, RedMemSlotInfo *slots, int group_id,
* luckily this is for debug logging only,
* so we can just ignore it by default.
*/
- qxl = (QXLMessage *)get_virt(slots, addr, sizeof(*qxl), group_id,
+ qxl = (QXLMessage *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id,
&error);
write_binary(fd, "message", strlen((char*)qxl->data), (uint8_t*)qxl->data);
}
@@ -709,7 +709,7 @@ static void red_record_surface_cmd(FILE *fd, RedMemSlotInfo *slots, int group_id
size_t size;
int error;
- qxl = (QXLSurfaceCmd *)get_virt(slots, addr, sizeof(*qxl), group_id,
+ qxl = (QXLSurfaceCmd *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id,
&error);
fprintf(fd, "surface_cmd\n");
@@ -726,7 +726,7 @@ static void red_record_surface_cmd(FILE *fd, RedMemSlotInfo *slots, int group_id
size = qxl->u.surface_create.height * abs(qxl->u.surface_create.stride);
if ((qxl->flags & QXL_SURF_FLAG_KEEP_DATA) != 0) {
write_binary(fd, "data", size,
- (uint8_t*)get_virt(slots, qxl->u.surface_create.data, size, group_id,
+ (uint8_t*)memslot_get_virt(slots, qxl->u.surface_create.data, size, group_id,
&error));
}
break;
@@ -739,7 +739,7 @@ static void red_record_cursor(FILE *fd, RedMemSlotInfo *slots, int group_id,
QXLCursor *qxl;
int error;
- qxl = (QXLCursor *)get_virt(slots, addr, sizeof(*qxl), group_id,
+ qxl = (QXLCursor *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id,
&error);
fprintf(fd, "header.unique %ld\n", qxl->header.unique);
@@ -751,7 +751,7 @@ static void red_record_cursor(FILE *fd, RedMemSlotInfo *slots, int group_id,
fprintf(fd, "data_size %d\n", qxl->data_size);
red_record_data_chunks_ptr(fd, "cursor", slots, group_id,
- get_memslot_id(slots, addr),
+ memslot_get_id(slots, addr),
&qxl->chunk);
}
@@ -761,7 +761,7 @@ void red_record_cursor_cmd(FILE *fd, RedMemSlotInfo *slots, int group_id,
QXLCursorCmd *qxl;
int error;
- qxl = (QXLCursorCmd *)get_virt(slots, addr, sizeof(*qxl), group_id,
+ qxl = (QXLCursorCmd *)memslot_get_virt(slots, addr, sizeof(*qxl), group_id,
&error);
fprintf(fd, "cursor_cmd\n");
diff --git a/server/red_record_qxl.h b/server/red_record_qxl.h
index b737db8..6fcbec9 100644
--- a/server/red_record_qxl.h
+++ b/server/red_record_qxl.h
@@ -21,7 +21,7 @@
#include <spice/qxl_dev.h>
#include "red_common.h"
-#include "red_memslots.h"
+#include "memslot.h"
void red_record_dev_input_primary_surface_create(
FILE *fd, QXLDevSurfaceCreate *surface, uint8_t *line_0);
diff --git a/server/red_replay_qxl.c b/server/red_replay_qxl.c
index ad1a8fd..6e32588 100644
--- a/server/red_replay_qxl.c
+++ b/server/red_replay_qxl.c
@@ -26,7 +26,7 @@
#include "reds.h"
#include "red_worker.h"
#include "red_common.h"
-#include "red_memslots.h"
+#include "memslot.h"
#include "red_parse_qxl.h"
#include "red_replay_qxl.h"
#include <glib.h>
diff --git a/server/red_worker.c b/server/red_worker.c
index f943898..49a8dbc 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -886,7 +886,7 @@ static void handle_dev_del_memslot(void *opaque, void *payload)
uint32_t slot_id = msg->slot_id;
uint32_t slot_group_id = msg->slot_group_id;
- red_memslot_info_del_slot(&worker->mem_slots, slot_group_id, slot_id);
+ memslot_info_del_slot(&worker->mem_slots, slot_group_id, slot_id);
}
static void handle_dev_destroy_surface_wait(void *opaque, void *payload)
@@ -959,7 +959,7 @@ static void dev_create_primary_surface(RedWorker *worker, uint32_t surface_id,
spice_warn_if(((uint64_t)abs(surface.stride) * (uint64_t)surface.height) !=
abs(surface.stride) * surface.height);
- line_0 = (uint8_t*)get_virt(&worker->mem_slots, surface.mem,
+ line_0 = (uint8_t*)memslot_get_virt(&worker->mem_slots, surface.mem,
surface.height * abs(surface.stride),
surface.group_id, &error);
if (error) {
@@ -1228,7 +1228,7 @@ static void handle_dev_monitors_config_async(void *opaque, void *payload)
int error;
uint16_t count, max_allowed;
QXLMonitorsConfig *dev_monitors_config =
- (QXLMonitorsConfig*)get_virt(&worker->mem_slots, msg->monitors_config,
+ (QXLMonitorsConfig*)memslot_get_virt(&worker->mem_slots, msg->monitors_config,
qxl_monitors_config_size(1),
msg->group_id, &error);
@@ -1252,7 +1252,7 @@ static void handle_dev_monitors_config_async(void *opaque, void *payload)
}
/* get pointer again to check virtual size */
dev_monitors_config =
- (QXLMonitorsConfig*)get_virt(&worker->mem_slots, msg->monitors_config,
+ (QXLMonitorsConfig*)memslot_get_virt(&worker->mem_slots, msg->monitors_config,
qxl_monitors_config_size(count),
msg->group_id, &error);
if (error) {
@@ -1356,7 +1356,7 @@ static void handle_dev_set_mouse_mode(void *opaque, void *payload)
static void dev_add_memslot(RedWorker *worker, QXLDevMemSlot mem_slot)
{
- red_memslot_info_add_slot(&worker->mem_slots, mem_slot.slot_group_id, mem_slot.slot_id,
+ memslot_info_add_slot(&worker->mem_slots, mem_slot.slot_group_id, mem_slot.slot_id,
mem_slot.addr_delta, mem_slot.virt_start, mem_slot.virt_end,
mem_slot.generation);
}
@@ -1367,7 +1367,7 @@ static void handle_dev_add_memslot(void *opaque, void *payload)
RedWorkerMessageAddMemslot *msg = payload;
QXLDevMemSlot mem_slot = msg->mem_slot;
- red_memslot_info_add_slot(&worker->mem_slots, mem_slot.slot_group_id, mem_slot.slot_id,
+ memslot_info_add_slot(&worker->mem_slots, mem_slot.slot_group_id, mem_slot.slot_id,
mem_slot.addr_delta, mem_slot.virt_start, mem_slot.virt_end,
mem_slot.generation);
}
@@ -1384,7 +1384,7 @@ static void handle_dev_reset_memslots(void *opaque, void *payload)
{
RedWorker *worker = opaque;
- red_memslot_info_reset(&worker->mem_slots);
+ memslot_info_reset(&worker->mem_slots);
}
static void handle_dev_driver_unload(void *opaque, void *payload)
@@ -1695,7 +1695,7 @@ RedWorker* red_worker_new(QXLInstance *qxl, RedDispatcher *red_dispatcher)
worker->watches[0].watch_func = handle_dev_input;
worker->watches[0].watch_func_opaque = worker;
- red_memslot_info_init(&worker->mem_slots,
+ memslot_info_init(&worker->mem_slots,
init_info.num_memslots_groups,
init_info.num_memslots,
init_info.memslot_gen_bits,
diff --git a/server/red_worker.h b/server/red_worker.h
index a76c805..1e2c550 100644
--- a/server/red_worker.h
+++ b/server/red_worker.h
@@ -18,9 +18,6 @@
#ifndef _H_REDWORKER
#define _H_REDWORKER
-#include <unistd.h>
-#include <errno.h>
-#include "utils.h"
#include "red_common.h"
#include "red_dispatcher.h"
#include "red_parse_qxl.h"
diff --git a/server/reds.c b/server/reds.c
index 8b3c3cb..509c346 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -56,16 +56,15 @@
#include "spice.h"
#include "reds.h"
#include "agent-msg-filter.h"
-#include "inputs_channel.h"
-#include "main_channel.h"
-#include "red_common.h"
+#include "inputs-channel.h"
+#include "main-channel.h"
#include "red_dispatcher.h"
-#include "main_dispatcher.h"
-#include "snd_worker.h"
+#include "main-dispatcher.h"
+#include "sound.h"
#include "stat.h"
#include "demarshallers.h"
-#include "char_device.h"
-#include "migration_protocol.h"
+#include "char-device.h"
+#include "migration-protocol.h"
#ifdef USE_SMARTCARD
#include "smartcard.h"
#endif
diff --git a/server/reds.h b/server/reds.h
index fcdc5eb..b0168db 100644
--- a/server/reds.h
+++ b/server/reds.h
@@ -28,7 +28,10 @@
#include "common/messages.h"
#include "spice.h"
#include "red_channel.h"
-#include "migration_protocol.h"
+#include "migration-protocol.h"
+
+#define SPICE_GNUC_VISIBLE __attribute__ ((visibility ("default")))
+
struct QXLState {
QXLInterface *qif;
diff --git a/server/reds_stream.c b/server/reds_stream.c
index 3b47391..6f5c43f 100644
--- a/server/reds_stream.c
+++ b/server/reds_stream.c
@@ -19,7 +19,7 @@
#include <config.h>
#endif
-#include "main_dispatcher.h"
+#include "main-dispatcher.h"
#include "red_common.h"
#include "reds_stream.h"
#include "common/log.h"
diff --git a/server/smartcard.c b/server/smartcard.c
index aad22aa..928e27b8 100644
--- a/server/smartcard.c
+++ b/server/smartcard.c
@@ -23,10 +23,10 @@
#include <vscard_common.h>
#include "reds.h"
-#include "char_device.h"
+#include "char-device.h"
#include "red_channel.h"
#include "smartcard.h"
-#include "migration_protocol.h"
+#include "migration-protocol.h"
/*
* TODO: the code doesn't really support multiple readers.
diff --git a/server/snd_worker.c b/server/sound.c
similarity index 99%
rename from server/snd_worker.c
rename to server/sound.c
index b039939..4b1ec7a 100644
--- a/server/snd_worker.c
+++ b/server/sound.c
@@ -28,14 +28,14 @@
#include "common/marshaller.h"
#include "common/generated_server_marshallers.h"
+#include "common/snd_codec.h"
#include "spice.h"
#include "red_common.h"
-#include "main_channel.h"
+#include "main-channel.h"
#include "reds.h"
#include "red_dispatcher.h"
-#include "snd_worker.h"
-#include "common/snd_codec.h"
+#include "sound.h"
#include "demarshallers.h"
#ifndef IOV_MAX
diff --git a/server/snd_worker.h b/server/sound.h
similarity index 100%
rename from server/snd_worker.h
rename to server/sound.h
diff --git a/server/spice-bitmap-utils.c b/server/spice-bitmap-utils.c
index 03d7694..8d6e7c6 100644
--- a/server/spice-bitmap-utils.c
+++ b/server/spice-bitmap-utils.c
@@ -117,3 +117,165 @@ int bitmap_has_extra_stride(SpiceBitmap *bitmap)
}
return 0;
}
+
+int spice_bitmap_from_surface_type(uint32_t surface_format)
+{
+ switch (surface_format) {
+ case SPICE_SURFACE_FMT_16_555:
+ return SPICE_BITMAP_FMT_16BIT;
+ case SPICE_SURFACE_FMT_32_xRGB:
+ return SPICE_BITMAP_FMT_32BIT;
+ case SPICE_SURFACE_FMT_32_ARGB:
+ return SPICE_BITMAP_FMT_RGBA;
+ case SPICE_SURFACE_FMT_8_A:
+ return SPICE_BITMAP_FMT_8BIT_A;
+ default:
+ spice_critical("Unsupported surface format");
+ }
+ return 0;
+}
+
+#define RAM_PATH "/tmp/tmpfs"
+
+static void dump_palette(FILE *f, SpicePalette* plt)
+{
+ int i;
+ for (i = 0; i < plt->num_ents; i++) {
+ fwrite(plt->ents + i, sizeof(uint32_t), 1, f);
+ }
+}
+
+static void dump_line(FILE *f, uint8_t* line, uint16_t n_pixel_bits, int width, int row_size)
+{
+ int i;
+ int copy_bytes_size = SPICE_ALIGN(n_pixel_bits * width, 8) / 8;
+
+ fwrite(line, 1, copy_bytes_size, f);
+ if (row_size > copy_bytes_size) {
+ // each line should be 4 bytes aligned
+ for (i = copy_bytes_size; i < row_size; i++) {
+ fprintf(f, "%c", 0);
+ }
+ }
+}
+void dump_bitmap(SpiceBitmap *bitmap)
+{
+ static uint32_t file_id = 0;
+
+ char file_str[200];
+ int rgb = TRUE;
+ uint16_t n_pixel_bits;
+ SpicePalette *plt = NULL;
+ uint32_t id;
+ int row_size;
+ uint32_t file_size;
+ int alpha = 0;
+ uint32_t header_size = 14 + 40;
+ uint32_t bitmap_data_offset;
+ uint32_t tmp_u32;
+ int32_t tmp_32;
+ uint16_t tmp_u16;
+ FILE *f;
+ int i, j;
+
+ switch (bitmap->format) {
+ case SPICE_BITMAP_FMT_1BIT_BE:
+ case SPICE_BITMAP_FMT_1BIT_LE:
+ rgb = FALSE;
+ n_pixel_bits = 1;
+ break;
+ case SPICE_BITMAP_FMT_4BIT_BE:
+ case SPICE_BITMAP_FMT_4BIT_LE:
+ rgb = FALSE;
+ n_pixel_bits = 4;
+ break;
+ case SPICE_BITMAP_FMT_8BIT:
+ rgb = FALSE;
+ n_pixel_bits = 8;
+ break;
+ case SPICE_BITMAP_FMT_16BIT:
+ n_pixel_bits = 16;
+ break;
+ case SPICE_BITMAP_FMT_24BIT:
+ n_pixel_bits = 24;
+ break;
+ case SPICE_BITMAP_FMT_32BIT:
+ n_pixel_bits = 32;
+ break;
+ case SPICE_BITMAP_FMT_RGBA:
+ n_pixel_bits = 32;
+ alpha = 1;
+ break;
+ default:
+ spice_error("invalid bitmap format %u", bitmap->format);
+ return;
+ }
+
+ if (!rgb) {
+ if (!bitmap->palette) {
+ return; // dont dump masks.
+ }
+ plt = bitmap->palette;
+ }
+ row_size = (((bitmap->x * n_pixel_bits) + 31) / 32) * 4;
+ bitmap_data_offset = header_size;
+
+ if (plt) {
+ bitmap_data_offset += plt->num_ents * 4;
+ }
+ file_size = bitmap_data_offset + (bitmap->y * row_size);
+
+ id = ++file_id;
+ sprintf(file_str, "%s/%u.bmp", RAM_PATH, id);
+
+ f = fopen(file_str, "wb");
+ if (!f) {
+ spice_error("Error creating bmp");
+ return;
+ }
+
+ /* writing the bmp v3 header */
+ fprintf(f, "BM");
+ fwrite(&file_size, sizeof(file_size), 1, f);
+ tmp_u16 = alpha ? 1 : 0;
+ fwrite(&tmp_u16, sizeof(tmp_u16), 1, f); // reserved for application
+ tmp_u16 = 0;
+ fwrite(&tmp_u16, sizeof(tmp_u16), 1, f);
+ fwrite(&bitmap_data_offset, sizeof(bitmap_data_offset), 1, f);
+ tmp_u32 = header_size - 14;
+ fwrite(&tmp_u32, sizeof(tmp_u32), 1, f); // sub header size
+ tmp_32 = bitmap->x;
+ fwrite(&tmp_32, sizeof(tmp_32), 1, f);
+ tmp_32 = bitmap->y;
+ fwrite(&tmp_32, sizeof(tmp_32), 1, f);
+
+ tmp_u16 = 1;
+ fwrite(&tmp_u16, sizeof(tmp_u16), 1, f); // color plane
+ fwrite(&n_pixel_bits, sizeof(n_pixel_bits), 1, f); // pixel depth
+
+ tmp_u32 = 0;
+ fwrite(&tmp_u32, sizeof(tmp_u32), 1, f); // compression method
+
+ tmp_u32 = 0; //file_size - bitmap_data_offset;
+ fwrite(&tmp_u32, sizeof(tmp_u32), 1, f); // image size
+ tmp_32 = 0;
+ fwrite(&tmp_32, sizeof(tmp_32), 1, f);
+ fwrite(&tmp_32, sizeof(tmp_32), 1, f);
+ tmp_u32 = (!plt) ? 0 : plt->num_ents; // plt entries
+ fwrite(&tmp_u32, sizeof(tmp_u32), 1, f);
+ tmp_u32 = 0;
+ fwrite(&tmp_u32, sizeof(tmp_u32), 1, f);
+
+ if (plt) {
+ dump_palette(f, plt);
+ }
+ /* writing the data */
+ for (i = 0; i < bitmap->data->num_chunks; i++) {
+ SpiceChunk *chunk = &bitmap->data->chunk[i];
+ int num_lines = chunk->len / bitmap->stride;
+ for (j = 0; j < num_lines; j++) {
+ dump_line(f, chunk->data + (j * bitmap->stride), n_pixel_bits, bitmap->x, row_size);
+ }
+ }
+ fclose(f);
+}
diff --git a/server/spice-bitmap-utils.h b/server/spice-bitmap-utils.h
index 38cb88a..beaa96f 100644
--- a/server/spice-bitmap-utils.h
+++ b/server/spice-bitmap-utils.h
@@ -15,13 +15,10 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef RED_BITMAP_UTILS_H_
-# define RED_BITMAP_UTILS_H_
+#ifndef H_SPICE_BITMAP_UTILS
+#define H_SPICE_BITMAP_UTILS
-#include <glib.h>
-#include <stdint.h>
-#include "common/draw.h"
-#include "common/log.h"
+#include "red_common.h"
typedef enum {
BITMAP_GRADUAL_INVALID,
@@ -88,4 +85,8 @@ static inline int bitmap_fmt_has_graduality(uint8_t fmt)
BitmapGradualType bitmap_get_graduality_level (SpiceBitmap *bitmap);
int bitmap_has_extra_stride (SpiceBitmap *bitmap);
-#endif /* RED_BITMAP_UTILS_H_ */
+void dump_bitmap(SpiceBitmap *bitmap);
+
+int spice_bitmap_from_surface_type(uint32_t surface_format);
+
+#endif
diff --git a/server/spice_bitmap_utils.c b/server/spice_bitmap_utils.c
deleted file mode 100644
index ae3fc8b..0000000
--- a/server/spice_bitmap_utils.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */
-/*
- Copyright (C) 2009-2015 Red Hat, Inc.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, see <http://www.gnu.org/licenses/>.
-*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-
-#include "common/log.h"
-#include "common/draw.h"
-
-#include "spice_bitmap_utils.h"
-
-int spice_bitmap_from_surface_type(uint32_t surface_format)
-{
- switch (surface_format) {
- case SPICE_SURFACE_FMT_16_555:
- return SPICE_BITMAP_FMT_16BIT;
- case SPICE_SURFACE_FMT_32_xRGB:
- return SPICE_BITMAP_FMT_32BIT;
- case SPICE_SURFACE_FMT_32_ARGB:
- return SPICE_BITMAP_FMT_RGBA;
- case SPICE_SURFACE_FMT_8_A:
- return SPICE_BITMAP_FMT_8BIT_A;
- default:
- spice_critical("Unsupported surface format");
- }
- return 0;
-}
-
-#define RAM_PATH "/tmp/tmpfs"
-
-static void dump_palette(FILE *f, SpicePalette* plt)
-{
- int i;
- for (i = 0; i < plt->num_ents; i++) {
- fwrite(plt->ents + i, sizeof(uint32_t), 1, f);
- }
-}
-
-static void dump_line(FILE *f, uint8_t* line, uint16_t n_pixel_bits, int width, int row_size)
-{
- int i;
- int copy_bytes_size = SPICE_ALIGN(n_pixel_bits * width, 8) / 8;
-
- fwrite(line, 1, copy_bytes_size, f);
- if (row_size > copy_bytes_size) {
- // each line should be 4 bytes aligned
- for (i = copy_bytes_size; i < row_size; i++) {
- fprintf(f, "%c", 0);
- }
- }
-}
-void dump_bitmap(SpiceBitmap *bitmap)
-{
- static uint32_t file_id = 0;
-
- char file_str[200];
- int rgb = TRUE;
- uint16_t n_pixel_bits;
- SpicePalette *plt = NULL;
- uint32_t id;
- int row_size;
- uint32_t file_size;
- int alpha = 0;
- uint32_t header_size = 14 + 40;
- uint32_t bitmap_data_offset;
- uint32_t tmp_u32;
- int32_t tmp_32;
- uint16_t tmp_u16;
- FILE *f;
- int i, j;
-
- switch (bitmap->format) {
- case SPICE_BITMAP_FMT_1BIT_BE:
- case SPICE_BITMAP_FMT_1BIT_LE:
- rgb = FALSE;
- n_pixel_bits = 1;
- break;
- case SPICE_BITMAP_FMT_4BIT_BE:
- case SPICE_BITMAP_FMT_4BIT_LE:
- rgb = FALSE;
- n_pixel_bits = 4;
- break;
- case SPICE_BITMAP_FMT_8BIT:
- rgb = FALSE;
- n_pixel_bits = 8;
- break;
- case SPICE_BITMAP_FMT_16BIT:
- n_pixel_bits = 16;
- break;
- case SPICE_BITMAP_FMT_24BIT:
- n_pixel_bits = 24;
- break;
- case SPICE_BITMAP_FMT_32BIT:
- n_pixel_bits = 32;
- break;
- case SPICE_BITMAP_FMT_RGBA:
- n_pixel_bits = 32;
- alpha = 1;
- break;
- default:
- spice_error("invalid bitmap format %u", bitmap->format);
- return;
- }
-
- if (!rgb) {
- if (!bitmap->palette) {
- return; // dont dump masks.
- }
- plt = bitmap->palette;
- }
- row_size = (((bitmap->x * n_pixel_bits) + 31) / 32) * 4;
- bitmap_data_offset = header_size;
-
- if (plt) {
- bitmap_data_offset += plt->num_ents * 4;
- }
- file_size = bitmap_data_offset + (bitmap->y * row_size);
-
- id = ++file_id;
- sprintf(file_str, "%s/%u.bmp", RAM_PATH, id);
-
- f = fopen(file_str, "wb");
- if (!f) {
- spice_error("Error creating bmp");
- return;
- }
-
- /* writing the bmp v3 header */
- fprintf(f, "BM");
- fwrite(&file_size, sizeof(file_size), 1, f);
- tmp_u16 = alpha ? 1 : 0;
- fwrite(&tmp_u16, sizeof(tmp_u16), 1, f); // reserved for application
- tmp_u16 = 0;
- fwrite(&tmp_u16, sizeof(tmp_u16), 1, f);
- fwrite(&bitmap_data_offset, sizeof(bitmap_data_offset), 1, f);
- tmp_u32 = header_size - 14;
- fwrite(&tmp_u32, sizeof(tmp_u32), 1, f); // sub header size
- tmp_32 = bitmap->x;
- fwrite(&tmp_32, sizeof(tmp_32), 1, f);
- tmp_32 = bitmap->y;
- fwrite(&tmp_32, sizeof(tmp_32), 1, f);
-
- tmp_u16 = 1;
- fwrite(&tmp_u16, sizeof(tmp_u16), 1, f); // color plane
- fwrite(&n_pixel_bits, sizeof(n_pixel_bits), 1, f); // pixel depth
-
- tmp_u32 = 0;
- fwrite(&tmp_u32, sizeof(tmp_u32), 1, f); // compression method
-
- tmp_u32 = 0; //file_size - bitmap_data_offset;
- fwrite(&tmp_u32, sizeof(tmp_u32), 1, f); // image size
- tmp_32 = 0;
- fwrite(&tmp_32, sizeof(tmp_32), 1, f);
- fwrite(&tmp_32, sizeof(tmp_32), 1, f);
- tmp_u32 = (!plt) ? 0 : plt->num_ents; // plt entries
- fwrite(&tmp_u32, sizeof(tmp_u32), 1, f);
- tmp_u32 = 0;
- fwrite(&tmp_u32, sizeof(tmp_u32), 1, f);
-
- if (plt) {
- dump_palette(f, plt);
- }
- /* writing the data */
- for (i = 0; i < bitmap->data->num_chunks; i++) {
- SpiceChunk *chunk = &bitmap->data->chunk[i];
- int num_lines = chunk->len / bitmap->stride;
- for (j = 0; j < num_lines; j++) {
- dump_line(f, chunk->data + (j * bitmap->stride), n_pixel_bits, bitmap->x, row_size);
- }
- }
- fclose(f);
-}
diff --git a/server/spice_bitmap_utils.h b/server/spice_bitmap_utils.h
deleted file mode 100644
index 69860e5..0000000
--- a/server/spice_bitmap_utils.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef H_SPICE_BITMAP_UTILS
-#define H_SPICE_BITMAP_UTILS
-
-void dump_bitmap(SpiceBitmap *bitmap);
-
-int spice_bitmap_from_surface_type(uint32_t surface_format);
-
-#endif
diff --git a/server/spicevmc.c b/server/spicevmc.c
index d37b1ec..52a29a4 100644
--- a/server/spicevmc.c
+++ b/server/spicevmc.c
@@ -30,10 +30,10 @@
#include "common/generated_server_marshallers.h"
-#include "char_device.h"
+#include "char-device.h"
#include "red_channel.h"
#include "reds.h"
-#include "migration_protocol.h"
+#include "migration-protocol.h"
/* todo: add flow control. i.e.,
* (a) limit the tokens available for the client
diff --git a/server/stream.h b/server/stream.h
index 214d1df..cb2b844 100644
--- a/server/stream.h
+++ b/server/stream.h
@@ -20,10 +20,10 @@
#include <glib.h>
#include "utils.h"
-#include "mjpeg_encoder.h"
+#include "mjpeg-encoder.h"
#include "common/region.h"
#include "red_channel.h"
-#include "spice_image_cache.h"
+#include "image-cache.h"
#define RED_STREAM_DETACTION_MAX_DELTA ((1000 * 1000 * 1000) / 5) // 1/5 sec
#define RED_STREAM_CONTINUS_MAX_DELTA (1000 * 1000 * 1000)
diff --git a/server/utils.h b/server/utils.h
index aba85f9..20ebe00 100644
--- a/server/utils.h
+++ b/server/utils.h
@@ -18,11 +18,9 @@
#ifndef UTILS_H_
# define UTILS_H_
-#include <glib.h>
-#include <time.h>
+#include "red_common.h"
-#include "common/ring.h"
-#include "common/log.h"
+#define SPICE_GNUC_VISIBLE __attribute__ ((visibility ("default")))
static inline void set_bit(int index, uint32_t *addr)
{
diff --git a/server/zlib_encoder.c b/server/zlib-encoder.c
similarity index 99%
rename from server/zlib_encoder.c
rename to server/zlib-encoder.c
index a3d2aa6..069a448 100644
--- a/server/zlib_encoder.c
+++ b/server/zlib-encoder.c
@@ -20,7 +20,7 @@
#endif
#include "red_common.h"
-#include "zlib_encoder.h"
+#include "zlib-encoder.h"
#include <zlib.h>
struct ZlibEncoder {
diff --git a/server/zlib_encoder.h b/server/zlib-encoder.h
similarity index 100%
rename from server/zlib_encoder.h
rename to server/zlib-encoder.h
--
2.4.3
More information about the Spice-devel
mailing list