[Qemu-devel] [PATCH v2] qxl: add io_port_to_string
--- hw/qxl.c | 62 +- 1 files changed, 61 insertions(+), 1 deletions(-) diff --git a/hw/qxl.c b/hw/qxl.c index 9116c99..f3312f0 100644 --- a/hw/qxl.c +++ b/hw/qxl.c @@ -407,6 +407,65 @@ 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; +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; +} +// not reached? +return error in io_port_to_string; +} + /* called from spice server thread context only */ static int interface_get_command(QXLInstance *sin, struct QXLCommandExt *ext) { @@ -997,7 +1056,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, +__FUNCTION__, io_port, io_port_to_string(io_port)); return; } -- 1.7.5.4
[Qemu-devel] [PATCH v2] qxl: add io_port_to_string
--- hw/qxl.c | 64 +- 1 files changed, 63 insertions(+), 1 deletions(-) diff --git a/hw/qxl.c b/hw/qxl.c index 3d5c823..b4bc376 100644 --- a/hw/qxl.c +++ b/hw/qxl.c @@ -350,6 +350,67 @@ 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; +case QXL_IO_UPDATE_AREA_ASYNC: +return QXL_IO_UPDATE_AREA_ASYNC; +case QXL_IO_NOTIFY_OOM_ASYNC: +return QXL_IO_NOTIFY_OOM_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: +return QXL_IO_FLUSH_SURFACES; +case QXL_IO_FLUSH_RELEASE: +return QXL_IO_FLUSH_RELEASE; +} +// not reached? +return error in io_port_to_string; +} + /* called from spice server thread context only */ static int interface_get_command(QXLInstance *sin, struct QXLCommandExt *ext) { @@ -1009,7 +1070,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, +__FUNCTION__, io_port, io_port_to_string(io_port)); /* be nice to buggy guest drivers */ if (io_port = QXL_IO_UPDATE_AREA_ASYNC io_port = QXL_IO_DESTROY_ALL_SURFACES_ASYNC) { -- 1.7.5.4