qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH V6 00/29] add direct support of event in qapi schema


From: Wenchao Xia
Subject: [Qemu-devel] [PATCH V6 00/29] add direct support of event in qapi schema
Date: Thu, 5 Jun 2014 05:21:55 -0700

This series add support for tag/keyword 'event' in qapi-schema.
A new file was created to store some helper functions in patch 2, patch 4 is
the test case, patch 5 is a convert example.

The implemention is done by generate API and a batch of parameters for each
event define, it doesn't generate a struture and visit function in the
background for every event, so it doesn't support nested structure in the
define to avoid trouble. A callback layer is added to control the behavior.
More detail can be found in patch 3's message and incode comments.

v2:
  Address Luiz's comments:
  patch 3: rename *err to *local_err, do not initialize *qmp = NULL, create
a new function qmp_build_evet_dict().
  Other change:
  reorgnized script in patch 3, it have a clear three steps, see patch 3's
incode comments.

v3:
  Address Luiz's comments:
  2/5: use -1 when fail to get host timestamp.
  3/5: typo fix and better incode comments. all unchanged functions are moved
into qmp-event.c, from generated file. To do so without include issue, 'int'
was used intead of 'enum' in function prototype declaration, since the 'enum'
define is a generated type.
  Address Eric's comments:
  2/5: use -1 when fail to get host timestamp.
  3/5: typo fix, add docs/qapi-code-gen.txt.
  4/5: typo fix, verify no other fields in member 'timestamp'.
  5/5: add doc in qapi-schema.json.
  fix license, all script using GPL2, all C code use LGPL, just as other
similar files in upstream.

v4:
  Address Eric's comments:
  2/5: typo fix, add copyright declaration, use a static function pointer
instead of a struct in C file, assign -1 in two line of codes to avoid issue
when tv_sec and tv_usec are not in same data width, fix indention.
  3/5: typo fix, add copyright declaration.
  4/5: add copyright declaration, simplify string compare with
 "d->result = g_strcmp0(...) == 0;", add check for tv_usec's range and value.
  Other:
  3/5: all error check code was moved from qapi-event.py to qapi.py, and it
reports better message with line number info. Added related test case.
  Note:
  Benoit's series which track input file better seems not the final version,
so I didn't rebase this series ontop for now, will do it once Benoit's ones
get ACKed.

v5:
  Address Eric and Markus's comments:
  2/28: use uint64_t for both sec and usec, to avoid type cast issue in printf.
  Other:
  Remove RFC, add full coversion by patch 5-28.
  3/28: add prefix for event enum type name, to avoid double define of
QAPIEvent in test code.

v6:
  Address Eric's comments:
  3/29: employ modularization mechnism of schema file of Lluís series, remove
error_is_set() usage.
  4/29: Makefile change for Lluís series.
  5/29: separate patch for refactoring the existing schema defines, improve doc
for @service in VncBasicInfo.
  7/29-28/29: define and convert event caller one by one.
  Other change:
  6/29: new way to add event emit implemention. In v5 it breaks old event
mechnism, in v6 it touch nothing of old event mechnism but add a new set of
functions for new event mechnism.
  7/29: Add new file qapi-event.json to store event defines, and all type
defines goes into qapi-schema.json.
  29/29: related clean up change.
  Note:
  I have no way to verify target-s390x/kvm.c touched by patch 27/29, and
block/quorum.c touched by patch 28/29, need a confirm from whom has the test
env.

