qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]