qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Wenchao Xia <wenchaoqemu@gmail.com>
To: Eric Blake <eblake@redhat.com>
Cc: armbru@redhat.com, lcapitulino@redhat.com, qemu-devel@nongnu.org,
	mreitz@redhat.com
Subject: Re: [Qemu-devel] [RFC PATCH V2 3/5] qapi script: add event support by qapi-event.py
Date: Wed, 19 Mar 2014 10:38:07 +0800	[thread overview]
Message-ID: <5329030F.5010401@gmail.com> (raw)
In-Reply-To: <5318C354.6060706@redhat.com>

于 2014/3/7 2:49, Eric Blake 写道:
> On 01/02/2014 04:10 PM, Wenchao Xia wrote:
>> qapi-event.py will parse the schema and generate qapi-event.c, then
>> the API in qapi-event.c can be used to handle event in qemu code.
>> All API have prefix "qapi_event", all types have prefix "QAPIEvent".
>> Examples can be found in following patches.
>>
>> The script mainly include three parts: generate API for each event
>> define, generate an enum type for all defined event, generate behavior
> s/event/events/
>
>> control functions.
>>
>> Since in some case the real emit behavior may change, for example,
>> qemu-img would not send a event, a callback layer is added to
>> control the behavior. As a result, the stubs at compile time
>> can be saved, the binding of block layer code and monitor code
>> will become looser.
>>
>> Signed-off-by: Wenchao Xia<xiawenc@linux.vnet.ibm.com>
>> ---
>>   Makefile              |    9 +-
>>   Makefile.objs         |    2 +-
>>   scripts/qapi-event.py |  432 +++++++++++++++++++++++++++++++++++++++++++++++++
>>   3 files changed, 439 insertions(+), 4 deletions(-)
>>   create mode 100644 scripts/qapi-event.py
> In addition to Luiz' comments, you are missing documentation.  At a
> minimum, docs/qapi-code-gen.txt should be updated.
>
>
>> +try:
>> +    opts, args = getopt.gnu_getopt(sys.argv[1:], "chbp:o:",
>> +                                   ["source", "header", "builtins", "prefix=",
>> +                                    "output-dir="])
>> +except getopt.GetoptError, err:
>> +    print str(err)
>> +    sys.exit(1)
>> +
>> +output_dir = ""
>> +prefix = ""
>> +c_file = 'qapi-event.c'
>> +h_file = 'qapi-event.h'
>> +
>> +do_c = False
>> +do_h = False
>> +do_builtins = False
>> +
>> +for o, a in opts:
>> +    if o in ("-p", "--prefix"):
>> +        prefix = a
>> +    elif o in ("-o", "--output-dir"):
>> +        output_dir = a + "/"
>> +    elif o in ("-c", "--source"):
>> +        do_c = True
>> +    elif o in ("-h", "--header"):
>> +        do_h = True
>> +    elif o in ("-b", "--builtins"):
>> +        do_builtins = True
> You may need to rebase this on top of other patches that refactor the
> qapi generators to track the input file, for improved error messages.
   It seems qapi-visit.py and qapi-types.py remains the same as above in
upstream, which kind of change are your referring to?

>> +fdef.write(mcgen('''
>> +/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT MODIFY */
>> +
>> +/*
>> + * schema-defined QAPI event functions
>> + *
>> + * Copyright IBM, Corp. 2014
>> + *
>> + * Authors:
>> + *  Wenchao Xia<xiawenc@linux.vnet.ibm.com>
>> + *
>> + * This work is licensed under the terms of the GNU GPLv2+ or later.
>> + * See the COPYING.LIB file in the top-level directory.
> Fix this.  If these are really GPL files, then they should refer to
> COPYING.  If you meant LGPL for the generated files, say so (but that's
> possibly at odds with other parts of your patch that put the generator
> under GPL).
>

  reply	other threads:[~2014-03-19  2:38 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-02 23:10 [Qemu-devel] [RFC PATCH V2 0/5] add direct support of event in qapi schema Wenchao Xia
2014-01-02 23:10 ` [Qemu-devel] [RFC PATCH V2 1/5] os-posix: include sys/time.h Wenchao Xia
2014-01-02 23:10 ` [Qemu-devel] [RFC PATCH V2 2/5] qapi: add event helper functions Wenchao Xia
2014-01-06 22:23   ` Luiz Capitulino
2014-01-07  2:28     ` Wenchao Xia
2014-03-06 18:26     ` Eric Blake
2014-01-02 23:10 ` [Qemu-devel] [RFC PATCH V2 3/5] qapi script: add event support by qapi-event.py Wenchao Xia
2014-01-06 23:10   ` Luiz Capitulino
2014-01-06 23:17     ` Luiz Capitulino
2014-01-07  3:24       ` Wenchao Xia
2014-02-14  3:26         ` Wenchao Xia
2014-01-07  2:53     ` Wenchao Xia
2014-03-06 18:49   ` Eric Blake
2014-03-19  2:38     ` Wenchao Xia [this message]
2014-03-20 22:29       ` Eric Blake
2014-03-24  0:55         ` Wenchao Xia
2014-03-26 12:42           ` Markus Armbruster
2014-03-26 13:13             ` Benoît Canet
2014-03-27  7:52               ` Wenchao Xia
2014-01-02 23:10 ` [Qemu-devel] [RFC PATCH V2 4/5] test: add test cases for qapi event Wenchao Xia
2014-03-06 20:05   ` Eric Blake
2014-01-02 23:10 ` [Qemu-devel] [RFC PATCH V2 5/5] qapi event: convert RTC_CHANGE Wenchao Xia
2014-03-06 20:24   ` Eric Blake
2014-01-06 23:18 ` [Qemu-devel] [RFC PATCH V2 0/5] add direct support of event in qapi schema Luiz Capitulino
2014-03-06 18:14   ` Eric Blake
2014-03-06 19:58     ` Luiz Capitulino
2014-03-07  1:13       ` Wenchao Xia

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=5329030F.5010401@gmail.com \
    --to=wenchaoqemu@gmail.com \
    --cc=armbru@redhat.com \
    --cc=eblake@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=mreitz@redhat.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).