[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 5/6] qapi: apply schema prefix to QAPI feature enum constants
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 5/6] qapi: apply schema prefix to QAPI feature enum constants |
Date: |
Thu, 08 Aug 2024 13:48:47 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Daniel P. Berrangé <berrange@redhat.com> writes:
> This allows us to include multiple QAPI schemas in the same file.
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit prepends an optional prefix to generated uses of
QAPI_FEATURE_{DEPRECATED,UNSTABLE}.
It touches neither the handwritten definition in include/qapi/util.h,
nor the handwritten uses in qapi/qapi-util.c and
qapi/qobject-output-visitor.c.
Code generated with a prefix will not compile, unless it uses no
features. No biggie, because:
The next commit replaces the handwritten definition (no prefix) by a
generated one (with optional prefix).
Now the handwritten code compiles only because it includes an enum
definition generated without a prefix, namely the main schema's.
Note that the handwritten code continues to work even when you use it
together with some other schema, but only because all the generated
enums assign the same numeric value to the enumeration constants
_DEPRECATED and _UNSTABLE.
While that seems fairly unlikely to break accidentally, it still feels
unnecessarily dirty.
What about generating an enum like this:
typedef enum {
QAPI_FEATURE_DEPRECATED = QAPI_DEPRECATED,
QAPI_FEATURE_UNSTABLE = QAPI_UNSTABLE,
...
} QapiFeature;
where QAPI_DEPRECATED and QAPI_UNSTABLE are defined in qapi/util.h, like
they are before this series.
We can discuss renaming them to QAPI_SPECIAL_FEATURE_DEPRECATED and
_UNSTABLE if you like.
Code referring to special features, i.e. all references before this
series, use the definitions from qapi/util.h.
Code referring to arbitrary, possibly non-special features, i.e. the
references new in this series, use the generated definitions from
qapi/qapi-features.h.
Thoughts?
- [PATCH 4/6] qapi: cope with feature names containing a '-', (continued)
- [PATCH 4/6] qapi: cope with feature names containing a '-', Daniel P . Berrangé, 2024/08/01
- [PATCH 5/6] qapi: apply schema prefix to QAPI feature enum constants, Daniel P . Berrangé, 2024/08/01
- Re: [PATCH 5/6] qapi: apply schema prefix to QAPI feature enum constants, Markus Armbruster, 2024/08/05
- Re: [PATCH 5/6] qapi: apply schema prefix to QAPI feature enum constants, Daniel P . Berrangé, 2024/08/05
- Re: [PATCH 5/6] qapi: apply schema prefix to QAPI feature enum constants, Markus Armbruster, 2024/08/05
- Re: [PATCH 5/6] qapi: apply schema prefix to QAPI feature enum constants, Daniel P . Berrangé, 2024/08/05
- Re: [PATCH 5/6] qapi: apply schema prefix to QAPI feature enum constants, Markus Armbruster, 2024/08/05
- Re: [PATCH 5/6] qapi: apply schema prefix to QAPI feature enum constants, Markus Armbruster, 2024/08/05
- Complications due to having multiple QAPI schemas (was: [PATCH 5/6] qapi: apply schema prefix to QAPI feature enum constants), Markus Armbruster, 2024/08/06
Re: [PATCH 5/6] qapi: apply schema prefix to QAPI feature enum constants,
Markus Armbruster <=
[PATCH 6/6] qapi: expose all schema features to code, Daniel P . Berrangé, 2024/08/01