Markus Armbruster <[email protected]> writes:
> From: Peter Krempa <[email protected]>
>
> Similarly to features for struct types introduce the feature flags also
> for commands. This will allow notifying management layers of fixes and
> compatible changes in the behaviour of a command which may not be
> detectable any other way.
>
> The changes were heavily inspired by commit 6a8c0b51025.
>
> Signed-off-by: Peter Krempa <[email protected]>
> Reviewed-by: Markus Armbruster <[email protected]>
> Signed-off-by: Markus Armbruster <[email protected]>
> ---
> docs/devel/qapi-code-gen.txt | 7 ++++---
> qapi/introspect.json | 6 +++++-
> scripts/qapi/commands.py | 3 ++-
> scripts/qapi/doc.py | 3 ++-
> scripts/qapi/expr.py | 35 +++++++++++++++++++---------------
> scripts/qapi/introspect.py | 7 ++++++-
> scripts/qapi/schema.py | 22 +++++++++++++++++----
> tests/qapi-schema/test-qapi.py | 3 ++-
> 8 files changed, 59 insertions(+), 27 deletions(-)
>
> diff --git a/docs/devel/qapi-code-gen.txt b/docs/devel/qapi-code-gen.txt
> index 64d9e4c6a9..637fa49977 100644
> --- a/docs/devel/qapi-code-gen.txt
> +++ b/docs/devel/qapi-code-gen.txt
> @@ -640,9 +640,10 @@ change in the QMP syntax (usually by allowing values or
> operations
> that previously resulted in an error). QMP clients may still need to
> know whether the extension is available.
>
> -For this purpose, a list of features can be specified for a struct type.
> -This is exposed to the client as a list of string, where each string
> -signals that this build of QEMU shows a certain behaviour.
> +For this purpose, a list of features can be specified for a command or
> +struct type. This is exposed to the client as a list of strings,
> +where each string signals that this build of QEMU shows a certain
> +behaviour.
>
> Each member of the 'features' array defines a feature. It can either
> be { 'name': STRING, '*if': COND }, or STRING, which is shorthand for
Squashing in missing syntax update:
diff --git a/docs/devel/qapi-code-gen.txt b/docs/devel/qapi-code-gen.txt
index 637fa49977..45c93a43cc 100644
--- a/docs/devel/qapi-code-gen.txt
+++ b/docs/devel/qapi-code-gen.txt
@@ -457,7 +457,8 @@ Syntax:
'*gen': false,
'*allow-oob': true,
'*allow-preconfig': true,
- '*if': COND }
+ '*if': COND,
+ '*features': FEATURES }
Member 'command' names the command.
[...]