[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH v2 0/7] qapi: Specify default value for optional
From: |
Fam Zheng |
Subject: |
[Qemu-devel] [RFC PATCH v2 0/7] qapi: Specify default value for optional argument in schema json |
Date: |
Tue, 20 May 2014 17:07:54 +0800 |
Please first take a look at patch 7 to see what is supported by this series.
Patch 1 ~ 3 allows some useful basic types in schema.
Patch 4 ~ 6 implements the new syntax.
Note: The introduced '@arg' sigil, just like the preexisting '*arg', is
reducing the cleanness of the syntax. We should get rid of both of them in long
term. Here, this series compromises on this and introduces '@arg' because:
- We have to distinguish the argument property dictionary from nested struct:
I.e.:
'data': {
'arg1': { 'member1': 'int', 'member2': 'str' }
'@arg2': { 'type': 'int', 'default': 100 }
}
Until we completely drop and forbid the 'arg1' nested struct use case.
- Forbidding 'arg1' it's doable, but doing it now means we pull in many
distractive patches to this series.
Basically we need to:
* converting existing nested structs to named structs in qapi-schema.json.
* converting C code that references these structs because member structures
become member structure pointers.
* coverting qapi-schema test cases on nested structure.
* updating docs/qapi-code-gen.txt.
- So let's focus on the default value requirement for now, because it's not
making the above change harder.
Test cases, documentation, more data types of default value, and conversion of
more qmp commands will come later, if we could agree on the schema design and
framework.
Thanks,
Fam
Fam Zheng (7):
qapi: Allow decimal values
qapi: Allow true, false and null in schema json
tests: Add decimal test cases for qapi-schema
qapi: Add c_val(t, val) for int
qapi: Add @arg property dictionary syntax
qapi: Initialize argument value in generated code if has 'default'
qmp: Convert block-commit speed to arg property dict
blockdev.c | 6 +--
qapi-schema.json | 2 +-
scripts/qapi-commands.py | 55 +++++++++++++++----------
scripts/qapi-types.py | 2 +-
scripts/qapi-visit.py | 4 +-
scripts/qapi.py | 60 +++++++++++++++++++++++++---
tests/Makefile | 3 +-
tests/qapi-schema/integers-leading-zero.err | 1 +
tests/qapi-schema/integers-leading-zero.exit | 1 +
tests/qapi-schema/integers-leading-zero.json | 1 +
tests/qapi-schema/integers-leading-zero.out | 0
tests/qapi-schema/integers-overflow.err | 1 +
tests/qapi-schema/integers-overflow.exit | 1 +
tests/qapi-schema/integers-overflow.json | 1 +
tests/qapi-schema/integers-overflow.out | 0
tests/qapi-schema/integers.err | 0
tests/qapi-schema/integers.exit | 1 +
tests/qapi-schema/integers.json | 10 +++++
tests/qapi-schema/integers.out | 3 ++
19 files changed, 117 insertions(+), 35 deletions(-)
create mode 100644 tests/qapi-schema/integers-leading-zero.err
create mode 100644 tests/qapi-schema/integers-leading-zero.exit
create mode 100644 tests/qapi-schema/integers-leading-zero.json
create mode 100644 tests/qapi-schema/integers-leading-zero.out
create mode 100644 tests/qapi-schema/integers-overflow.err
create mode 100644 tests/qapi-schema/integers-overflow.exit
create mode 100644 tests/qapi-schema/integers-overflow.json
create mode 100644 tests/qapi-schema/integers-overflow.out
create mode 100644 tests/qapi-schema/integers.err
create mode 100644 tests/qapi-schema/integers.exit
create mode 100644 tests/qapi-schema/integers.json
create mode 100644 tests/qapi-schema/integers.out
--
1.9.2
- [Qemu-devel] [RFC PATCH v2 0/7] qapi: Specify default value for optional argument in schema json,
Fam Zheng <=
- [Qemu-devel] [RFC PATCH v2 1/7] qapi: Allow decimal values, Fam Zheng, 2014/05/20
- [Qemu-devel] [RFC PATCH v2 2/7] qapi: Allow true, false and null in schema json, Fam Zheng, 2014/05/20
- [Qemu-devel] [RFC PATCH v2 4/7] qapi: Add c_val(t, val) for int, Fam Zheng, 2014/05/20
- [Qemu-devel] [RFC PATCH v2 5/7] qapi: Add @arg property dictionary syntax, Fam Zheng, 2014/05/20
- [Qemu-devel] [RFC PATCH v2 6/7] qapi: Initialize argument value in generated code if has 'default', Fam Zheng, 2014/05/20
- [Qemu-devel] [RFC PATCH v2 3/7] tests: Add decimal test cases for qapi-schema, Fam Zheng, 2014/05/20
- [Qemu-devel] [RFC PATCH v2 7/7] qmp: Convert block-commit speed to arg property dict, Fam Zheng, 2014/05/20