Signed-off-by: Alon Levy <al...@redhat.com> --- hw/qxl.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 62 insertions(+), 1 deletions(-)
diff --git a/hw/qxl.c b/hw/qxl.c index e832d00..c998e9b 100644 --- a/hw/qxl.c +++ b/hw/qxl.c @@ -409,6 +409,66 @@ static const char *qxl_mode_to_string(int mode) return "INVALID"; } +static const char *io_port_to_string(uint32_t io_port) +{ + if (io_port >= QXL_IO_RANGE_SIZE) { + return "out of range"; + } + switch (io_port) { + case QXL_IO_NOTIFY_CMD: + return "QXL_IO_NOTIFY_CMD"; + case QXL_IO_NOTIFY_CURSOR: + return "QXL_IO_NOTIFY_CURSOR"; + case QXL_IO_UPDATE_AREA: + return "QXL_IO_UPDATE_AREA"; + case QXL_IO_UPDATE_IRQ: + return "QXL_IO_UPDATE_IRQ"; + case QXL_IO_NOTIFY_OOM: + return "QXL_IO_NOTIFY_OOM"; + case QXL_IO_RESET: + return "QXL_IO_RESET"; + case QXL_IO_SET_MODE: + return "QXL_IO_SET_MODE"; + case QXL_IO_LOG: + return "QXL_IO_LOG"; + case QXL_IO_MEMSLOT_ADD: + return "QXL_IO_MEMSLOT_ADD"; + case QXL_IO_MEMSLOT_DEL: + return "QXL_IO_MEMSLOT_DEL"; + case QXL_IO_DETACH_PRIMARY: + return "QXL_IO_DETACH_PRIMARY"; + case QXL_IO_ATTACH_PRIMARY: + return "QXL_IO_ATTACH_PRIMARY"; + case QXL_IO_CREATE_PRIMARY: + return "QXL_IO_CREATE_PRIMARY"; + case QXL_IO_DESTROY_PRIMARY: + return "QXL_IO_DESTROY_PRIMARY"; + case QXL_IO_DESTROY_SURFACE_WAIT: + return "QXL_IO_DESTROY_SURFACE_WAIT"; + case QXL_IO_DESTROY_ALL_SURFACES: + return "QXL_IO_DESTROY_ALL_SURFACES"; +#if SPICE_INTERFACE_QXL_MINOR >= 1 + case QXL_IO_UPDATE_AREA_ASYNC: + return "QXL_IO_UPDATE_AREA_ASYNC"; + case QXL_IO_MEMSLOT_ADD_ASYNC: + return "QXL_IO_MEMSLOT_ADD_ASYNC"; + case QXL_IO_CREATE_PRIMARY_ASYNC: + return "QXL_IO_CREATE_PRIMARY_ASYNC"; + case QXL_IO_DESTROY_PRIMARY_ASYNC: + return "QXL_IO_DESTROY_PRIMARY_ASYNC"; + case QXL_IO_DESTROY_SURFACE_ASYNC: + return "QXL_IO_DESTROY_SURFACE_ASYNC"; + case QXL_IO_DESTROY_ALL_SURFACES_ASYNC: + return "QXL_IO_DESTROY_ALL_SURFACES_ASYNC"; + case QXL_IO_FLUSH_SURFACES_ASYNC: + return "QXL_IO_FLUSH_SURFACES_ASYNC"; + case QXL_IO_FLUSH_RELEASE: + return "QXL_IO_FLUSH_RELEASE"; +#endif + } + return "error in io_port_to_string"; +} + /* called from spice server thread context only */ static int interface_get_command(QXLInstance *sin, struct QXLCommandExt *ext) { @@ -1011,7 +1071,8 @@ static void ioport_write(void *opaque, uint32_t addr, uint32_t val) default: if (d->mode == QXL_MODE_NATIVE || d->mode == QXL_MODE_COMPAT) break; - dprint(d, 1, "%s: unexpected port 0x%x in vga mode\n", __FUNCTION__, io_port); + dprint(d, 1, "%s: unexpected port 0x%x (%s) in vga mode\n", + __func__, io_port, io_port_to_string(io_port)); return; } -- 1.7.6