diff options
author | Alon Levy <alevy@redhat.com> | 2012-02-24 23:19:30 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2012-02-27 09:46:52 +0100 |
commit | 2e1a98c9c1b90ca093278c6b43244dc46604d7b7 (patch) | |
tree | 0b896f14d426d819f54950c9747f8913c04ff147 /ui | |
parent | 4c19ebb51dc0a59ff12d60844512816562a25047 (diff) | |
download | qemu-2e1a98c9c1b90ca093278c6b43244dc46604d7b7.zip qemu-2e1a98c9c1b90ca093278c6b43244dc46604d7b7.tar.gz qemu-2e1a98c9c1b90ca093278c6b43244dc46604d7b7.tar.bz2 |
qxl: introduce QXLCookie
Will be used in the next patch.
Signed-off-by: Alon Levy <alevy@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'ui')
-rw-r--r-- | ui/spice-display.c | 22 | ||||
-rw-r--r-- | ui/spice-display.h | 14 |
2 files changed, 33 insertions, 3 deletions
diff --git a/ui/spice-display.c b/ui/spice-display.c index ad76bae..ab266ae 100644 --- a/ui/spice-display.c +++ b/ui/spice-display.c @@ -60,11 +60,23 @@ void qemu_spice_rect_union(QXLRect *dest, const QXLRect *r) dest->right = MAX(dest->right, r->right); } +QXLCookie *qxl_cookie_new(int type, uint64_t io) +{ + QXLCookie *cookie; + + cookie = g_malloc0(sizeof(*cookie)); + cookie->type = type; + cookie->io = io; + return cookie; +} + void qemu_spice_add_memslot(SimpleSpiceDisplay *ssd, QXLDevMemSlot *memslot, qxl_async_io async) { if (async != QXL_SYNC) { - spice_qxl_add_memslot_async(&ssd->qxl, memslot, 0); + spice_qxl_add_memslot_async(&ssd->qxl, memslot, + (uint64_t)qxl_cookie_new(QXL_COOKIE_TYPE_IO, + QXL_IO_MEMSLOT_ADD_ASYNC)); } else { ssd->worker->add_memslot(ssd->worker, memslot); } @@ -80,7 +92,9 @@ void qemu_spice_create_primary_surface(SimpleSpiceDisplay *ssd, uint32_t id, qxl_async_io async) { if (async != QXL_SYNC) { - spice_qxl_create_primary_surface_async(&ssd->qxl, id, surface, 0); + spice_qxl_create_primary_surface_async(&ssd->qxl, id, surface, + (uint64_t)qxl_cookie_new(QXL_COOKIE_TYPE_IO, + QXL_IO_CREATE_PRIMARY_ASYNC)); } else { ssd->worker->create_primary_surface(ssd->worker, id, surface); } @@ -91,7 +105,9 @@ void qemu_spice_destroy_primary_surface(SimpleSpiceDisplay *ssd, uint32_t id, qxl_async_io async) { if (async != QXL_SYNC) { - spice_qxl_destroy_primary_surface_async(&ssd->qxl, id, 0); + spice_qxl_destroy_primary_surface_async(&ssd->qxl, id, + (uint64_t)qxl_cookie_new(QXL_COOKIE_TYPE_IO, + QXL_IO_DESTROY_PRIMARY_ASYNC)); } else { ssd->worker->destroy_primary_surface(ssd->worker, id); } diff --git a/ui/spice-display.h b/ui/spice-display.h index a23bfc8..8a010cb 100644 --- a/ui/spice-display.h +++ b/ui/spice-display.h @@ -48,6 +48,20 @@ typedef enum qxl_async_io { QXL_ASYNC, } qxl_async_io; +enum { + QXL_COOKIE_TYPE_IO, +}; + +typedef struct QXLCookie { + int type; + uint64_t io; + union { + uint32_t surface_id; + } u; +} QXLCookie; + +QXLCookie *qxl_cookie_new(int type, uint64_t io); + typedef struct SimpleSpiceDisplay SimpleSpiceDisplay; typedef struct SimpleSpiceUpdate SimpleSpiceUpdate; |