qemu-devel
[Top][All Lists]
Advanced

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

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


From: Wenchao Xia
Subject: [Qemu-devel] [PATCH V5 00/28] add direct support of event in qapi schema
Date: Wed, 30 Apr 2014 21:26:34 -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. 

Wenchao Xia (28):
  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: define events in qapi schema
  6 monitor: change event functions as an implemention of new emit method
  7 qapi event: convert SHUTDOWN
  8 qapi event: convert POWERDOWN
  9 qapi event: convert RESET
  10 qapi event: convert STOP
  11 qapi event: convert RESUME
  12 qapi event: convert SUSPEND
  13 qapi event: convert SUSPEND_DISK
  14 qapi event: convert WAKEUP
  15 qapi event: convert RTC_CHANGE
  16 qapi event: convert WATCHDOG
  17 qapi event: convert DEVICE_DELETED
  18 qapi event: convert DEVICE_TRAY_MOVED
  19 qapi event: convert BLOCK_IO_ERROR and BLOCK_JOB_ERROR
  20 qapi event: convert BLOCK_IMAGE_CORRUPTED
  21 qapi event: convert other BLOCK_JOB events
  22 qapi event: convert NIC_RX_FILTER_CHANGED
  23 qapi event: convert VNC events
  24 qapi event: convert SPICE events
  25 qapi event: convert BALLOON_CHANGE
  26 qapi event: convert GUEST_PANICKED
  27 qapi event: convert QUORUM events
  28 qapi event: clean up

 Makefile                                 |    9 +-
 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                  |  354 +-----------------
 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                                |  120 +-----
 qapi-schema.json                         |  632 ++++++++++++++++++++++++++++--
 qapi/Makefile.objs                       |    1 +
 qapi/qmp-event.c                         |   74 ++++
 scripts/qapi-event.py                    |  366 +++++++++++++++++
 scripts/qapi.py                          |   12 +
 stubs/Makefile.objs                      |    1 -
 stubs/mon-protocol-event.c               |    6 -
 target-s390x/kvm.c                       |    8 +-
 tests/Makefile                           |   17 +-
 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 +++++++++++++
 ui/spice-core.c                          |   77 ++--
 ui/vnc.c                                 |  120 +++---
 ui/vnc.h                                 |    4 +-
 util/qemu-sockets.c                      |   10 +-
 vl.c                                     |   22 +-
 56 files changed, 1690 insertions(+), 859 deletions(-)
 create mode 100644 include/qapi/qmp-event.h
 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]