Wenchao Xia (29):
  1 os-posix: include sys/time.h
  2 qapi: add event helper functions
  3 qapi script: add event support
  4 test: add test cases for qapi event
  5 qapi: adjust existing defines
  6 monitor: add an implemention as qapi event emit method
  7 qapi: add new schema file qapi-event.json
  8 qapi event: convert SHUTDOWN
  9 qapi event: convert POWERDOWN
  10 qapi event: convert RESET
  11 qapi event: convert STOP
  12 qapi event: convert RESUME
  13 qapi event: convert SUSPEND
  14 qapi event: convert SUSPEND_DISK
  15 qapi event: convert WAKEUP
  16 qapi event: convert RTC_CHANGE
  17 qapi event: convert WATCHDOG
  18 qapi event: convert DEVICE_DELETED
  19 qapi event: convert DEVICE_TRAY_MOVED
  20 qapi event: convert BLOCK_IO_ERROR and BLOCK_JOB_ERROR
  21 qapi event: convert BLOCK_IMAGE_CORRUPTED
  22 qapi event: convert other BLOCK_JOB events
  23 qapi event: convert NIC_RX_FILTER_CHANGED
  24 qapi event: convert VNC events
  25 qapi event: convert SPICE events
  26 qapi event: convert BALLOON_CHANGE
  27 qapi event: convert GUEST_PANICKED
  28 qapi event: convert QUORUM events
  29 qapi event: clean up

 Makefile                                 |   21 +-
 Makefile.objs                            |    2 +-
 balloon.c                                |   13 -
 block.c                                  |   68 +---
 block/backup.c                           |    2 +-
 block/mirror.c                           |    9 +-
 block/qcow2-refcount.c                   |   14 +-
 block/quorum.c                           |   25 +-
 block/stream.c                           |    4 +-
 blockdev.c                               |   12 +-
 blockjob.c                               |   53 ++--
 cpus.c                                   |    5 +-
 docs/qapi-code-gen.txt                   |   18 +
 docs/qmp/qmp-events.txt                  |  541 ------------------------------
 hmp.c                                    |    5 +-
 hw/acpi/core.c                           |    4 +-
 hw/block/virtio-blk.c                    |    6 +-
 hw/core/qdev.c                           |   12 +-
 hw/ide/core.c                            |    6 +-
 hw/misc/pvpanic.c                        |   13 +-
 hw/net/virtio-net.c                      |   13 +-
 hw/ppc/spapr_rtas.c                      |    3 +-
 hw/scsi/scsi-disk.c                      |    6 +-
 hw/timer/mc146818rtc.c                   |    3 +-
 hw/virtio/virtio-balloon.c               |    6 +-
 hw/watchdog/watchdog.c                   |   23 +-
 include/block/block.h                    |    4 -
 include/block/block_int.h                |    3 -
 include/block/blockjob.h                 |   17 +-
 include/monitor/monitor.h                |   40 ---
 include/qapi/qmp-event.h                 |   27 ++
 include/qemu/sockets.h                   |    3 +-
 include/sysemu/balloon.h                 |    2 -
 include/sysemu/os-posix.h                |    2 +
 include/sysemu/sysemu.h                  |    2 -
 monitor.c                                |  185 +++--------
 qapi-event.json                          |  452 +++++++++++++++++++++++++
 qapi-schema.json                         |  178 +++++++++--
 qapi/Makefile.objs                       |    1 +
 qapi/qmp-event.c                         |   74 ++++
 scripts/qapi-event.py                    |  369 ++++++++++++++++++++
 scripts/qapi.py                          |   12 +
 stubs/Makefile.objs                      |    1 -
 stubs/mon-protocol-event.c               |    6 -
 target-s390x/kvm.c                       |    8 +-
 tests/Makefile                           |   18 +-
 tests/qapi-schema/event-nest-struct.err  |    1 +
 tests/qapi-schema/event-nest-struct.exit |    1 +
 tests/qapi-schema/event-nest-struct.json |    2 +
 tests/qapi-schema/qapi-schema-test.json  |   12 +
 tests/qapi-schema/qapi-schema-test.out   |   10 +-
 tests/test-qmp-event.c                   |  265 +++++++++++++++
 trace-events                             |    4 +
 ui/spice-core.c                          |   77 +++--
 ui/vnc.c                                 |  120 ++++----
 ui/vnc.h                                 |    4 +-
 util/qemu-sockets.c                      |   10 +-
 vl.c                                     |   22 +-
 58 files changed, 1732 insertions(+), 1087 deletions(-)
 delete mode 100644 docs/qmp/qmp-events.txt
 create mode 100644 include/qapi/qmp-event.h
 create mode 100644 qapi-event.json
 create mode 100644 qapi/qmp-event.c
 create mode 100644 scripts/qapi-event.py
 delete mode 100644 stubs/mon-protocol-event.c
 create mode 100644 tests/qapi-schema/event-nest-struct.err
 create mode 100644 tests/qapi-schema/event-nest-struct.exit
 create mode 100644 tests/qapi-schema/event-nest-struct.json
 create mode 100644 tests/qapi-schema/event-nest-struct.out
 create mode 100644 tests/test-qmp-event.c




reply via email to

[Prev in Thread] Current Thread [Next in Thread]