Message ID | 1310568597-24181-6-git-send-email-alevy@redhat.com |
---|---|
State | New |
Headers | show |
On 07/13/11 16:49, Alon Levy wrote: > Signed-off-by: Alon Levy<alevy@redhat.com> > --- > hw/qxl.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- > 1 files changed, 60 insertions(+), 1 deletions(-) > > diff --git a/hw/qxl.c b/hw/qxl.c > index e41f8cc..2ecc932 100644 > --- a/hw/qxl.c > +++ b/hw/qxl.c > @@ -408,6 +408,64 @@ 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"; That becomes alot more readable when using a c99 array for it: static const char *io_port_names[QXL_IO_RANGE_SIZE] = { [ QXL_IO_NOTIFY_CMD ] = "notify-cmd", [ QXL_IO_NOTIFY_CURSOR ] = "notify-cursor", [ ... ] };
Hi, > + case QXL_IO_UPDATE_AREA_ASYNC: > + return "QXL_IO_UPDATE_AREA_ASYNC"; Fails to build with old libspice-server (well, old libspice-protocol to be exact). Needs #ifdef. Using SPICE_INTERFACE_QXL_MINOR should work fine as the new libspice-server depends on the new spice-protocol too. cheers, Gerd
On Thu, Jul 14, 2011 at 10:37:02AM +0200, Gerd Hoffmann wrote: > On 07/13/11 16:49, Alon Levy wrote: > >Signed-off-by: Alon Levy<alevy@redhat.com> > >--- > > hw/qxl.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- > > 1 files changed, 60 insertions(+), 1 deletions(-) > > > >diff --git a/hw/qxl.c b/hw/qxl.c > >index e41f8cc..2ecc932 100644 > >--- a/hw/qxl.c > >+++ b/hw/qxl.c > >@@ -408,6 +408,64 @@ 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"; > > That becomes alot more readable when using a c99 array for it: > > static const char *io_port_names[QXL_IO_RANGE_SIZE] = { > [ QXL_IO_NOTIFY_CMD ] = "notify-cmd", > [ QXL_IO_NOTIFY_CURSOR ] = "notify-cursor", > [ ... ] > }; > > Fine.
diff --git a/hw/qxl.c b/hw/qxl.c index e41f8cc..2ecc932 100644 --- a/hw/qxl.c +++ b/hw/qxl.c @@ -408,6 +408,64 @@ 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"; + } + return "error in io_port_to_string"; +} + /* called from spice server thread context only */ static int interface_get_command(QXLInstance *sin, struct QXLCommandExt *ext) { @@ -1004,7 +1062,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; }
Signed-off-by: Alon Levy <alevy@redhat.com> --- hw/qxl.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 60 insertions(+), 1 deletions(-)