From 1c576f2bdd4f0367e8f975e2581483371b89b407 Mon Sep 17 00:00:00 2001 From: Alon Levy Date: Sun, 18 Mar 2012 12:17:48 +0100 Subject: [PATCH 5/9] qxl: require spice >= 0.8.2 RH-Author: Alon Levy Message-id: <1332073072-27934-5-git-send-email-alevy@redhat.com> Patchwork-id: 38602 O-Subject: [PATCHv2 RHEL-6.3 qemu-kvm 4/8] qxl: require spice >= 0.8.2 Bugzilla: 747011 RH-Acked-by: Gerd Hoffmann RH-Acked-by: Hans de Goede RH-Acked-by: Yonit Halperin drop all ifdefs on SPICE_INTERFACE_QXL_MINOR >= 1 as a result, any check for SPICE_SERVER_VERSION that is now always satisfied, and SPICE_INTERFACE_CORE_MINOR >= 3 tests, because 0.8.2 has SPICE_INTERFACE_QXL_MINOR == 1 and SPICE_INTERFACE_CORE_MINOR == 3. Signed-off-by: Alon Levy Signed-off-by: Gerd Hoffmann (cherry picked from commit 4295e15aa730a95003a3639d6dad2eb1e65a59e2) Conflicts: configure ui/spice-core.c Resolved conflicts: $pkg_config unused in RHEL, pkg-config used instead RHEL had 0.5.3 previously, not 0.7.1 RHEL is missing 7073693 that adds migration_has_finished --- configure | 2 +- hw/qxl.c | 40 ---------------------------------------- hw/qxl.h | 4 ---- ui/spice-core.c | 17 ----------------- ui/spice-display.c | 12 ------------ 5 files changed, 1 insertion(+), 74 deletions(-) Signed-off-by: Michal Novotny --- configure | 2 +- hw/qxl.c | 40 ---------------------------------------- hw/qxl.h | 4 ---- ui/spice-core.c | 17 ----------------- ui/spice-display.c | 12 ------------ 5 files changed, 1 insertions(+), 74 deletions(-) diff --git a/configure b/configure index f7c02e6..906e39e 100755 --- a/configure +++ b/configure @@ -2003,7 +2003,7 @@ int main(void) { spice_server_new(); return 0; } EOF spice_cflags=$(pkg-config --cflags spice-protocol spice-server 2>/dev/null) spice_libs=$(pkg-config --libs spice-protocol spice-server 2>/dev/null) - if pkg-config --atleast-version=0.5.3 spice-server &&\ + if pkg-config --atleast-version=0.8.2 spice-server >/dev/null 2>&1 && \ compile_prog "$spice_cflags" "$spice_libs" ; then spice="yes" libs_softmmu="$libs_softmmu $spice_libs" diff --git a/hw/qxl.c b/hw/qxl.c index b75cea2..b2bdd3b 100644 --- a/hw/qxl.c +++ b/hw/qxl.c @@ -128,9 +128,7 @@ static void qxl_ring_set_dirty(PCIQXLDevice *qxl); void qxl_guest_bug(PCIQXLDevice *qxl, const char *msg, ...) { -#if SPICE_INTERFACE_QXL_MINOR >= 1 qxl_send_events(qxl, QXL_INTERRUPT_ERROR); -#endif if (qxl->guestdebug) { va_list ap; va_start(ap, msg); @@ -152,12 +150,8 @@ void qxl_spice_update_area(PCIQXLDevice *qxl, uint32_t surface_id, qxl->ssd.worker->update_area(qxl->ssd.worker, surface_id, area, dirty_rects, num_dirty_rects, clear_dirty_region); } else { -#if SPICE_INTERFACE_QXL_MINOR >= 1 spice_qxl_update_area_async(&qxl->ssd.qxl, surface_id, area, clear_dirty_region, 0); -#else - abort(); -#endif } } @@ -174,24 +168,18 @@ static void qxl_spice_destroy_surface_wait(PCIQXLDevice *qxl, uint32_t id, qxl_async_io async) { if (async) { -#if SPICE_INTERFACE_QXL_MINOR < 1 - abort(); -#else spice_qxl_destroy_surface_async(&qxl->ssd.qxl, id, (uint64_t)id); -#endif } else { qxl->ssd.worker->destroy_surface_wait(qxl->ssd.worker, id); qxl_spice_destroy_surface_wait_complete(qxl, id); } } -#if SPICE_INTERFACE_QXL_MINOR >= 1 static void qxl_spice_flush_surfaces_async(PCIQXLDevice *qxl) { spice_qxl_flush_surfaces_async(&qxl->ssd.qxl, 0); } -#endif void qxl_spice_loadvm_commands(PCIQXLDevice *qxl, struct QXLCommandExt *ext, uint32_t count) @@ -220,11 +208,7 @@ static void qxl_spice_destroy_surfaces_complete(PCIQXLDevice *qxl) static void qxl_spice_destroy_surfaces(PCIQXLDevice *qxl, qxl_async_io async) { if (async) { -#if SPICE_INTERFACE_QXL_MINOR < 1 - abort(); -#else spice_qxl_destroy_surfaces_async(&qxl->ssd.qxl, 0); -#endif } else { qxl->ssd.worker->destroy_surfaces(qxl->ssd.worker); qxl_spice_destroy_surfaces_complete(qxl); @@ -498,7 +482,6 @@ static const char *io_port_to_string(uint32_t io_port) [QXL_IO_DESTROY_PRIMARY] = "QXL_IO_DESTROY_PRIMARY", [QXL_IO_DESTROY_SURFACE_WAIT] = "QXL_IO_DESTROY_SURFACE_WAIT", [QXL_IO_DESTROY_ALL_SURFACES] = "QXL_IO_DESTROY_ALL_SURFACES", -#if SPICE_INTERFACE_QXL_MINOR >= 1 [QXL_IO_UPDATE_AREA_ASYNC] = "QXL_IO_UPDATE_AREA_ASYNC", [QXL_IO_MEMSLOT_ADD_ASYNC] = "QXL_IO_MEMSLOT_ADD_ASYNC", [QXL_IO_CREATE_PRIMARY_ASYNC] = "QXL_IO_CREATE_PRIMARY_ASYNC", @@ -508,7 +491,6 @@ static const char *io_port_to_string(uint32_t io_port) = "QXL_IO_DESTROY_ALL_SURFACES_ASYNC", [QXL_IO_FLUSH_SURFACES_ASYNC] = "QXL_IO_FLUSH_SURFACES_ASYNC", [QXL_IO_FLUSH_RELEASE] = "QXL_IO_FLUSH_RELEASE", -#endif }; return io_port_to_string[io_port]; } @@ -743,8 +725,6 @@ static int interface_flush_resources(QXLInstance *sin) static void qxl_create_guest_primary_complete(PCIQXLDevice *d); -#if SPICE_INTERFACE_QXL_MINOR >= 1 - /* called from spice server thread context only */ static void interface_async_complete(QXLInstance *sin, uint64_t cookie) { @@ -771,8 +751,6 @@ static void interface_async_complete(QXLInstance *sin, uint64_t cookie) qxl_send_events(qxl, QXL_INTERRUPT_IO_CMD); } -#endif - static const QXLInterface qxl_interface = { .base.type = SPICE_INTERFACE_QXL, .base.description = "qxl gpu", @@ -792,9 +770,7 @@ static const QXLInterface qxl_interface = { .req_cursor_notification = interface_req_cursor_notification, .notify_update = interface_notify_update, .flush_resources = interface_flush_resources, -#if SPICE_INTERFACE_QXL_MINOR >= 1 .async_complete = interface_async_complete, -#endif }; static void qxl_enter_vga_mode(PCIQXLDevice *d) @@ -1143,9 +1119,7 @@ static void ioport_write(void *opaque, uint32_t addr, uint32_t val) PCIQXLDevice *d = opaque; uint32_t io_port = addr - d->io_base; qxl_async_io async = QXL_SYNC; -#if SPICE_INTERFACE_QXL_MINOR >= 1 uint32_t orig_io_port = io_port; -#endif switch (io_port) { case QXL_IO_RESET: @@ -1155,10 +1129,8 @@ static void ioport_write(void *opaque, uint32_t addr, uint32_t val) case QXL_IO_CREATE_PRIMARY: case QXL_IO_UPDATE_IRQ: case QXL_IO_LOG: -#if SPICE_INTERFACE_QXL_MINOR >= 1 case QXL_IO_MEMSLOT_ADD_ASYNC: case QXL_IO_CREATE_PRIMARY_ASYNC: -#endif break; default: if (d->mode != QXL_MODE_VGA) { @@ -1166,17 +1138,14 @@ static void ioport_write(void *opaque, uint32_t addr, uint32_t val) } dprint(d, 1, "%s: unexpected port 0x%x (%s) in vga mode\n", __func__, io_port, io_port_to_string(io_port)); -#if SPICE_INTERFACE_QXL_MINOR >= 1 /* be nice to buggy guest drivers */ if (io_port >= QXL_IO_UPDATE_AREA_ASYNC && io_port <= QXL_IO_DESTROY_ALL_SURFACES_ASYNC) { qxl_send_events(d, QXL_INTERRUPT_IO_CMD); } -#endif return; } -#if SPICE_INTERFACE_QXL_MINOR >= 1 /* we change the io_port to avoid ifdeffery in the main switch */ orig_io_port = io_port; switch (io_port) { @@ -1215,7 +1184,6 @@ async_common: default: break; } -#endif switch (io_port) { case QXL_IO_UPDATE_AREA: @@ -1310,7 +1278,6 @@ async_common: } qxl_spice_destroy_surface_wait(d, val, async); break; -#if SPICE_INTERFACE_QXL_MINOR >= 1 case QXL_IO_FLUSH_RELEASE: { QXLReleaseRing *ring = &d->ram->release_ring; if (ring->prod - ring->cons + 1 == ring->num_items) { @@ -1330,7 +1297,6 @@ async_common: d->num_free_res); qxl_spice_flush_surfaces_async(d); break; -#endif case QXL_IO_DESTROY_ALL_SURFACES: d->mode = QXL_MODE_UNDEFINED; qxl_spice_destroy_surfaces(d, async); @@ -1341,16 +1307,12 @@ async_common: } return; cancel_async: -#if SPICE_INTERFACE_QXL_MINOR >= 1 if (async) { qxl_send_events(d, QXL_INTERRUPT_IO_CMD); qemu_mutex_lock(&d->async_lock); d->current_async = QXL_UNDEFINED_IO; qemu_mutex_unlock(&d->async_lock); } -#else - return; -#endif } static uint32_t ioport_read(void *opaque, uint32_t addr) @@ -1625,9 +1587,7 @@ static int qxl_init_common(PCIQXLDevice *qxl) case 2: /* spice 0.6 -- qxl-2 */ pci_device_rev = QXL_REVISION_STABLE_V06; break; -#if SPICE_INTERFACE_QXL_MINOR >= 1 case 3: /* qxl-3 */ -#endif default: pci_device_rev = QXL_DEFAULT_REVISION; break; diff --git a/hw/qxl.h b/hw/qxl.h index b5f2df7..9271e98 100644 --- a/hw/qxl.h +++ b/hw/qxl.h @@ -103,11 +103,7 @@ typedef struct PCIQXLDevice { } \ } while (0) -#if SPICE_INTERFACE_QXL_MINOR >= 1 #define QXL_DEFAULT_REVISION QXL_REVISION_STABLE_V10 -#else -#define QXL_DEFAULT_REVISION QXL_REVISION_STABLE_V06 -#endif /* qxl.c */ void *qxl_phys2virt(PCIQXLDevice *qxl, QXLPHYSICAL phys, int group_id); diff --git a/ui/spice-core.c b/ui/spice-core.c index 6a91762..adfaa85 100644 --- a/ui/spice-core.c +++ b/ui/spice-core.c @@ -138,8 +138,6 @@ static void watch_remove(SpiceWatch *watch) qemu_free(watch); } -#if SPICE_INTERFACE_CORE_MINOR >= 3 - typedef struct ChannelList ChannelList; struct ChannelList { SpiceChannelEventInfo *info; @@ -316,15 +314,6 @@ static void channel_event(int event, SpiceChannelEventInfo *info) } } -#else /* SPICE_INTERFACE_CORE_MINOR >= 3 */ - -static QList *channel_list_get(void) -{ - return NULL; -} - -#endif /* SPICE_INTERFACE_CORE_MINOR >= 3 */ - static SpiceCoreInterface core_interface = { .base.type = SPICE_INTERFACE_CORE, .base.description = "qemu core services", @@ -340,9 +329,7 @@ static SpiceCoreInterface core_interface = { .watch_update_mask = watch_update_mask, .watch_remove = watch_remove, -#if SPICE_INTERFACE_CORE_MINOR >= 3 .channel_event = channel_event, -#endif }; #ifdef SPICE_INTERFACE_MIGRATION @@ -538,7 +525,6 @@ static void migration_state_notifier(Notifier *notifier, void *data) spice_server_migrate_start(spice_server); #endif } else if (state == MIG_STATE_COMPLETED) { -#if SPICE_SERVER_VERSION >= 0x000701 /* 0.7.1 */ #ifndef SPICE_INTERFACE_MIGRATION spice_server_migrate_switch(spice_server); #else @@ -546,7 +532,6 @@ static void migration_state_notifier(Notifier *notifier, void *data) } else if (state == MIG_STATE_CANCELLED || state == MIG_STATE_ERROR) { spice_server_migrate_end(spice_server, false); #endif -#endif } } @@ -695,11 +680,9 @@ void qemu_spice_init(void) spice_server_set_noauth(spice_server); } -#if SPICE_SERVER_VERSION >= 0x000801 if (qemu_opt_get_bool(opts, "disable-copy-paste", 0)) { spice_server_set_agent_copypaste(spice_server, false); } -#endif compression = SPICE_IMAGE_COMPRESS_AUTO_GLZ; str = qemu_opt_get(opts, "image-compression"); diff --git a/ui/spice-display.c b/ui/spice-display.c index 4d81bb7..267e5f8 100644 --- a/ui/spice-display.c +++ b/ui/spice-display.c @@ -67,11 +67,7 @@ void qemu_spice_add_memslot(SimpleSpiceDisplay *ssd, QXLDevMemSlot *memslot, qxl_async_io async) { if (async != QXL_SYNC) { -#if SPICE_INTERFACE_QXL_MINOR >= 1 spice_qxl_add_memslot_async(&ssd->qxl, memslot, 0); -#else - abort(); -#endif } else { ssd->worker->add_memslot(ssd->worker, memslot); } @@ -87,11 +83,7 @@ void qemu_spice_create_primary_surface(SimpleSpiceDisplay *ssd, uint32_t id, qxl_async_io async) { if (async != QXL_SYNC) { -#if SPICE_INTERFACE_QXL_MINOR >= 1 spice_qxl_create_primary_surface_async(&ssd->qxl, id, surface, 0); -#else - abort(); -#endif } else { ssd->worker->create_primary_surface(ssd->worker, id, surface); } @@ -102,11 +94,7 @@ void qemu_spice_destroy_primary_surface(SimpleSpiceDisplay *ssd, uint32_t id, qxl_async_io async) { if (async != QXL_SYNC) { -#if SPICE_INTERFACE_QXL_MINOR >= 1 spice_qxl_destroy_primary_surface_async(&ssd->qxl, id, 0); -#else - abort(); -#endif } else { ssd->worker->destroy_primary_surface(ssd->worker, id); } -- 1.7.7.6