mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00
qapi: Tools for sets of special feature flags in generated code
New enum QapiSpecialFeature enumerates the special feature flags. New helper gen_special_features() returns code to represent a collection of special feature flags as a bitset. The next few commits will put them to use. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-Id: <20211028102520.747396-5-armbru@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
This commit is contained in:
parent
9bafe07bc8
commit
c67db1ed16
3 changed files with 15 additions and 0 deletions
|
@ -18,6 +18,7 @@ from typing import (
|
|||
Dict,
|
||||
Iterator,
|
||||
Optional,
|
||||
Sequence,
|
||||
Tuple,
|
||||
)
|
||||
|
||||
|
@ -29,6 +30,7 @@ from .common import (
|
|||
mcgen,
|
||||
)
|
||||
from .schema import (
|
||||
QAPISchemaFeature,
|
||||
QAPISchemaIfCond,
|
||||
QAPISchemaModule,
|
||||
QAPISchemaObjectType,
|
||||
|
@ -37,6 +39,12 @@ from .schema import (
|
|||
from .source import QAPISourceInfo
|
||||
|
||||
|
||||
def gen_special_features(features: Sequence[QAPISchemaFeature]) -> str:
|
||||
special_features = [f"1u << QAPI_{feat.name.upper()}"
|
||||
for feat in features if feat.is_special()]
|
||||
return ' | '.join(special_features) or '0'
|
||||
|
||||
|
||||
class QAPIGen:
|
||||
def __init__(self, fname: str):
|
||||
self.fname = fname
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue