All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Wenchao Xia <xiawenc@linux.vnet.ibm.com>, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, mdroth@linux.vnet.ibm.com, armbru@redhat.com,
	lcapitulino@redhat.com
Subject: Re: [Qemu-devel] [PATCH V4 6/9] qapi script: support pre-defined enum type as discriminator in union
Date: Fri, 13 Dec 2013 07:10:38 -0700	[thread overview]
Message-ID: <52AB155E.4090209@redhat.com> (raw)
In-Reply-To: <1386740912-1655-7-git-send-email-xiawenc@linux.vnet.ibm.com>

[-- Attachment #1: Type: text/plain, Size: 1638 bytes --]

On 12/10/2013 10:48 PM, Wenchao Xia wrote:
> By default, any union will automatically generate a enum type as
> "[UnionName]Kind" in C code, and it is duplicated when the discriminator
> is specified as a pre-defined enum type in schema. After this patch,
> the pre-defined enum type will be really used as the switch case
> condition in generated C code, if discriminator is an enum field.
> 
> Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
> ---
>  docs/qapi-code-gen.txt |    8 ++++++--
>  scripts/qapi-types.py  |   18 ++++++++++++++----
>  scripts/qapi-visit.py  |   23 ++++++++++++++++-------
>  scripts/qapi.py        |    4 +++-
>  4 files changed, 39 insertions(+), 14 deletions(-)
> 
> diff --git a/docs/qapi-code-gen.txt b/docs/qapi-code-gen.txt
> index 0728f36..f00640b 100644
> --- a/docs/qapi-code-gen.txt
> +++ b/docs/qapi-code-gen.txt
> @@ -123,11 +123,15 @@ And it looks like this on the wire:
>  
>  Flat union types avoid the nesting on the wire. They are used whenever a
>  specific field of the base type is declared as the discriminator ('type' is
> -then no longer generated). The discriminator must always be a string field.
> +then no longer generated). The discriminator can be a string field or a
> +predefined enum field. If it is a string field, a hidden enum type will be
> +generated as "[UNION_NAME]Kind". If it is an enum field, compile time check

s/compile/a compile/

Minor enough that I'm okay giving:

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 621 bytes --]

  reply	other threads:[~2013-12-13 14:11 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-11  5:48 [Qemu-devel] [PATCH V4 0/9] qapi script: support enum as discriminator and better enum name Wenchao Xia
2013-12-11  5:48 ` [Qemu-devel] [PATCH V4 1/9] qapi script: remember enum values Wenchao Xia
2013-12-11  5:48 ` [Qemu-devel] [PATCH V4 2/9] qapi script: add check for duplicated key Wenchao Xia
2013-12-11  5:48 ` [Qemu-devel] [PATCH V4 3/9] qapi script: check correctness of discriminator values in union Wenchao Xia
2013-12-11  5:48 ` [Qemu-devel] [PATCH V4 4/9] qapi script: code move for generate_enum_name() Wenchao Xia
2013-12-11  5:48 ` [Qemu-devel] [PATCH V4 5/9] qapi script: use same function to generate enum string Wenchao Xia
2013-12-12  4:26   ` Eric Blake
2013-12-11  5:48 ` [Qemu-devel] [PATCH V4 6/9] qapi script: support pre-defined enum type as discriminator in union Wenchao Xia
2013-12-13 14:10   ` Eric Blake [this message]
2013-12-11  5:48 ` [Qemu-devel] [PATCH V4 7/9] tests: add cases for inherited struct and union with discriminator Wenchao Xia
2013-12-13 23:47   ` Eric Blake
2013-12-11  5:48 ` [Qemu-devel] [PATCH V4 8/9] qapi: convert BlockdevOptions to use enum discriminator Wenchao Xia
2013-12-13 23:50   ` Eric Blake
2013-12-16  2:41     ` Wenchao Xia
2013-12-16 21:26       ` Luiz Capitulino
2013-12-11  5:48 ` [Qemu-devel] [PATCH V4 9/9] qapi script: do not add "_" for every capitalized char in enum Wenchao Xia
2013-12-13 23:50   ` 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=52AB155E.4090209@redhat.com \
    --to=eblake@redhat.com \
    --cc=armbru@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=xiawenc@linux.vnet.ibm.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.