summaryrefslogtreecommitdiffstats
path: root/server/red_parse_qxl.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2010-06-24 12:25:21 +0200
committerGerd Hoffmann <kraxel@redhat.com>2010-06-29 12:30:20 +0200
commite03e4f0fc9fc41ecfb9ea5bc3183ec9dc20eb426 (patch)
tree7788e4f3b26ff563f0ee8daed592523a8308e6ce /server/red_parse_qxl.c
parent5de492e930ebe7597279b7392e14fe1d0653c94c (diff)
downloadspice-e03e4f0fc9fc41ecfb9ea5bc3183ec9dc20eb426.tar.gz
spice-e03e4f0fc9fc41ecfb9ea5bc3183ec9dc20eb426.tar.xz
spice-e03e4f0fc9fc41ecfb9ea5bc3183ec9dc20eb426.zip
qxl abi: parse QXLSurfaceCmd.
Diffstat (limited to 'server/red_parse_qxl.c')
-rw-r--r--server/red_parse_qxl.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/server/red_parse_qxl.c b/server/red_parse_qxl.c
index 6c8eb69a..f45ab0b9 100644
--- a/server/red_parse_qxl.c
+++ b/server/red_parse_qxl.c
@@ -352,3 +352,31 @@ void red_put_message(RedMessage *red)
/* nothing yet */
}
+void red_get_surface_cmd(RedMemSlotInfo *slots, int group_id,
+ RedSurfaceCmd *red, SPICE_ADDRESS addr)
+{
+ QXLSurfaceCmd *qxl;
+
+ qxl = (QXLSurfaceCmd *)get_virt(slots, addr, sizeof(*qxl), group_id);
+ red->release_info = &qxl->release_info;
+
+ red->surface_id = qxl->surface_id;
+ red->type = qxl->type;
+ red->flags = qxl->flags;
+
+ switch (red->type) {
+ case QXL_SURFACE_CMD_CREATE:
+ red->u.surface_create.format = qxl->u.surface_create.format;
+ red->u.surface_create.width = qxl->u.surface_create.width;
+ red->u.surface_create.height = qxl->u.surface_create.height;
+ red->u.surface_create.stride = qxl->u.surface_create.stride;
+ red->u.surface_create.data = qxl->u.surface_create.data;
+ break;
+ }
+}
+
+void red_put_surface_cmd(RedSurfaceCmd *red)
+{
+ /* nothing yet */
+}
+