* [PULL 00/10] QAPI patches patches for 2025-03-06
@ 2025-03-06 9:35 Markus Armbruster
2025-03-06 9:35 ` [PULL 01/10] docs/about/build-platforms: Correct minimum supported Python version Markus Armbruster
` (10 more replies)
0 siblings, 11 replies; 12+ messages in thread
From: Markus Armbruster @ 2025-03-06 9:35 UTC (permalink / raw)
To: qemu-devel; +Cc: stefanha
The following changes since commit e8a01102936286e012ed0f00bd7f3b7474d415c9:
Merge tag 'ui-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2025-03-05 21:58:23 +0800)
are available in the Git repository at:
https://repo.or.cz/qemu/armbru.git tags/pull-qapi-2025-03-06
for you to fetch changes up to 71ba2613ad470b6397868ae7333cd255e467be68:
docs/devel/qapi-code-gen: Discourage use of 'prefix' (2025-03-06 10:33:05 +0100)
----------------------------------------------------------------
QAPI patches patches for 2025-03-06
----------------------------------------------------------------
Markus Armbruster (10):
docs/about/build-platforms: Correct minimum supported Python version
qapi: Eliminate OrderedDict
qapi/introspect: Use @dataclass to simplify
qdev: Delete unused qdev_prop_enum
qdev: Change qdev_prop_pci_devfn member @name from "int32" to "str"
qdev: Rename PropertyInfo member @name to @type
qdev: Change values of PropertyInfo member @type to be QAPI types
qdev: Improve PropertyInfo member @description for enum properties
qdev: Improve a few more PropertyInfo @description members
docs/devel/qapi-code-gen: Discourage use of 'prefix'
docs/about/build-platforms.rst | 2 +-
docs/devel/qapi-code-gen.rst | 3 +-
include/hw/qdev-properties.h | 3 +-
backends/tpm/tpm_util.c | 2 +-
hw/block/xen-block.c | 4 +-
hw/core/qdev-properties-system.c | 80 +++++++++++++++++++---------------------
hw/core/qdev-properties.c | 44 ++++++++++------------
hw/misc/xlnx-versal-trng.c | 2 +-
hw/nvme/nguid.c | 2 +-
hw/nvram/xlnx-bbram.c | 2 +-
hw/nvram/xlnx-efuse.c | 2 +-
hw/pci/pci.c | 2 +-
hw/s390x/ccw-device.c | 6 +--
hw/s390x/css.c | 4 +-
hw/s390x/s390-pci-bus.c | 3 +-
hw/vfio/pci-quirks.c | 2 +-
target/riscv/cpu.c | 44 +++++++++++++++-------
target/sparc/cpu.c | 3 +-
hw/display/apple-gfx.m | 2 +-
scripts/qapi/introspect.py | 12 +++---
scripts/qapi/parser.py | 5 +--
scripts/qapi/schema.py | 11 +++---
tests/qapi-schema/test-qapi.py | 11 +-----
23 files changed, 123 insertions(+), 128 deletions(-)
--
2.48.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PULL 01/10] docs/about/build-platforms: Correct minimum supported Python version
2025-03-06 9:35 [PULL 00/10] QAPI patches patches for 2025-03-06 Markus Armbruster
@ 2025-03-06 9:35 ` Markus Armbruster
2025-03-06 9:35 ` [PULL 02/10] qapi: Eliminate OrderedDict Markus Armbruster
` (9 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2025-03-06 9:35 UTC (permalink / raw)
To: qemu-devel; +Cc: stefanha, Daniel P. Berrangé
Fixes: ca056f4499c2 (Python: Drop support for Python 3.7)
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20250227080757.3978333-2-armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
docs/about/build-platforms.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
index 482b09819c..1552b1a704 100644
--- a/docs/about/build-platforms.rst
+++ b/docs/about/build-platforms.rst
@@ -101,7 +101,7 @@ Python runtime
option of the ``configure`` script to point QEMU to a supported
version of the Python runtime.
- As of QEMU |version|, the minimum supported version of Python is 3.7.
+ As of QEMU |version|, the minimum supported version of Python is 3.8.
Python build dependencies
Some of QEMU's build dependencies are written in Python. Usually these
--
2.48.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PULL 02/10] qapi: Eliminate OrderedDict
2025-03-06 9:35 [PULL 00/10] QAPI patches patches for 2025-03-06 Markus Armbruster
2025-03-06 9:35 ` [PULL 01/10] docs/about/build-platforms: Correct minimum supported Python version Markus Armbruster
@ 2025-03-06 9:35 ` Markus Armbruster
2025-03-06 9:35 ` [PULL 03/10] qapi/introspect: Use @dataclass to simplify Markus Armbruster
` (8 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2025-03-06 9:35 UTC (permalink / raw)
To: qemu-devel; +Cc: stefanha, Daniel P. Berrangé
We use OrderedDict to ensure dictionary order is insertion order.
Plain dict does that since Python 3.6, but it wasn't guaranteed until
3.7. Since we have 3.7 now, replace OrderedDict by dict.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20250227080757.3978333-3-armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
scripts/qapi/parser.py | 5 ++---
scripts/qapi/schema.py | 11 +++++------
tests/qapi-schema/test-qapi.py | 11 +----------
3 files changed, 8 insertions(+), 19 deletions(-)
diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py
index adc85b5b39..64f0bb824a 100644
--- a/scripts/qapi/parser.py
+++ b/scripts/qapi/parser.py
@@ -14,7 +14,6 @@
# This work is licensed under the terms of the GNU GPL, version 2.
# See the COPYING file in the top-level directory.
-from collections import OrderedDict
import os
import re
from typing import (
@@ -154,7 +153,7 @@ def _parse(self) -> None:
"value of 'include' must be a string")
incl_fname = os.path.join(os.path.dirname(self._fname),
include)
- self._add_expr(OrderedDict({'include': incl_fname}), info)
+ self._add_expr({'include': incl_fname}, info)
exprs_include = self._include(include, info, incl_fname,
self._included)
if exprs_include:
@@ -355,7 +354,7 @@ def accept(self, skip_comment: bool = True) -> None:
raise QAPIParseError(self, "stray '%s'" % match.group(0))
def get_members(self) -> Dict[str, object]:
- expr: Dict[str, object] = OrderedDict()
+ expr: Dict[str, object] = {}
if self.tok == '}':
self.accept()
return expr
diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
index 7f70969c09..cbe3b5aa91 100644
--- a/scripts/qapi/schema.py
+++ b/scripts/qapi/schema.py
@@ -19,7 +19,6 @@
from __future__ import annotations
from abc import ABC, abstractmethod
-from collections import OrderedDict
import os
import re
from typing import (
@@ -557,7 +556,7 @@ def check(self, schema: QAPISchema) -> None:
super().check(schema)
assert self._checked and not self._check_complete
- seen = OrderedDict()
+ seen = {}
if self._base_name:
self.base = schema.resolve_type(self._base_name, self.info,
"'base'")
@@ -1141,10 +1140,10 @@ def __init__(self, fname: str):
self.docs = parser.docs
self._entity_list: List[QAPISchemaEntity] = []
self._entity_dict: Dict[str, QAPISchemaDefinition] = {}
- self._module_dict: Dict[str, QAPISchemaModule] = OrderedDict()
+ self._module_dict: Dict[str, QAPISchemaModule] = {}
# NB, values in the dict will identify the first encountered
# usage of a named feature only
- self._feature_dict: Dict[str, QAPISchemaFeature] = OrderedDict()
+ self._feature_dict: Dict[str, QAPISchemaFeature] = {}
# All schemas get the names defined in the QapiSpecialFeature enum.
# Rely on dict iteration order matching insertion order so that
@@ -1454,7 +1453,7 @@ def _def_command(self, expr: QAPIExpression) -> None:
ifcond = QAPISchemaIfCond(expr.get('if'))
info = expr.info
features = self._make_features(expr.get('features'), info)
- if isinstance(data, OrderedDict):
+ if isinstance(data, dict):
data = self._make_implicit_object_type(
name, info, ifcond,
'arg', self._make_members(data, info))
@@ -1473,7 +1472,7 @@ def _def_event(self, expr: QAPIExpression) -> None:
ifcond = QAPISchemaIfCond(expr.get('if'))
info = expr.info
features = self._make_features(expr.get('features'), info)
- if isinstance(data, OrderedDict):
+ if isinstance(data, dict):
data = self._make_implicit_object_type(
name, info, ifcond,
'arg', self._make_members(data, info))
diff --git a/tests/qapi-schema/test-qapi.py b/tests/qapi-schema/test-qapi.py
index 7e3f9f4aa1..8fe951c880 100755
--- a/tests/qapi-schema/test-qapi.py
+++ b/tests/qapi-schema/test-qapi.py
@@ -96,17 +96,8 @@ def _print_variants(variants):
@staticmethod
def _print_if(ifcond, indent=4):
- # TODO Drop this hack after replacing OrderedDict by plain
- # dict (requires Python 3.7)
- def _massage(subcond):
- if isinstance(subcond, str):
- return subcond
- if isinstance(subcond, list):
- return [_massage(val) for val in subcond]
- return {key: _massage(val) for key, val in subcond.items()}
-
if ifcond.is_present():
- print('%sif %s' % (' ' * indent, _massage(ifcond.ifcond)))
+ print('%sif %s' % (' ' * indent, ifcond.ifcond))
@classmethod
def _print_features(cls, features, indent=4):
--
2.48.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PULL 03/10] qapi/introspect: Use @dataclass to simplify
2025-03-06 9:35 [PULL 00/10] QAPI patches patches for 2025-03-06 Markus Armbruster
2025-03-06 9:35 ` [PULL 01/10] docs/about/build-platforms: Correct minimum supported Python version Markus Armbruster
2025-03-06 9:35 ` [PULL 02/10] qapi: Eliminate OrderedDict Markus Armbruster
@ 2025-03-06 9:35 ` Markus Armbruster
2025-03-06 9:35 ` [PULL 04/10] qdev: Delete unused qdev_prop_enum Markus Armbruster
` (7 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2025-03-06 9:35 UTC (permalink / raw)
To: qemu-devel; +Cc: stefanha, Daniel P. Berrangé
A TODO comment in class Annotated reminds us to simplify it once we
can use @dataclass, new in Python 3.7. We have that now, so do it.
There's a similar comment in scripts/qapi/source.py, but I can't
figure out how to use @dataclass there. Left for another day.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20250227080757.3978333-4-armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
scripts/qapi/introspect.py | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/scripts/qapi/introspect.py b/scripts/qapi/introspect.py
index 42e5185c7c..89ee5d5f17 100644
--- a/scripts/qapi/introspect.py
+++ b/scripts/qapi/introspect.py
@@ -11,6 +11,7 @@
See the COPYING file in the top-level directory.
"""
+from dataclasses import dataclass
from typing import (
Any,
Dict,
@@ -79,19 +80,16 @@
_ValueT = TypeVar('_ValueT', bound=_Value)
+@dataclass
class Annotated(Generic[_ValueT]):
"""
Annotated generally contains a SchemaInfo-like type (as a dict),
But it also used to wrap comments/ifconds around scalar leaf values,
for the benefit of features and enums.
"""
- # TODO: Remove after Python 3.7 adds @dataclass:
- # pylint: disable=too-few-public-methods
- def __init__(self, value: _ValueT, ifcond: QAPISchemaIfCond,
- comment: Optional[str] = None):
- self.value = value
- self.comment: Optional[str] = comment
- self.ifcond = ifcond
+ value: _ValueT
+ ifcond: QAPISchemaIfCond
+ comment: Optional[str] = None
def _tree_to_qlit(obj: JSONValue,
--
2.48.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PULL 04/10] qdev: Delete unused qdev_prop_enum
2025-03-06 9:35 [PULL 00/10] QAPI patches patches for 2025-03-06 Markus Armbruster
` (2 preceding siblings ...)
2025-03-06 9:35 ` [PULL 03/10] qapi/introspect: Use @dataclass to simplify Markus Armbruster
@ 2025-03-06 9:35 ` Markus Armbruster
2025-03-06 9:35 ` [PULL 05/10] qdev: Change qdev_prop_pci_devfn member @name from "int32" to "str" Markus Armbruster
` (6 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2025-03-06 9:35 UTC (permalink / raw)
To: qemu-devel; +Cc: stefanha, Daniel P. Berrangé
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20250227085601.4140852-2-armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
include/hw/qdev-properties.h | 1 -
hw/core/qdev-properties.c | 7 -------
2 files changed, 8 deletions(-)
diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h
index bf27375a3c..ae6ec2b990 100644
--- a/include/hw/qdev-properties.h
+++ b/include/hw/qdev-properties.h
@@ -49,7 +49,6 @@ struct PropertyInfo {
extern const PropertyInfo qdev_prop_bit;
extern const PropertyInfo qdev_prop_bit64;
extern const PropertyInfo qdev_prop_bool;
-extern const PropertyInfo qdev_prop_enum;
extern const PropertyInfo qdev_prop_uint8;
extern const PropertyInfo qdev_prop_uint16;
extern const PropertyInfo qdev_prop_uint32;
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index 0b52aad555..2540bd8880 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -122,13 +122,6 @@ void qdev_propinfo_set_default_value_enum(ObjectProperty *op,
qapi_enum_lookup(prop->info->enum_table, prop->defval.i));
}
-const PropertyInfo qdev_prop_enum = {
- .name = "enum",
- .get = qdev_propinfo_get_enum,
- .set = qdev_propinfo_set_enum,
- .set_default_value = qdev_propinfo_set_default_value_enum,
-};
-
/* Bit */
static uint32_t qdev_get_prop_mask(const Property *prop)
--
2.48.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PULL 05/10] qdev: Change qdev_prop_pci_devfn member @name from "int32" to "str"
2025-03-06 9:35 [PULL 00/10] QAPI patches patches for 2025-03-06 Markus Armbruster
` (3 preceding siblings ...)
2025-03-06 9:35 ` [PULL 04/10] qdev: Delete unused qdev_prop_enum Markus Armbruster
@ 2025-03-06 9:35 ` Markus Armbruster
2025-03-06 9:35 ` [PULL 06/10] qdev: Rename PropertyInfo member @name to @type Markus Armbruster
` (5 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2025-03-06 9:35 UTC (permalink / raw)
To: qemu-devel; +Cc: stefanha, Daniel P. Berrangé
Properties using qdev_prop_pci_devfn initially accepted a string of
the form "DEV.FN" or "DEV" where DEV and FN are in hexadecimal.
Member @name was "pci-devfn" initially.
Commit b403298adb5 (qdev: make the non-legacy pci address property
accept an integer) changed them to additionally accept integers: bits
3..7 are DEV, and bits 0..2 are FN. This is inaccessible externally
in device_add so far.
The commit also changed @name to "int32", and set member @legacy-name
to "pci-devfn". Together, this kept QMP command
device-list-properties unaffected: it used @name only when
@legacy_name was null.
Commit 07d09c58dbb (qmp: Print descriptions of object properties)
quietly dumbed that down to use @name always, and the next commit
18b91a3e082q (qdev: Drop legacy_name from qdev properties) dropped
member @legacy_name. This changed the value of @type reported by QMP
command device-list-properties from "pci-devfn" to "int32".
But "int32" is misleading: device_add actually wants QAPI type "str".
So change @name to that.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20250227085601.4140852-3-armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
hw/core/qdev-properties-system.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index a91551a5ee..f2b6136d0a 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -882,7 +882,7 @@ static int print_pci_devfn(Object *obj, const Property *prop, char *dest,
}
const PropertyInfo qdev_prop_pci_devfn = {
- .name = "int32",
+ .name = "str",
.description = "Slot and optional function number, example: 06.0 or 06",
.print = print_pci_devfn,
.get = qdev_propinfo_get_int32,
--
2.48.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PULL 06/10] qdev: Rename PropertyInfo member @name to @type
2025-03-06 9:35 [PULL 00/10] QAPI patches patches for 2025-03-06 Markus Armbruster
` (4 preceding siblings ...)
2025-03-06 9:35 ` [PULL 05/10] qdev: Change qdev_prop_pci_devfn member @name from "int32" to "str" Markus Armbruster
@ 2025-03-06 9:35 ` Markus Armbruster
2025-03-06 9:35 ` [PULL 07/10] qdev: Change values of PropertyInfo member @type to be QAPI types Markus Armbruster
` (4 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2025-03-06 9:35 UTC (permalink / raw)
To: qemu-devel; +Cc: stefanha, Daniel P. Berrangé
PropertyInfo member @name becomes ObjectProperty member @type, while
Property member @name becomes ObjectProperty member @name. Rename the
former.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20250227085601.4140852-4-armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
[One missed instance of @type fixed]
---
include/hw/qdev-properties.h | 2 +-
backends/tpm/tpm_util.c | 2 +-
hw/block/xen-block.c | 2 +-
hw/core/qdev-properties-system.c | 52 ++++++++++++++++----------------
hw/core/qdev-properties.c | 36 +++++++++++-----------
hw/misc/xlnx-versal-trng.c | 2 +-
hw/nvme/nguid.c | 2 +-
hw/nvram/xlnx-bbram.c | 2 +-
hw/nvram/xlnx-efuse.c | 2 +-
hw/pci/pci.c | 2 +-
hw/s390x/ccw-device.c | 2 +-
hw/s390x/css.c | 4 +--
hw/s390x/s390-pci-bus.c | 2 +-
hw/vfio/pci-quirks.c | 2 +-
target/riscv/cpu.c | 28 ++++++++---------
target/sparc/cpu.c | 2 +-
hw/display/apple-gfx.m | 2 +-
17 files changed, 73 insertions(+), 73 deletions(-)
diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h
index ae6ec2b990..15fcec5260 100644
--- a/include/hw/qdev-properties.h
+++ b/include/hw/qdev-properties.h
@@ -30,7 +30,7 @@ struct Property {
};
struct PropertyInfo {
- const char *name;
+ const char *type;
const char *description;
const QEnumLookup *enum_table;
bool realized_set_allowed; /* allow setting property on realized device */
diff --git a/backends/tpm/tpm_util.c b/backends/tpm/tpm_util.c
index 0a428eaf75..f07a2656ce 100644
--- a/backends/tpm/tpm_util.c
+++ b/backends/tpm/tpm_util.c
@@ -76,7 +76,7 @@ static void release_tpm(Object *obj, const char *name, void *opaque)
}
const PropertyInfo qdev_prop_tpm = {
- .name = "str",
+ .type = "str",
.description = "ID of a tpm to use as a backend",
.get = get_tpm,
.set = set_tpm,
diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
index 6c26052561..7c9d1b658c 100644
--- a/hw/block/xen-block.c
+++ b/hw/block/xen-block.c
@@ -661,7 +661,7 @@ invalid:
* https://xenbits.xen.org/docs/unstable/man/xen-vbd-interface.7.html
*/
static const PropertyInfo xen_block_prop_vdev = {
- .name = "str",
+ .type = "str",
.description = "Virtual Disk specifier: d*p*/xvd*/hd*/sd*",
.get = xen_block_get_vdev,
.set = xen_block_set_vdev,
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index f2b6136d0a..56fe5e25db 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -235,7 +235,7 @@ static void release_drive(Object *obj, const char *name, void *opaque)
}
const PropertyInfo qdev_prop_drive = {
- .name = "str",
+ .type = "str",
.description = "Node name or ID of a block device to use as a backend",
.realized_set_allowed = true,
.get = get_drive,
@@ -244,7 +244,7 @@ const PropertyInfo qdev_prop_drive = {
};
const PropertyInfo qdev_prop_drive_iothread = {
- .name = "str",
+ .type = "str",
.description = "Node name or ID of a block device to use as a backend",
.realized_set_allowed = true,
.get = get_drive,
@@ -312,7 +312,7 @@ static void release_chr(Object *obj, const char *name, void *opaque)
}
const PropertyInfo qdev_prop_chr = {
- .name = "str",
+ .type = "str",
.description = "ID of a chardev to use as a backend",
.get = get_chr,
.set = set_chr,
@@ -386,7 +386,7 @@ inval:
}
const PropertyInfo qdev_prop_macaddr = {
- .name = "str",
+ .type = "str",
.description = "Ethernet 6-byte MAC Address, example: 52:54:00:12:34:56",
.get = get_mac,
.set = set_mac,
@@ -474,7 +474,7 @@ out:
}
const PropertyInfo qdev_prop_netdev = {
- .name = "str",
+ .type = "str",
.description = "ID of a netdev to use as a backend",
.get = get_netdev,
.set = set_netdev,
@@ -512,7 +512,7 @@ static void set_audiodev(Object *obj, Visitor *v, const char* name,
}
const PropertyInfo qdev_prop_audiodev = {
- .name = "str",
+ .type = "str",
.description = "ID of an audiodev to use as a backend",
/* release done on shutdown */
.get = get_audiodev,
@@ -602,7 +602,7 @@ static void qdev_propinfo_set_losttickpolicy(Object *obj, Visitor *v,
QEMU_BUILD_BUG_ON(sizeof(LostTickPolicy) != sizeof(int));
const PropertyInfo qdev_prop_losttickpolicy = {
- .name = "LostTickPolicy",
+ .type = "LostTickPolicy",
.enum_table = &LostTickPolicy_lookup,
.get = qdev_propinfo_get_enum,
.set = qdev_propinfo_set_losttickpolicy,
@@ -628,7 +628,7 @@ static void set_blocksize(Object *obj, Visitor *v, const char *name,
}
const PropertyInfo qdev_prop_blocksize = {
- .name = "size",
+ .type = "size",
.description = "A power of two between " MIN_BLOCK_SIZE_STR
" and " MAX_BLOCK_SIZE_STR,
.get = qdev_propinfo_get_size32,
@@ -641,7 +641,7 @@ const PropertyInfo qdev_prop_blocksize = {
QEMU_BUILD_BUG_ON(sizeof(BlockdevOnError) != sizeof(int));
const PropertyInfo qdev_prop_blockdev_on_error = {
- .name = "BlockdevOnError",
+ .type = "BlockdevOnError",
.description = "Error handling policy, "
"report/ignore/enospc/stop/auto",
.enum_table = &BlockdevOnError_lookup,
@@ -655,7 +655,7 @@ const PropertyInfo qdev_prop_blockdev_on_error = {
QEMU_BUILD_BUG_ON(sizeof(BiosAtaTranslation) != sizeof(int));
const PropertyInfo qdev_prop_bios_chs_trans = {
- .name = "BiosAtaTranslation",
+ .type = "BiosAtaTranslation",
.description = "Logical CHS translation algorithm, "
"auto/none/lba/large/rechs",
.enum_table = &BiosAtaTranslation_lookup,
@@ -667,7 +667,7 @@ const PropertyInfo qdev_prop_bios_chs_trans = {
/* --- FDC default drive types */
const PropertyInfo qdev_prop_fdc_drive_type = {
- .name = "FdcDriveType",
+ .type = "FdcDriveType",
.description = "FDC drive type, "
"144/288/120/none/auto",
.enum_table = &FloppyDriveType_lookup,
@@ -679,7 +679,7 @@ const PropertyInfo qdev_prop_fdc_drive_type = {
/* --- MultiFDCompression --- */
const PropertyInfo qdev_prop_multifd_compression = {
- .name = "MultiFDCompression",
+ .type = "MultiFDCompression",
.description = "multifd_compression values, "
"none/zlib/zstd/qpl/uadk/qatzip",
.enum_table = &MultiFDCompression_lookup,
@@ -693,7 +693,7 @@ const PropertyInfo qdev_prop_multifd_compression = {
QEMU_BUILD_BUG_ON(sizeof(MigMode) != sizeof(int));
const PropertyInfo qdev_prop_mig_mode = {
- .name = "MigMode",
+ .type = "MigMode",
.description = "mig_mode values, "
"normal,cpr-reboot",
.enum_table = &MigMode_lookup,
@@ -707,7 +707,7 @@ const PropertyInfo qdev_prop_mig_mode = {
QEMU_BUILD_BUG_ON(sizeof(GranuleMode) != sizeof(int));
const PropertyInfo qdev_prop_granule_mode = {
- .name = "GranuleMode",
+ .type = "GranuleMode",
.description = "granule_mode values, "
"4k, 8k, 16k, 64k, host",
.enum_table = &GranuleMode_lookup,
@@ -717,7 +717,7 @@ const PropertyInfo qdev_prop_granule_mode = {
};
const PropertyInfo qdev_prop_zero_page_detection = {
- .name = "ZeroPageDetection",
+ .type = "ZeroPageDetection",
.description = "zero_page_detection values, "
"none,legacy,multifd",
.enum_table = &ZeroPageDetection_lookup,
@@ -801,7 +801,7 @@ out:
}
const PropertyInfo qdev_prop_reserved_region = {
- .name = "reserved_region",
+ .type = "reserved_region",
.description = "Reserved Region, example: 0xFEE00000:0xFEEFFFFF:0",
.get = get_reserved_region,
.set = set_reserved_region,
@@ -882,7 +882,7 @@ static int print_pci_devfn(Object *obj, const Property *prop, char *dest,
}
const PropertyInfo qdev_prop_pci_devfn = {
- .name = "str",
+ .type = "str",
.description = "Slot and optional function number, example: 06.0 or 06",
.print = print_pci_devfn,
.get = qdev_propinfo_get_int32,
@@ -988,7 +988,7 @@ inval:
}
const PropertyInfo qdev_prop_pci_host_devaddr = {
- .name = "str",
+ .type = "str",
.description = "Address (bus/device/function) of "
"the host device, example: 04:10.0",
.get = get_pci_host_devaddr,
@@ -998,7 +998,7 @@ const PropertyInfo qdev_prop_pci_host_devaddr = {
/* --- OffAutoPCIBAR off/auto/bar0/bar1/bar2/bar3/bar4/bar5 --- */
const PropertyInfo qdev_prop_off_auto_pcibar = {
- .name = "OffAutoPCIBAR",
+ .type = "OffAutoPCIBAR",
.description = "off/auto/bar0/bar1/bar2/bar3/bar4/bar5",
.enum_table = &OffAutoPCIBAR_lookup,
.get = qdev_propinfo_get_enum,
@@ -1080,7 +1080,7 @@ static void set_prop_pcielinkspeed(Object *obj, Visitor *v, const char *name,
}
const PropertyInfo qdev_prop_pcie_link_speed = {
- .name = "PCIELinkSpeed",
+ .type = "PCIELinkSpeed",
.description = "2_5/5/8/16/32/64",
.enum_table = &PCIELinkSpeed_lookup,
.get = get_prop_pcielinkspeed,
@@ -1168,7 +1168,7 @@ static void set_prop_pcielinkwidth(Object *obj, Visitor *v, const char *name,
}
const PropertyInfo qdev_prop_pcie_link_width = {
- .name = "PCIELinkWidth",
+ .type = "PCIELinkWidth",
.description = "1/2/4/8/12/16/32",
.enum_table = &PCIELinkWidth_lookup,
.get = get_prop_pcielinkwidth,
@@ -1218,7 +1218,7 @@ static void set_default_uuid_auto(ObjectProperty *op, const Property *prop)
}
const PropertyInfo qdev_prop_uuid = {
- .name = "str",
+ .type = "str",
.description = "UUID (aka GUID) or \"" UUID_VALUE_AUTO
"\" for random value (default)",
.get = get_uuid,
@@ -1231,7 +1231,7 @@ const PropertyInfo qdev_prop_uuid = {
QEMU_BUILD_BUG_ON(sizeof(S390CpuEntitlement) != sizeof(int));
const PropertyInfo qdev_prop_cpus390entitlement = {
- .name = "S390CpuEntitlement",
+ .type = "S390CpuEntitlement",
.description = "low/medium (default)/high",
.enum_table = &S390CpuEntitlement_lookup,
.get = qdev_propinfo_get_enum,
@@ -1276,7 +1276,7 @@ static void release_iothread_vq_mapping_list(Object *obj,
}
const PropertyInfo qdev_prop_iothread_vq_mapping_list = {
- .name = "IOThreadVirtQueueMappingList",
+ .type = "IOThreadVirtQueueMappingList",
.description = "IOThread virtqueue mapping list [{\"iothread\":\"<id>\", "
"\"vqs\":[1,2,3,...]},...]",
.get = get_iothread_vq_mapping_list,
@@ -1287,7 +1287,7 @@ const PropertyInfo qdev_prop_iothread_vq_mapping_list = {
/* --- Endian modes */
const PropertyInfo qdev_prop_endian_mode = {
- .name = "EndianMode",
+ .type = "EndianMode",
.description = "Endian mode, big/little/unspecified",
.enum_table = &EndianMode_lookup,
.get = qdev_propinfo_get_enum,
@@ -1296,7 +1296,7 @@ const PropertyInfo qdev_prop_endian_mode = {
};
const PropertyInfo qdev_prop_vmapple_virtio_blk_variant = {
- .name = "VMAppleVirtioBlkVariant",
+ .type = "VMAppleVirtioBlkVariant",
.description = "unspecified/root/aux",
.enum_table = &VMAppleVirtioBlkVariant_lookup,
.get = qdev_propinfo_get_enum,
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index 2540bd8880..5a801057db 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -169,7 +169,7 @@ static void set_default_value_bool(ObjectProperty *op, const Property *prop)
}
const PropertyInfo qdev_prop_bit = {
- .name = "bool",
+ .type = "bool",
.description = "on/off",
.get = prop_get_bit,
.set = prop_set_bit,
@@ -218,7 +218,7 @@ static void prop_set_bit64(Object *obj, Visitor *v, const char *name,
}
const PropertyInfo qdev_prop_bit64 = {
- .name = "bool",
+ .type = "bool",
.description = "on/off",
.get = prop_get_bit64,
.set = prop_set_bit64,
@@ -246,7 +246,7 @@ static void set_bool(Object *obj, Visitor *v, const char *name, void *opaque,
}
const PropertyInfo qdev_prop_bool = {
- .name = "bool",
+ .type = "bool",
.get = get_bool,
.set = set_bool,
.set_default_value = set_default_value_bool,
@@ -285,7 +285,7 @@ void qdev_propinfo_set_default_value_uint(ObjectProperty *op,
}
const PropertyInfo qdev_prop_uint8 = {
- .name = "uint8",
+ .type = "uint8",
.get = get_uint8,
.set = set_uint8,
.set_default_value = qdev_propinfo_set_default_value_uint,
@@ -312,7 +312,7 @@ static void set_uint16(Object *obj, Visitor *v, const char *name,
}
const PropertyInfo qdev_prop_uint16 = {
- .name = "uint16",
+ .type = "uint16",
.get = get_uint16,
.set = set_uint16,
.set_default_value = qdev_propinfo_set_default_value_uint,
@@ -357,14 +357,14 @@ static void set_int32(Object *obj, Visitor *v, const char *name, void *opaque,
}
const PropertyInfo qdev_prop_uint32 = {
- .name = "uint32",
+ .type = "uint32",
.get = get_uint32,
.set = set_uint32,
.set_default_value = qdev_propinfo_set_default_value_uint,
};
const PropertyInfo qdev_prop_int32 = {
- .name = "int32",
+ .type = "int32",
.get = qdev_propinfo_get_int32,
.set = set_int32,
.set_default_value = qdev_propinfo_set_default_value_int,
@@ -409,14 +409,14 @@ static void set_int64(Object *obj, Visitor *v, const char *name,
}
const PropertyInfo qdev_prop_uint64 = {
- .name = "uint64",
+ .type = "uint64",
.get = get_uint64,
.set = set_uint64,
.set_default_value = qdev_propinfo_set_default_value_uint,
};
const PropertyInfo qdev_prop_int64 = {
- .name = "int64",
+ .type = "int64",
.get = get_int64,
.set = set_int64,
.set_default_value = qdev_propinfo_set_default_value_int,
@@ -436,7 +436,7 @@ static void set_uint64_checkmask(Object *obj, Visitor *v, const char *name,
}
const PropertyInfo qdev_prop_uint64_checkmask = {
- .name = "uint64",
+ .type = "uint64",
.get = get_uint64,
.set = set_uint64_checkmask,
};
@@ -478,7 +478,7 @@ static void set_string(Object *obj, Visitor *v, const char *name,
}
const PropertyInfo qdev_prop_string = {
- .name = "str",
+ .type = "str",
.release = release_string,
.get = get_string,
.set = set_string,
@@ -487,7 +487,7 @@ const PropertyInfo qdev_prop_string = {
/* --- on/off/auto --- */
const PropertyInfo qdev_prop_on_off_auto = {
- .name = "OnOffAuto",
+ .type = "OnOffAuto",
.description = "on/off/auto",
.enum_table = &OnOffAuto_lookup,
.get = qdev_propinfo_get_enum,
@@ -530,7 +530,7 @@ static void set_size32(Object *obj, Visitor *v, const char *name, void *opaque,
}
const PropertyInfo qdev_prop_size32 = {
- .name = "size",
+ .type = "size",
.get = qdev_propinfo_get_size32,
.set = set_size32,
.set_default_value = qdev_propinfo_set_default_value_uint,
@@ -733,7 +733,7 @@ static void default_prop_array(ObjectProperty *op, const Property *prop)
}
const PropertyInfo qdev_prop_array = {
- .name = "list",
+ .type = "list",
.get = get_prop_array,
.set = set_prop_array,
.release = release_prop_array,
@@ -937,7 +937,7 @@ static void set_size(Object *obj, Visitor *v, const char *name, void *opaque,
}
const PropertyInfo qdev_prop_size = {
- .name = "size",
+ .type = "size",
.get = get_size,
.set = set_size,
.set_default_value = qdev_propinfo_set_default_value_uint,
@@ -955,7 +955,7 @@ static ObjectProperty *create_link_property(ObjectClass *oc, const char *name,
}
const PropertyInfo qdev_prop_link = {
- .name = "link",
+ .type = "link",
.create = create_link_property,
};
@@ -966,7 +966,7 @@ void qdev_property_add_static(DeviceState *dev, const Property *prop)
assert(!prop->info->create);
- op = object_property_add(obj, prop->name, prop->info->name,
+ op = object_property_add(obj, prop->name, prop->info->type,
field_prop_getter(prop->info),
field_prop_setter(prop->info),
prop->info->release,
@@ -993,7 +993,7 @@ static void qdev_class_add_property(DeviceClass *klass, const char *name,
op = prop->info->create(oc, name, prop);
} else {
op = object_class_property_add(oc,
- name, prop->info->name,
+ name, prop->info->type,
field_prop_getter(prop->info),
field_prop_setter(prop->info),
prop->info->release,
diff --git a/hw/misc/xlnx-versal-trng.c b/hw/misc/xlnx-versal-trng.c
index dbd9b58a4e..9a44a90d1e 100644
--- a/hw/misc/xlnx-versal-trng.c
+++ b/hw/misc/xlnx-versal-trng.c
@@ -652,7 +652,7 @@ static void trng_prop_fault_event_set(Object *obj, Visitor *v,
}
static const PropertyInfo trng_prop_fault_events = {
- .name = "uint32:bits",
+ .type = "uint32:bits",
.description = "Set to trigger TRNG fault events",
.set = trng_prop_fault_event_set,
.realized_set_allowed = true,
diff --git a/hw/nvme/nguid.c b/hw/nvme/nguid.c
index be63cb75e1..4cd6fad6ac 100644
--- a/hw/nvme/nguid.c
+++ b/hw/nvme/nguid.c
@@ -179,7 +179,7 @@ static void set_nguid(Object *obj, Visitor *v, const char *name, void *opaque,
}
const PropertyInfo qdev_prop_nguid = {
- .name = "str",
+ .type = "str",
.description =
"NGUID or \"" NGUID_VALUE_AUTO "\" for random value",
.get = get_nguid,
diff --git a/hw/nvram/xlnx-bbram.c b/hw/nvram/xlnx-bbram.c
index 0e8552ce65..14cc9073c7 100644
--- a/hw/nvram/xlnx-bbram.c
+++ b/hw/nvram/xlnx-bbram.c
@@ -502,7 +502,7 @@ static void bbram_prop_release_drive(Object *obj, const char *name,
}
static const PropertyInfo bbram_prop_drive = {
- .name = "str",
+ .type = "str",
.description = "Node name or ID of a block device to use as BBRAM backend",
.realized_set_allowed = true,
.get = bbram_prop_get_drive,
diff --git a/hw/nvram/xlnx-efuse.c b/hw/nvram/xlnx-efuse.c
index e2e8311a48..29e7dd539e 100644
--- a/hw/nvram/xlnx-efuse.c
+++ b/hw/nvram/xlnx-efuse.c
@@ -257,7 +257,7 @@ static void efuse_prop_release_drive(Object *obj, const char *name,
}
static const PropertyInfo efuse_prop_drive = {
- .name = "str",
+ .type = "str",
.description = "Node name or ID of a block device to use as eFUSE backend",
.realized_set_allowed = true,
.get = efuse_prop_get_drive,
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 1d42847ef0..e3c2866830 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -77,7 +77,7 @@ static void prop_pci_busnr_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_pci_busnr = {
- .name = "busnr",
+ .type = "busnr",
.get = prop_pci_busnr_get,
};
diff --git a/hw/s390x/ccw-device.c b/hw/s390x/ccw-device.c
index 494faebb5a..5aa6ff8eac 100644
--- a/hw/s390x/ccw-device.c
+++ b/hw/s390x/ccw-device.c
@@ -74,7 +74,7 @@ static void ccw_device_set_loadparm(Object *obj, Visitor *v,
}
const PropertyInfo ccw_loadparm = {
- .name = "ccw_loadparm",
+ .type = "ccw_loadparm",
.description = "Up to 8 chars in set of [A-Za-z0-9. ] to pass"
" to the guest loader/kernel",
.get = ccw_device_get_loadparm,
diff --git a/hw/s390x/css.c b/hw/s390x/css.c
index 4e27b2961b..738800c98d 100644
--- a/hw/s390x/css.c
+++ b/hw/s390x/css.c
@@ -2523,7 +2523,7 @@ out:
}
const PropertyInfo css_devid_propinfo = {
- .name = "str",
+ .type = "str",
.description = "Identifier of an I/O device in the channel "
"subsystem, example: fe.1.23ab",
.get = get_css_devid,
@@ -2531,7 +2531,7 @@ const PropertyInfo css_devid_propinfo = {
};
const PropertyInfo css_devid_ro_propinfo = {
- .name = "str",
+ .type = "str",
.description = "Read-only identifier of an I/O device in the channel "
"subsystem, example: fe.1.23ab",
.get = get_css_devid,
diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
index 913d72cc74..7f340965c0 100644
--- a/hw/s390x/s390-pci-bus.c
+++ b/hw/s390x/s390-pci-bus.c
@@ -1495,7 +1495,7 @@ static void s390_pci_set_fid(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo s390_pci_fid_propinfo = {
- .name = "zpci_fid",
+ .type = "zpci_fid",
.get = s390_pci_get_fid,
.set = s390_pci_set_fid,
};
diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c
index fbe43b0a79..ba97d59791 100644
--- a/hw/vfio/pci-quirks.c
+++ b/hw/vfio/pci-quirks.c
@@ -1480,7 +1480,7 @@ static void set_nv_gpudirect_clique_id(Object *obj, Visitor *v,
}
const PropertyInfo qdev_prop_nv_gpudirect_clique = {
- .name = "uint4",
+ .type = "uint4",
.description = "NVIDIA GPUDirect Clique ID (0 - 15)",
.get = get_nv_gpudirect_clique_id,
.set = set_nv_gpudirect_clique_id,
diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
index 47424fd5e2..1ac34e398d 100644
--- a/target/riscv/cpu.c
+++ b/target/riscv/cpu.c
@@ -1816,7 +1816,7 @@ static void prop_pmu_num_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_pmu_num = {
- .name = "pmu-num",
+ .type = "pmu-num",
.get = prop_pmu_num_get,
.set = prop_pmu_num_set,
};
@@ -1857,7 +1857,7 @@ static void prop_pmu_mask_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_pmu_mask = {
- .name = "pmu-mask",
+ .type = "pmu-mask",
.get = prop_pmu_mask_get,
.set = prop_pmu_mask_set,
};
@@ -1888,7 +1888,7 @@ static void prop_mmu_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_mmu = {
- .name = "mmu",
+ .type = "mmu",
.get = prop_mmu_get,
.set = prop_mmu_set,
};
@@ -1919,7 +1919,7 @@ static void prop_pmp_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_pmp = {
- .name = "pmp",
+ .type = "pmp",
.get = prop_pmp_get,
.set = prop_pmp_set,
};
@@ -1993,7 +1993,7 @@ static void prop_priv_spec_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_priv_spec = {
- .name = "priv_spec",
+ .type = "priv_spec",
.get = prop_priv_spec_get,
.set = prop_priv_spec_set,
};
@@ -2024,7 +2024,7 @@ static void prop_vext_spec_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_vext_spec = {
- .name = "vext_spec",
+ .type = "vext_spec",
.get = prop_vext_spec_get,
.set = prop_vext_spec_set,
};
@@ -2065,7 +2065,7 @@ static void prop_vlen_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_vlen = {
- .name = "vlen",
+ .type = "vlen",
.get = prop_vlen_get,
.set = prop_vlen_set,
};
@@ -2105,7 +2105,7 @@ static void prop_elen_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_elen = {
- .name = "elen",
+ .type = "elen",
.get = prop_elen_get,
.set = prop_elen_set,
};
@@ -2140,7 +2140,7 @@ static void prop_cbom_blksize_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_cbom_blksize = {
- .name = "cbom_blocksize",
+ .type = "cbom_blocksize",
.get = prop_cbom_blksize_get,
.set = prop_cbom_blksize_set,
};
@@ -2175,7 +2175,7 @@ static void prop_cbop_blksize_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_cbop_blksize = {
- .name = "cbop_blocksize",
+ .type = "cbop_blocksize",
.get = prop_cbop_blksize_get,
.set = prop_cbop_blksize_set,
};
@@ -2210,7 +2210,7 @@ static void prop_cboz_blksize_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_cboz_blksize = {
- .name = "cboz_blocksize",
+ .type = "cboz_blocksize",
.get = prop_cboz_blksize_get,
.set = prop_cboz_blksize_set,
};
@@ -2245,7 +2245,7 @@ static void prop_mvendorid_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_mvendorid = {
- .name = "mvendorid",
+ .type = "mvendorid",
.get = prop_mvendorid_get,
.set = prop_mvendorid_set,
};
@@ -2280,7 +2280,7 @@ static void prop_mimpid_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_mimpid = {
- .name = "mimpid",
+ .type = "mimpid",
.get = prop_mimpid_get,
.set = prop_mimpid_set,
};
@@ -2336,7 +2336,7 @@ static void prop_marchid_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_marchid = {
- .name = "marchid",
+ .type = "marchid",
.get = prop_marchid_get,
.set = prop_marchid_set,
};
diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c
index fbd38ec334..c8ea35be76 100644
--- a/target/sparc/cpu.c
+++ b/target/sparc/cpu.c
@@ -938,7 +938,7 @@ static void sparc_set_nwindows(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo qdev_prop_nwindows = {
- .name = "int",
+ .type = "int",
.get = sparc_get_nwindows,
.set = sparc_set_nwindows,
};
diff --git a/hw/display/apple-gfx.m b/hw/display/apple-gfx.m
index 1554f3b801..c4323574e1 100644
--- a/hw/display/apple-gfx.m
+++ b/hw/display/apple-gfx.m
@@ -871,7 +871,7 @@ static void apple_gfx_set_display_mode(Object *obj, Visitor *v,
}
const PropertyInfo qdev_prop_apple_gfx_display_mode = {
- .name = "display_mode",
+ .type = "display_mode",
.description =
"Display mode in pixels and Hertz, as <width>x<height>@<refresh-rate> "
"Example: 3840x2160@60",
--
2.48.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PULL 07/10] qdev: Change values of PropertyInfo member @type to be QAPI types
2025-03-06 9:35 [PULL 00/10] QAPI patches patches for 2025-03-06 Markus Armbruster
` (5 preceding siblings ...)
2025-03-06 9:35 ` [PULL 06/10] qdev: Rename PropertyInfo member @name to @type Markus Armbruster
@ 2025-03-06 9:35 ` Markus Armbruster
2025-03-06 9:35 ` [PULL 08/10] qdev: Improve PropertyInfo member @description for enum properties Markus Armbruster
` (3 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2025-03-06 9:35 UTC (permalink / raw)
To: qemu-devel; +Cc: stefanha, Daniel P. Berrangé
PropertyInfo member @type is externally visible via QMP
device-list-properties and qom-list-properies.
Its meaning is not documented at its definition.
It gets passed as @type argument to object_property_add() and
object_class_property_add(). This argument's documentation isn't of
much help, either:
* @type: the type name of the property. This namespace is pretty loosely
* defined. Sub namespaces are constructed by using a prefix and then
* to angle brackets. For instance, the type 'virtio-net-pci' in the
* 'link' namespace would be 'link<virtio-net-pci>'.
The two QMP commands document it as
# @type: the type of the property. This will typically come in one of
# four forms:
#
# 1) A primitive type such as 'u8', 'u16', 'bool', 'str', or
# 'double'. These types are mapped to the appropriate JSON
# type.
#
# 2) A child type in the form 'child<subtype>' where subtype is a
# qdev device type name. Child properties create the
# composition tree.
#
# 3) A link type in the form 'link<subtype>' where subtype is a
# qdev device type name. Link properties form the device model
# graph.
"Typically come in one of four forms" followed by three items inspires
the level of trust that is appropriate here.
Clean up a bunch of funnies:
* qdev_prop_fdc_drive_type.type is "FdcDriveType". Its .enum_table
refers to QAPI type "FloppyDriveType". So use that.
* qdev_prop_reserved_region is "reserved_region". Its only user is an
array property called "reserved-regions". Its .set() visits str.
So change @type to "str".
* trng_prop_fault_event_set.type is "uint32:bits". Its .set() visits
uint32, so change @type to "uint32". If we believe mentioning it's
actually bits is useful, the proper place would be .description.
* ccw_loadparm.type is "ccw_loadparm". It's users are properties
called "loadparm". Its .set() visits str. So change @type to
"str".
* qdev_prop_nv_gpudirect_clique.type is "uint4". Its set() visits
uint8, so change @type to "uint8". If we believe mentioning the
range is useful, the proper place would be .description.
* s390_pci_fid_propinfo.type is "zpci_fid". Its .set() visits uint32.
So change type to that, and move the "zpci_fid" to .description.
This is admittedly a lousy description, but it's still an
improvement; for instance, output of -device zpci,help changes from
fid=<zpci_fid>
to
fid=<uint32> - zpci_fid
* Similarly for a raft of PropertyInfo in target/riscv/cpu.c.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20250227085601.4140852-5-armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
[Commit message typo fixed]
---
hw/core/qdev-properties-system.c | 4 +--
hw/misc/xlnx-versal-trng.c | 2 +-
hw/s390x/ccw-device.c | 2 +-
hw/s390x/s390-pci-bus.c | 3 ++-
hw/vfio/pci-quirks.c | 2 +-
target/riscv/cpu.c | 44 ++++++++++++++++++++++----------
6 files changed, 37 insertions(+), 20 deletions(-)
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index 56fe5e25db..0ac1485d54 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -667,7 +667,7 @@ const PropertyInfo qdev_prop_bios_chs_trans = {
/* --- FDC default drive types */
const PropertyInfo qdev_prop_fdc_drive_type = {
- .type = "FdcDriveType",
+ .type = "FloppyDriveType",
.description = "FDC drive type, "
"144/288/120/none/auto",
.enum_table = &FloppyDriveType_lookup,
@@ -801,7 +801,7 @@ out:
}
const PropertyInfo qdev_prop_reserved_region = {
- .type = "reserved_region",
+ .type = "str",
.description = "Reserved Region, example: 0xFEE00000:0xFEEFFFFF:0",
.get = get_reserved_region,
.set = set_reserved_region,
diff --git a/hw/misc/xlnx-versal-trng.c b/hw/misc/xlnx-versal-trng.c
index 9a44a90d1e..ba93f93cab 100644
--- a/hw/misc/xlnx-versal-trng.c
+++ b/hw/misc/xlnx-versal-trng.c
@@ -652,7 +652,7 @@ static void trng_prop_fault_event_set(Object *obj, Visitor *v,
}
static const PropertyInfo trng_prop_fault_events = {
- .type = "uint32:bits",
+ .type = "uint32",
.description = "Set to trigger TRNG fault events",
.set = trng_prop_fault_event_set,
.realized_set_allowed = true,
diff --git a/hw/s390x/ccw-device.c b/hw/s390x/ccw-device.c
index 5aa6ff8eac..1d4b8ea35c 100644
--- a/hw/s390x/ccw-device.c
+++ b/hw/s390x/ccw-device.c
@@ -74,7 +74,7 @@ static void ccw_device_set_loadparm(Object *obj, Visitor *v,
}
const PropertyInfo ccw_loadparm = {
- .type = "ccw_loadparm",
+ .type = "str",
.description = "Up to 8 chars in set of [A-Za-z0-9. ] to pass"
" to the guest loader/kernel",
.get = ccw_device_get_loadparm,
diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
index 7f340965c0..04cdd4a11b 100644
--- a/hw/s390x/s390-pci-bus.c
+++ b/hw/s390x/s390-pci-bus.c
@@ -1495,7 +1495,8 @@ static void s390_pci_set_fid(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo s390_pci_fid_propinfo = {
- .type = "zpci_fid",
+ .type = "uint32",
+ .description = "zpci_fid",
.get = s390_pci_get_fid,
.set = s390_pci_set_fid,
};
diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c
index ba97d59791..c53591fe2b 100644
--- a/hw/vfio/pci-quirks.c
+++ b/hw/vfio/pci-quirks.c
@@ -1480,7 +1480,7 @@ static void set_nv_gpudirect_clique_id(Object *obj, Visitor *v,
}
const PropertyInfo qdev_prop_nv_gpudirect_clique = {
- .type = "uint4",
+ .type = "uint8",
.description = "NVIDIA GPUDirect Clique ID (0 - 15)",
.get = get_nv_gpudirect_clique_id,
.set = set_nv_gpudirect_clique_id,
diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
index 1ac34e398d..045c9c78ee 100644
--- a/target/riscv/cpu.c
+++ b/target/riscv/cpu.c
@@ -1816,7 +1816,8 @@ static void prop_pmu_num_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_pmu_num = {
- .type = "pmu-num",
+ .type = "int8",
+ .description = "pmu-num",
.get = prop_pmu_num_get,
.set = prop_pmu_num_set,
};
@@ -1857,7 +1858,8 @@ static void prop_pmu_mask_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_pmu_mask = {
- .type = "pmu-mask",
+ .type = "int8",
+ .description = "pmu-mask",
.get = prop_pmu_mask_get,
.set = prop_pmu_mask_set,
};
@@ -1888,7 +1890,8 @@ static void prop_mmu_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_mmu = {
- .type = "mmu",
+ .type = "bool",
+ .description = "mmu",
.get = prop_mmu_get,
.set = prop_mmu_set,
};
@@ -1919,7 +1922,8 @@ static void prop_pmp_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_pmp = {
- .type = "pmp",
+ .type = "bool",
+ .description = "pmp",
.get = prop_pmp_get,
.set = prop_pmp_set,
};
@@ -1993,7 +1997,9 @@ static void prop_priv_spec_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_priv_spec = {
- .type = "priv_spec",
+ .type = "str",
+ .description = "priv_spec",
+ /* FIXME enum? */
.get = prop_priv_spec_get,
.set = prop_priv_spec_set,
};
@@ -2024,7 +2030,9 @@ static void prop_vext_spec_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_vext_spec = {
- .type = "vext_spec",
+ .type = "str",
+ .description = "vext_spec",
+ /* FIXME enum? */
.get = prop_vext_spec_get,
.set = prop_vext_spec_set,
};
@@ -2065,7 +2073,8 @@ static void prop_vlen_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_vlen = {
- .type = "vlen",
+ .type = "uint16",
+ .description = "vlen",
.get = prop_vlen_get,
.set = prop_vlen_set,
};
@@ -2105,7 +2114,8 @@ static void prop_elen_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_elen = {
- .type = "elen",
+ .type = "uint16",
+ .description = "elen",
.get = prop_elen_get,
.set = prop_elen_set,
};
@@ -2140,7 +2150,8 @@ static void prop_cbom_blksize_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_cbom_blksize = {
- .type = "cbom_blocksize",
+ .type = "uint16",
+ .description = "cbom_blocksize",
.get = prop_cbom_blksize_get,
.set = prop_cbom_blksize_set,
};
@@ -2175,7 +2186,8 @@ static void prop_cbop_blksize_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_cbop_blksize = {
- .type = "cbop_blocksize",
+ .type = "uint16",
+ .description = "cbop_blocksize",
.get = prop_cbop_blksize_get,
.set = prop_cbop_blksize_set,
};
@@ -2210,7 +2222,8 @@ static void prop_cboz_blksize_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_cboz_blksize = {
- .type = "cboz_blocksize",
+ .type = "uint16",
+ .description = "cboz_blocksize",
.get = prop_cboz_blksize_get,
.set = prop_cboz_blksize_set,
};
@@ -2245,7 +2258,8 @@ static void prop_mvendorid_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_mvendorid = {
- .type = "mvendorid",
+ .type = "uint32",
+ .description = "mvendorid",
.get = prop_mvendorid_get,
.set = prop_mvendorid_set,
};
@@ -2280,7 +2294,8 @@ static void prop_mimpid_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_mimpid = {
- .type = "mimpid",
+ .type = "uint64",
+ .description = "mimpid",
.get = prop_mimpid_get,
.set = prop_mimpid_set,
};
@@ -2336,7 +2351,8 @@ static void prop_marchid_get(Object *obj, Visitor *v, const char *name,
}
static const PropertyInfo prop_marchid = {
- .type = "marchid",
+ .type = "uint64",
+ .description = "marchid",
.get = prop_marchid_get,
.set = prop_marchid_set,
};
--
2.48.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PULL 08/10] qdev: Improve PropertyInfo member @description for enum properties
2025-03-06 9:35 [PULL 00/10] QAPI patches patches for 2025-03-06 Markus Armbruster
` (6 preceding siblings ...)
2025-03-06 9:35 ` [PULL 07/10] qdev: Change values of PropertyInfo member @type to be QAPI types Markus Armbruster
@ 2025-03-06 9:35 ` Markus Armbruster
2025-03-06 9:36 ` [PULL 09/10] qdev: Improve a few more PropertyInfo @description members Markus Armbruster
` (2 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2025-03-06 9:35 UTC (permalink / raw)
To: qemu-devel; +Cc: stefanha, Daniel P. Berrangé
Consistently use format "DESCRIPTION (VALUE/VALUE...)".
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20250227085601.4140852-6-armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
hw/core/qdev-properties-system.c | 26 +++++++++++---------------
1 file changed, 11 insertions(+), 15 deletions(-)
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index 0ac1485d54..6d7dcf368d 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -603,6 +603,7 @@ QEMU_BUILD_BUG_ON(sizeof(LostTickPolicy) != sizeof(int));
const PropertyInfo qdev_prop_losttickpolicy = {
.type = "LostTickPolicy",
+ .description = "Policy for handling lost ticks (discard/delay/slew)",
.enum_table = &LostTickPolicy_lookup,
.get = qdev_propinfo_get_enum,
.set = qdev_propinfo_set_losttickpolicy,
@@ -642,8 +643,7 @@ QEMU_BUILD_BUG_ON(sizeof(BlockdevOnError) != sizeof(int));
const PropertyInfo qdev_prop_blockdev_on_error = {
.type = "BlockdevOnError",
- .description = "Error handling policy, "
- "report/ignore/enospc/stop/auto",
+ .description = "Error handling policy (report/ignore/enospc/stop/auto)",
.enum_table = &BlockdevOnError_lookup,
.get = qdev_propinfo_get_enum,
.set = qdev_propinfo_set_enum,
@@ -656,8 +656,8 @@ QEMU_BUILD_BUG_ON(sizeof(BiosAtaTranslation) != sizeof(int));
const PropertyInfo qdev_prop_bios_chs_trans = {
.type = "BiosAtaTranslation",
- .description = "Logical CHS translation algorithm, "
- "auto/none/lba/large/rechs",
+ .description = "Logical CHS translation algorithm "
+ " (auto/none/lba/large/rechs)",
.enum_table = &BiosAtaTranslation_lookup,
.get = qdev_propinfo_get_enum,
.set = qdev_propinfo_set_enum,
@@ -668,8 +668,7 @@ const PropertyInfo qdev_prop_bios_chs_trans = {
const PropertyInfo qdev_prop_fdc_drive_type = {
.type = "FloppyDriveType",
- .description = "FDC drive type, "
- "144/288/120/none/auto",
+ .description = "Floppy drive type (144/288/120/none/auto)",
.enum_table = &FloppyDriveType_lookup,
.get = qdev_propinfo_get_enum,
.set = qdev_propinfo_set_enum,
@@ -680,8 +679,8 @@ const PropertyInfo qdev_prop_fdc_drive_type = {
const PropertyInfo qdev_prop_multifd_compression = {
.type = "MultiFDCompression",
- .description = "multifd_compression values, "
- "none/zlib/zstd/qpl/uadk/qatzip",
+ .description = "multifd_compression values"
+ " (none/zlib/zstd/qpl/uadk/qatzip)",
.enum_table = &MultiFDCompression_lookup,
.get = qdev_propinfo_get_enum,
.set = qdev_propinfo_set_enum,
@@ -694,8 +693,7 @@ QEMU_BUILD_BUG_ON(sizeof(MigMode) != sizeof(int));
const PropertyInfo qdev_prop_mig_mode = {
.type = "MigMode",
- .description = "mig_mode values, "
- "normal,cpr-reboot",
+ .description = "Migration mode (normal/cpr-reboot)",
.enum_table = &MigMode_lookup,
.get = qdev_propinfo_get_enum,
.set = qdev_propinfo_set_enum,
@@ -708,8 +706,7 @@ QEMU_BUILD_BUG_ON(sizeof(GranuleMode) != sizeof(int));
const PropertyInfo qdev_prop_granule_mode = {
.type = "GranuleMode",
- .description = "granule_mode values, "
- "4k, 8k, 16k, 64k, host",
+ .description = "Granule page size (4k/8k/16k/64k/host)",
.enum_table = &GranuleMode_lookup,
.get = qdev_propinfo_get_enum,
.set = qdev_propinfo_set_enum,
@@ -718,8 +715,7 @@ const PropertyInfo qdev_prop_granule_mode = {
const PropertyInfo qdev_prop_zero_page_detection = {
.type = "ZeroPageDetection",
- .description = "zero_page_detection values, "
- "none,legacy,multifd",
+ .description = "Zero page detection (none/legacy/multifd)",
.enum_table = &ZeroPageDetection_lookup,
.get = qdev_propinfo_get_enum,
.set = qdev_propinfo_set_enum,
@@ -1232,7 +1228,7 @@ QEMU_BUILD_BUG_ON(sizeof(S390CpuEntitlement) != sizeof(int));
const PropertyInfo qdev_prop_cpus390entitlement = {
.type = "S390CpuEntitlement",
- .description = "low/medium (default)/high",
+ .description = "auto/low/medium/high (default medium)",
.enum_table = &S390CpuEntitlement_lookup,
.get = qdev_propinfo_get_enum,
.set = qdev_propinfo_set_enum,
--
2.48.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PULL 09/10] qdev: Improve a few more PropertyInfo @description members
2025-03-06 9:35 [PULL 00/10] QAPI patches patches for 2025-03-06 Markus Armbruster
` (7 preceding siblings ...)
2025-03-06 9:35 ` [PULL 08/10] qdev: Improve PropertyInfo member @description for enum properties Markus Armbruster
@ 2025-03-06 9:36 ` Markus Armbruster
2025-03-06 9:36 ` [PULL 10/10] docs/devel/qapi-code-gen: Discourage use of 'prefix' Markus Armbruster
2025-03-07 7:18 ` [PULL 00/10] QAPI patches patches for 2025-03-06 Stefan Hajnoczi
10 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2025-03-06 9:36 UTC (permalink / raw)
To: qemu-devel; +Cc: stefanha, Daniel P. Berrangé
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20250227085601.4140852-7-armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
hw/block/xen-block.c | 2 +-
hw/core/qdev-properties-system.c | 2 +-
hw/core/qdev-properties.c | 1 +
hw/s390x/ccw-device.c | 4 ++--
target/sparc/cpu.c | 1 +
5 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
index 7c9d1b658c..2098286b5f 100644
--- a/hw/block/xen-block.c
+++ b/hw/block/xen-block.c
@@ -662,7 +662,7 @@ invalid:
*/
static const PropertyInfo xen_block_prop_vdev = {
.type = "str",
- .description = "Virtual Disk specifier: d*p*/xvd*/hd*/sd*",
+ .description = "Virtual Disk specifier (d*p*/xvd*/hd*/sd*)",
.get = xen_block_get_vdev,
.set = xen_block_set_vdev,
};
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index 6d7dcf368d..a7dde73c29 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -985,7 +985,7 @@ inval:
const PropertyInfo qdev_prop_pci_host_devaddr = {
.type = "str",
- .description = "Address (bus/device/function) of "
+ .description = "Address (bus:device.function) of "
"the host device, example: 04:10.0",
.get = get_pci_host_devaddr,
.set = set_pci_host_devaddr,
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index 5a801057db..c04df3b337 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -247,6 +247,7 @@ static void set_bool(Object *obj, Visitor *v, const char *name, void *opaque,
const PropertyInfo qdev_prop_bool = {
.type = "bool",
+ .description = "on/off",
.get = get_bool,
.set = set_bool,
.set_default_value = set_default_value_bool,
diff --git a/hw/s390x/ccw-device.c b/hw/s390x/ccw-device.c
index 1d4b8ea35c..1ea9934f6c 100644
--- a/hw/s390x/ccw-device.c
+++ b/hw/s390x/ccw-device.c
@@ -75,8 +75,8 @@ static void ccw_device_set_loadparm(Object *obj, Visitor *v,
const PropertyInfo ccw_loadparm = {
.type = "str",
- .description = "Up to 8 chars in set of [A-Za-z0-9. ] to pass"
- " to the guest loader/kernel",
+ .description = "Up to 8 chars in set of [A-Za-z0-9. ] to select"
+ " a guest kernel",
.get = ccw_device_get_loadparm,
.set = ccw_device_set_loadparm,
};
diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c
index c8ea35be76..f0613f8a8e 100644
--- a/target/sparc/cpu.c
+++ b/target/sparc/cpu.c
@@ -939,6 +939,7 @@ static void sparc_set_nwindows(Object *obj, Visitor *v, const char *name,
static const PropertyInfo qdev_prop_nwindows = {
.type = "int",
+ .description = "Number of register windows",
.get = sparc_get_nwindows,
.set = sparc_set_nwindows,
};
--
2.48.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PULL 10/10] docs/devel/qapi-code-gen: Discourage use of 'prefix'
2025-03-06 9:35 [PULL 00/10] QAPI patches patches for 2025-03-06 Markus Armbruster
` (8 preceding siblings ...)
2025-03-06 9:36 ` [PULL 09/10] qdev: Improve a few more PropertyInfo @description members Markus Armbruster
@ 2025-03-06 9:36 ` Markus Armbruster
2025-03-07 7:18 ` [PULL 00/10] QAPI patches patches for 2025-03-06 Stefan Hajnoczi
10 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2025-03-06 9:36 UTC (permalink / raw)
To: qemu-devel; +Cc: stefanha, Daniel P. Berrangé
QAPI's 'prefix' feature can make the connection between enumeration
type and its constants less than obvious. It's best used with
restraint. Commit 7bbadc60b5..64f5e9db77 eliminated most uses.
Discourage new ones.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20250228134335.132278-1-armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
docs/devel/qapi-code-gen.rst | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst
index 9fa94251b0..f9cfe8721f 100644
--- a/docs/devel/qapi-code-gen.rst
+++ b/docs/devel/qapi-code-gen.rst
@@ -229,7 +229,8 @@ These are of the form PREFIX_NAME, where PREFIX is derived from the
enumeration type's name, and NAME from the value's name. For the
example above, the generator maps 'MyEnum' to MY_ENUM and 'value1' to
VALUE1, resulting in the enumeration constant MY_ENUM_VALUE1. The
-optional 'prefix' member overrides PREFIX.
+optional 'prefix' member overrides PREFIX. This is rarely necessary,
+and should be used with restraint.
The generated C enumeration constants have values 0, 1, ..., N-1 (in
QAPI schema order), where N is the number of values. There is an
--
2.48.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PULL 00/10] QAPI patches patches for 2025-03-06
2025-03-06 9:35 [PULL 00/10] QAPI patches patches for 2025-03-06 Markus Armbruster
` (9 preceding siblings ...)
2025-03-06 9:36 ` [PULL 10/10] docs/devel/qapi-code-gen: Discourage use of 'prefix' Markus Armbruster
@ 2025-03-07 7:18 ` Stefan Hajnoczi
10 siblings, 0 replies; 12+ messages in thread
From: Stefan Hajnoczi @ 2025-03-07 7:18 UTC (permalink / raw)
To: Markus Armbruster; +Cc: qemu-devel, stefanha
[-- Attachment #1: Type: text/plain, Size: 116 bytes --]
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/10.0 for any user-visible changes.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2025-03-07 7:29 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-06 9:35 [PULL 00/10] QAPI patches patches for 2025-03-06 Markus Armbruster
2025-03-06 9:35 ` [PULL 01/10] docs/about/build-platforms: Correct minimum supported Python version Markus Armbruster
2025-03-06 9:35 ` [PULL 02/10] qapi: Eliminate OrderedDict Markus Armbruster
2025-03-06 9:35 ` [PULL 03/10] qapi/introspect: Use @dataclass to simplify Markus Armbruster
2025-03-06 9:35 ` [PULL 04/10] qdev: Delete unused qdev_prop_enum Markus Armbruster
2025-03-06 9:35 ` [PULL 05/10] qdev: Change qdev_prop_pci_devfn member @name from "int32" to "str" Markus Armbruster
2025-03-06 9:35 ` [PULL 06/10] qdev: Rename PropertyInfo member @name to @type Markus Armbruster
2025-03-06 9:35 ` [PULL 07/10] qdev: Change values of PropertyInfo member @type to be QAPI types Markus Armbruster
2025-03-06 9:35 ` [PULL 08/10] qdev: Improve PropertyInfo member @description for enum properties Markus Armbruster
2025-03-06 9:36 ` [PULL 09/10] qdev: Improve a few more PropertyInfo @description members Markus Armbruster
2025-03-06 9:36 ` [PULL 10/10] docs/devel/qapi-code-gen: Discourage use of 'prefix' Markus Armbruster
2025-03-07 7:18 ` [PULL 00/10] QAPI patches patches for 2025-03-06 Stefan Hajnoczi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).