summaryrefslogtreecommitdiffstats
path: root/server/red_replay_qxl.h
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2011-07-01 19:49:42 +0300
committerFrediano Ziglio <fziglio@redhat.com>2015-08-21 09:38:44 +0100
commit3c7026b1802c7e00d30f33c458b67126396ad10a (patch)
tree1b85ceee41b14f719697e80f500910bde68c46fd /server/red_replay_qxl.h
parent865455cf321ba7a1d2a7d32065bf40c601cfd494 (diff)
downloadspice-3c7026b1802c7e00d30f33c458b67126396ad10a.tar.gz
spice-3c7026b1802c7e00d30f33c458b67126396ad10a.tar.xz
spice-3c7026b1802c7e00d30f33c458b67126396ad10a.zip
server/red_{record, replay}.[ch]: introduce
Currently hand crafted with some sed scripts and alot of vim macros from red_parse_qxl after considering the logger in qemu/hw/qxl-logger.c and seeing it was incomplete. The only problem with logging from the server and not from qemu is that it requires coordinated shutdown to avoid half a message. Should be automatically generated from a declarative syntax, i.e. qxl.proto. Note: zlib compression is introduced in a disabled state, see ZLIB define Now with a simple versioned header and generated ids by the server instead of based on the recorded file, and doesn't use more then 1024 surfaces (configurable). Signed-off-by: Alon Levy <alon@pobox.com> Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Diffstat (limited to 'server/red_replay_qxl.h')
-rw-r--r--server/red_replay_qxl.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/server/red_replay_qxl.h b/server/red_replay_qxl.h
new file mode 100644
index 00000000..a89b3d44
--- /dev/null
+++ b/server/red_replay_qxl.h
@@ -0,0 +1,34 @@
+/* -*- 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/>.
+*/
+#ifndef RED_REPLAY_QXL_H
+#define RED_REPLAY_QXL_H
+
+#include <stdio.h>
+#include <spice/qxl_dev.h>
+#include <spice.h>
+
+typedef struct SpiceReplay SpiceReplay;
+
+/* reads until encountering a cmd, processing any recorded messages (io) on the
+ * way */
+QXLCommandExt* spice_replay_next_cmd(SpiceReplay *replay, QXLWorker *worker);
+void spice_replay_free_cmd(SpiceReplay *replay, QXLCommandExt *cmd);
+void spice_replay_free(SpiceReplay *replay);
+SpiceReplay * spice_replay_new(FILE *file, int nsurfaces);
+
+#endif // RED_REPLAY_QXL_H