On 11/05/2015 09:41 AM, Eric Blake wrote:

> In order to (later) support case-insensitive QMP, we need to decide up
> front that we will not allow any qapi member names to collide
> case-insensitively (outlaw 'a' and 'A' in the same struct; although the
> C code is still case-preserving); and now that this series is adding a
> single check_clash() function, it's very easy to do.  In fact, I'll add
> that to my series for 2.5 (it's always easier to reserve something now,
> especially if no one was using it, and then relax later; than it is to
> try and restrict things later but run into counter-cases).

Eww - it's not quite as trivial as I thought: we have QMP struct
'CpuInfo' as part of command 'query-cpus' that has both a 'pc' and 'PC'
member.  However, it's not unsalvageable: the type is made up of a bunch
of architecture-specific optional fields along with documentation that
"field x is only present for architecture y".  So it would be possible
to turn this type into a flat union, adding a new enum for architecture,
and separating the object so that 'pc' is part of the 'i386', 'x86_64',
and 'Sparc' branches, while 'PC' is part of the 'Mips' branch.

At any rate, I'll post an RFC.

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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to