From: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
To: Luiz Capitulino <lcapitulino@redhat.com>
Cc: armbru@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: Fri, 14 Feb 2014 11:26:51 +0800 [thread overview]
Message-ID: <52FD8CFB.7090204@linux.vnet.ibm.com> (raw)
In-Reply-To: <52CB736B.1060901@linux.vnet.ibm.com>
于 2014/1/7 11:24, Wenchao Xia 写道:
>>>> +
>>>> +
>>>> +# Following are the functions that generate event behavior control
>>>> functions.
>>>> +# Those functions are put here in the qapi-event.c, since it need
>>>> to include
>>>> +# qapi-event.h for the event enum type declaration, put them in
>>>> other file
>>>> +# requiring other file include qapi-event.h, causing a cross
>>>> including. For
>>>> +# example: if we have qmp-event.c and qmp-event.h, then qmp-event.c
>>>> +# ->qmp-event.h->qapi-event.h, qapi-event.c->qmp-event.h. Another
>>>> problem
>>>> +# follow: test-qapi-event.c will meet event enum double declaration
>>>> since it
>>>> +# include both test-qapi-event.h and qmp-event.h. One solution is
>>>> putting event
>>>> +# enum declaration in a separate header file, but then qmp-event.h
>>>> need to
>>>> +# include test-qapi-event.h or qapi-event.h on compile time
>>>> condition. So the
>>>> +# easist way is, just generate them here.
>>>> +
>>>> +def generate_event_behavior_control_decl(event_enum_name):
>>>> + ret = mcgen('''
>>>> +
>>>> +typedef void (*QAPIEventFuncEmit)(%(event_enum_name)s ev,
>>>> + QDict *dict,
>>>> + Error **errp);
>>
>> Why does the emit function need 'ev'? Doesn't 'dict' contain all the
>> info it needs? Also, it's better to rename it to 'event' or 'qmp_event'.
>>
>
> ev is for rate limit. I didn't move rate limit logic from callback to
> internal, mainly because it is a generated function, which seems
> too complex. And the genrated function was not moved into a separte
> file mainly because the enum and including issue, see the comments
> in script above.
> The problem is enum is changing, so the new file include it need
> to recompile, for example, test schema and qapi-schema.json may
> force recompile twice, I am not sure if it is good to do
> some tricks in build system.
>
I am going to respin this series after sync with upstream.
"ev" will be removed, and will try use a runtime call to solve
issue above.
next prev parent reply other threads:[~2014-02-14 3:27 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 [this message]
2014-01-07 2:53 ` Wenchao Xia
2014-03-06 18:49 ` Eric Blake
2014-03-19 2:38 ` Wenchao Xia
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=52FD8CFB.7090204@linux.vnet.ibm.com \
--to=xiawenc@linux.vnet.ibm.com \
--cc=armbru@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).