From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48191) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WQ8sI-0006aO-0J for qemu-devel@nongnu.org; Wed, 19 Mar 2014 01:17:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WQ8sB-0002X9-DY for qemu-devel@nongnu.org; Wed, 19 Mar 2014 01:17:09 -0400 Received: from mail-pa0-x232.google.com ([2607:f8b0:400e:c03::232]:46797) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WQ8sB-0002Wz-5k for qemu-devel@nongnu.org; Wed, 19 Mar 2014 01:17:03 -0400 Received: by mail-pa0-f50.google.com with SMTP id kq14so8386528pab.37 for ; Tue, 18 Mar 2014 22:17:02 -0700 (PDT) From: Wenchao Xia Date: Tue, 18 Mar 2014 22:16:36 -0700 Message-Id: <1395206201-22999-1-git-send-email-wenchaoqemu@gmail.com> Subject: [Qemu-devel] [RFC PATCH V3 0/5] add direct support of event in qapi schema List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mdroth@linux.vnet.ibm.com, armbru@redhat.com, Wenchao Xia , lcapitulino@redhat.com 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. Wenchao Xia (5): 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 event: convert RTC_CHANGE Makefile | 9 +- Makefile.objs | 2 +- docs/qapi-code-gen.txt | 18 ++ include/qapi/qmp-event.h | 25 ++ include/sysemu/os-posix.h | 2 + monitor.c | 15 ++ qapi-schema.json | 13 + qapi/Makefile.objs | 1 + qapi/qmp-event.c | 71 ++++++ scripts/qapi-event.py | 373 +++++++++++++++++++++++++++++++ tests/Makefile | 14 +- tests/qapi-schema/qapi-schema-test.json | 12 + tests/qapi-schema/qapi-schema-test.out | 10 +- tests/test-qmp-event.c | 258 +++++++++++++++++++++ vl.c | 7 +- 15 files changed, 816 insertions(+), 14 deletions(-) create mode 100644 include/qapi/qmp-event.h create mode 100644 qapi/qmp-event.c create mode 100644 scripts/qapi-event.py create mode 100644 tests/test-qmp-event.c