diff mbox

[PATCHv4,05/11] qxl: add io_port_to_string

Message ID 1310568597-24181-6-git-send-email-alevy@redhat.com
State New
Headers show

Commit Message

Alon Levy July 13, 2011, 2:49 p.m. UTC
Signed-off-by: Alon Levy <alevy@redhat.com>
---
 hw/qxl.c |   61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 60 insertions(+), 1 deletions(-)

Comments

Gerd Hoffmann July 14, 2011, 8:37 a.m. UTC | #1
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",
     [ ... ]
};
Gerd Hoffmann July 14, 2011, 8:40 a.m. UTC | #2
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
Alon Levy July 14, 2011, 8:52 a.m. UTC | #3
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 mbox

Patch

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;
     }