On 05/16/2012 11:04 AM, Eric Blake wrote:
On 05/16/2012 06:55 AM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange"<berra...@redhat.com>

Sometimes it is neccessary for an application to determine
whether a particular QMP event is available, so they can
decide whether to use compatibility code instead. This
introduces a new 'query-events' command to QMP todo just

s/todo/to do/

that

  { "execute": "query-events" }
  {"return": [{"name": "WAKEUP"},
              {"name": "SUSPEND"},
              {"name": "DEVICE_TRAY_MOVED"},
              {"name": "BLOCK_JOB_CANCELLED"},
              {"name": "BLOCK_JOB_COMPLETED"},
              ...snip...
              {"name": "SHUTDOWN"}]}

* monitor.c: Split out MonitorEvent ->  string conversion
   into monitor_protocol_event_name() API. Add impl of
   qmp_query_events monitor command handler
* qapi-schema.json, qmp-commands.hx: Define contract of
   query-events command

Definitely useful for libvirt.


+static const char *monitor_protocol_event_name(MonitorEvent event)
+{
      switch (event) {
          case QEVENT_SHUTDOWN:
-            event_name = "SHUTDOWN";
+            return "SHUTDOWN";
              break;

These 'break' statements are now unreachable; does this matter in qemu
coding style?

Seems like we should just take the opportunity to kill off the function entirely and replace it with a table:

static const char *monitor_event_names[] = {
 [QEVENT_SHUTDOWN] = "SHUTDOWN",
 ...
};

Regards,

Anthony Liguori

Reply via email to