From: Wenchao Xia <wenchaoqemu@gmail.com>
To: qemu-devel@nongnu.org
Cc: mdroth@linux.vnet.ibm.com, armbru@redhat.com,
Wenchao Xia <wenchaoqemu@gmail.com>,
lcapitulino@redhat.com
Subject: [Qemu-devel] [PATCH V5 00/28] add direct support of event in qapi schema
Date: Wed, 30 Apr 2014 21:26:34 -0700 [thread overview]
Message-ID: <1398918422-3019-1-git-send-email-wenchaoqemu@gmail.com> (raw)
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
next reply other threads:[~2014-05-01 4:27 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-01 4:26 Wenchao Xia [this message]
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 01/28] os-posix: include sys/time.h Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 02/28] qapi: add event helper functions Wenchao Xia
2014-05-01 14:20 ` Eric Blake
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 03/28] qapi script: add event support Wenchao Xia
2014-05-01 22:05 ` Eric Blake
2014-05-02 7:54 ` Markus Armbruster
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 04/28] test: add test cases for qapi event Wenchao Xia
2014-05-01 14:38 ` Eric Blake
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 05/28] qapi: define events in qapi schema Wenchao Xia
2014-05-01 15:00 ` Eric Blake
2014-05-07 12:48 ` Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 06/28] monitor: change event functions as an implemention of new emit method Wenchao Xia
2014-05-01 22:09 ` Eric Blake
2014-05-07 12:53 ` Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 07/28] qapi event: convert SHUTDOWN Wenchao Xia
2014-05-01 14:44 ` Eric Blake
2014-05-07 12:55 ` Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 08/28] qapi event: convert POWERDOWN Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 09/28] qapi event: convert RESET Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 10/28] qapi event: convert STOP Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 11/28] qapi event: convert RESUME Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 12/28] qapi event: convert SUSPEND Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 13/28] qapi event: convert SUSPEND_DISK Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 14/28] qapi event: convert WAKEUP Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 15/28] qapi event: convert RTC_CHANGE Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 16/28] qapi event: convert WATCHDOG Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 17/28] qapi event: convert DEVICE_DELETED Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 18/28] qapi event: convert DEVICE_TRAY_MOVED Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 19/28] qapi event: convert BLOCK_IO_ERROR and BLOCK_JOB_ERROR Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 20/28] qapi event: convert BLOCK_IMAGE_CORRUPTED Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 21/28] qapi event: convert other BLOCK_JOB events Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 22/28] qapi event: convert NIC_RX_FILTER_CHANGED Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 23/28] qapi event: convert VNC events Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 24/28] qapi event: convert SPICE events Wenchao Xia
2014-05-01 4:26 ` [Qemu-devel] [PATCH V5 25/28] qapi event: convert BALLOON_CHANGE Wenchao Xia
2014-05-01 4:27 ` [Qemu-devel] [PATCH V5 26/28] qapi event: convert GUEST_PANICKED Wenchao Xia
2014-05-01 4:27 ` [Qemu-devel] [PATCH V5 27/28] qapi event: convert QUORUM events Wenchao Xia
2014-05-01 4:27 ` [Qemu-devel] [PATCH V5 28/28] qapi event: clean up Wenchao Xia
2014-05-01 22:15 ` Eric Blake
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1398918422-3019-1-git-send-email-wenchaoqemu@gmail.com \
--to=wenchaoqemu@gmail.com \
--cc=armbru@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).