From: "Marc-André Lureau" <marcandre.lureau@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Markus Armbruster" <armbru@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Michael Roth" <michael.roth@amd.com>,
"Pierrick Bouvier" <pierrick.bouvier@oss.qualcomm.com>,
"Philippe Mathieu-Daudé" <philmd@mailo.com>,
"Philippe Mathieu-Daudé" <philmd@oss.qualcomm.com>,
"Alistair Francis" <alistair.francis@wdc.com>,
"Alistair Francis" <alistair.francis@wdc.com>,
"Tao Tang" <tangtao1634@phytium.com.cn>,
"Keith Busch" <kbusch@kernel.org>,
"Klaus Jensen" <its@irrelevant.dk>,
"Jesper Devantier" <foss@defmacro.it>,
"Eric Blake" <eblake@redhat.com>,
qemu-block@nongnu.org
Subject: [PATCH v3 54/74] spdm-socket: convert SpdmTransportType to QAPI enum
Date: Tue, 18 Aug 2026 15:11:21 +0400 [thread overview]
Message-ID: <20260818-qom-qapi-v3-54-24b8bbbe3d86@redhat.com> (raw)
In-Reply-To: <20260818-qom-qapi-v3-0-24b8bbbe3d86@redhat.com>
Replace the hand-written SpdmTransportType C enum and QEnumLookup
table with a QAPI schema definition in qapi/sockets.json. Update
all users in hw/nvme/ctrl.c to use the QAPI-generated enum constants
(SPDM_TRANSPORT_TYPE_* instead of SPDM_SOCKET_TRANSPORT_TYPE_*).
Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
backends/spdm-socket.c | 23 +++++++----------------
hw/nvme/ctrl.c | 26 +++++++++++++-------------
include/system/spdm-socket.h | 28 +++++++++++-----------------
qapi/sockets.json | 20 ++++++++++++++++++++
4 files changed, 51 insertions(+), 46 deletions(-)
diff --git a/backends/spdm-socket.c b/backends/spdm-socket.c
index b625a65d28f7..826efc276dcd 100644
--- a/backends/spdm-socket.c
+++ b/backends/spdm-socket.c
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include "system/spdm-socket.h"
#include "qapi/error.h"
+#include "qapi/qapi-types-sockets.h"
#include "hw/core/qdev-properties.h"
#include "hw/core/qdev-properties-system.h"
#include "hw/core/qdev-prop-internal.h"
@@ -205,7 +206,7 @@ static bool spdm_socket_command_valid(uint32_t command)
}
}
-uint32_t spdm_socket_receive(const int socket, uint32_t transport_type,
+uint32_t spdm_socket_receive(const int socket, SpdmTransportType transport_type,
void *rsp, uint32_t rsp_len)
{
uint32_t command;
@@ -223,13 +224,14 @@ uint32_t spdm_socket_receive(const int socket, uint32_t transport_type,
}
bool spdm_socket_send(const int socket, uint32_t socket_cmd,
- uint32_t transport_type, void *req, uint32_t req_len)
+ SpdmTransportType transport_type, void *req,
+ uint32_t req_len)
{
return send_platform_data(socket, transport_type, socket_cmd, req,
req_len);
}
-uint32_t spdm_socket_rsp(const int socket, uint32_t transport_type,
+uint32_t spdm_socket_rsp(const int socket, SpdmTransportType transport_type,
void *req, uint32_t req_len,
void *rsp, uint32_t rsp_len)
{
@@ -244,27 +246,16 @@ uint32_t spdm_socket_rsp(const int socket, uint32_t transport_type,
return spdm_socket_receive(socket, transport_type, rsp, rsp_len);
}
-void spdm_socket_close(const int socket, uint32_t transport_type)
+void spdm_socket_close(const int socket, SpdmTransportType transport_type)
{
send_platform_data(socket, transport_type,
SPDM_SOCKET_COMMAND_SHUTDOWN, NULL, 0);
}
-const QEnumLookup SpdmTransport_lookup = {
- .array = (const char *const[]) {
- [SPDM_SOCKET_TRANSPORT_TYPE_UNSPEC] = "unspecified",
- [SPDM_SOCKET_TRANSPORT_TYPE_MCTP] = "mctp",
- [SPDM_SOCKET_TRANSPORT_TYPE_PCI_DOE] = "doe",
- [SPDM_SOCKET_TRANSPORT_TYPE_SCSI] = "scsi",
- [SPDM_SOCKET_TRANSPORT_TYPE_NVME] = "nvme",
- },
- .size = SPDM_SOCKET_TRANSPORT_TYPE_MAX
-};
-
const PropertyInfo qdev_prop_spdm_trans = {
.type = "SpdmTransportType",
.description = "Spdm Transport, doe/nvme/mctp/scsi/unspecified",
- .enum_table = &SpdmTransport_lookup,
+ .enum_table = &SpdmTransportType_lookup,
.get = qdev_propinfo_get_enum,
.set = qdev_propinfo_set_enum,
.set_default_value = qdev_propinfo_set_default_value_enum,
diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c
index e4549aa9e534..a72189e0a63c 100644
--- a/hw/nvme/ctrl.c
+++ b/hw/nvme/ctrl.c
@@ -7490,14 +7490,14 @@ static uint16_t nvme_sec_prot_spdm_send(NvmeCtrl *n, NvmeRequest *req)
}
spdm_res = spdm_socket_send(n->spdm_socket, SPDM_SOCKET_STORAGE_CMD_IF_SEND,
- SPDM_SOCKET_TRANSPORT_TYPE_NVME, sec_buf,
+ SPDM_TRANSPORT_TYPE_NVME, sec_buf,
transport_transfer_len);
if (!spdm_res) {
return NVME_DATA_TRAS_ERROR | NVME_DNR;
}
/* The responder shall ack with message status */
- recvd = spdm_socket_receive(n->spdm_socket, SPDM_SOCKET_TRANSPORT_TYPE_NVME,
+ recvd = spdm_socket_receive(n->spdm_socket, SPDM_TRANSPORT_TYPE_NVME,
&nvme_cmd_status,
SPDM_SOCKET_MAX_MSG_STATUS_LEN);
@@ -7553,14 +7553,14 @@ static uint16_t nvme_sec_prot_spdm_receive(NvmeCtrl *n, NvmeRequest *req)
/* Forward if_recv to the SPDM Server with SPSP0 */
spdm_res = spdm_socket_send(n->spdm_socket, SPDM_SOCKET_STORAGE_CMD_IF_RECV,
- SPDM_SOCKET_TRANSPORT_TYPE_NVME,
+ SPDM_TRANSPORT_TYPE_NVME,
&hdr, sizeof(hdr));
if (!spdm_res) {
return NVME_DATA_TRAS_ERROR | NVME_DNR;
}
/* The responder shall ack with message status */
- recvd = spdm_socket_receive(n->spdm_socket, SPDM_SOCKET_TRANSPORT_TYPE_NVME,
+ recvd = spdm_socket_receive(n->spdm_socket, SPDM_TRANSPORT_TYPE_NVME,
&nvme_cmd_status,
SPDM_SOCKET_MAX_MSG_STATUS_LEN);
if (recvd < SPDM_SOCKET_MAX_MSG_STATUS_LEN) {
@@ -7580,7 +7580,7 @@ static uint16_t nvme_sec_prot_spdm_receive(NvmeCtrl *n, NvmeRequest *req)
}
recvd = spdm_socket_receive(n->spdm_socket,
- SPDM_SOCKET_TRANSPORT_TYPE_NVME,
+ SPDM_TRANSPORT_TYPE_NVME,
rsp_spdm_buf, alloc_len);
if (!recvd) {
return NVME_DATA_TRAS_ERROR | NVME_DNR;
@@ -9098,7 +9098,7 @@ static bool pcie_doe_spdm_rsp(DOECap *doe_cap)
uint32_t rsp_len = SPDM_SOCKET_MAX_MESSAGE_BUFFER_SIZE;
uint32_t recvd = spdm_socket_rsp(doe_cap->spdm_socket,
- SPDM_SOCKET_TRANSPORT_TYPE_PCI_DOE,
+ SPDM_TRANSPORT_TYPE_DOE,
req, req_len, rsp, rsp_len);
doe_cap->read_mbox_len += DIV_ROUND_UP(recvd, 4);
@@ -9200,7 +9200,7 @@ static bool nvme_init_pci(NvmeCtrl *n, PCIDevice *pci_dev, Error **errp)
uint16_t doe_offset = PCI_CONFIG_SPACE_SIZE;
switch (pci_dev->spdm_trans) {
- case SPDM_SOCKET_TRANSPORT_TYPE_PCI_DOE:
+ case SPDM_TRANSPORT_TYPE_DOE:
if (n->params.sriov_max_vfs) {
doe_offset += PCI_ARI_SIZEOF;
}
@@ -9215,7 +9215,7 @@ static bool nvme_init_pci(NvmeCtrl *n, PCIDevice *pci_dev, Error **errp)
return false;
}
break;
- case SPDM_SOCKET_TRANSPORT_TYPE_NVME:
+ case SPDM_TRANSPORT_TYPE_NVME:
n->spdm_socket = spdm_socket_connect(pci_dev->spdm_port, errp);
if (n->spdm_socket < 0) {
return false;
@@ -9717,10 +9717,10 @@ static void nvme_exit(PCIDevice *pci_dev)
assert(!(pci_dev->doe_spdm.spdm_socket > 0 && n->spdm_socket >= 0));
if (pci_dev->doe_spdm.spdm_socket > 0) {
spdm_socket_close(pci_dev->doe_spdm.spdm_socket,
- SPDM_SOCKET_TRANSPORT_TYPE_PCI_DOE);
+ SPDM_TRANSPORT_TYPE_DOE);
} else if (n->spdm_socket >= 0) {
spdm_socket_close(pci_dev->doe_spdm.spdm_socket,
- SPDM_SOCKET_TRANSPORT_TYPE_NVME);
+ SPDM_TRANSPORT_TYPE_NVME);
}
if (n->pmr.dev) {
@@ -9779,7 +9779,7 @@ static const Property nvme_props[] = {
DEFINE_PROP_UINT16("mqes", NvmeCtrl, params.mqes, 0x7ff),
DEFINE_PROP_UINT16("spdm_port", PCIDevice, spdm_port, 0),
DEFINE_PROP_SPDM_TRANS("spdm_trans", PCIDevice, spdm_trans,
- SPDM_SOCKET_TRANSPORT_TYPE_PCI_DOE),
+ SPDM_TRANSPORT_TYPE_DOE),
DEFINE_PROP_BOOL("ctratt.mem", NvmeCtrl, params.ctratt.mem, false),
DEFINE_PROP_BOOL("atomic.dn", NvmeCtrl, params.atomic_dn, 0),
DEFINE_PROP_UINT16("atomic.awun", NvmeCtrl, params.atomic_awun, 0),
@@ -9857,7 +9857,7 @@ static void nvme_pci_write_config(PCIDevice *dev, uint32_t address,
/* DOE is only initialised if SPDM over DOE is used */
if (pcie_find_capability(dev, PCI_EXT_CAP_ID_DOE) &&
- dev->spdm_trans == SPDM_SOCKET_TRANSPORT_TYPE_PCI_DOE) {
+ dev->spdm_trans == SPDM_TRANSPORT_TYPE_DOE) {
pcie_doe_write_config(&dev->doe_spdm, address, val, len);
}
pci_default_write_config(dev, address, val, len);
@@ -9870,7 +9870,7 @@ static uint32_t nvme_pci_read_config(PCIDevice *dev, uint32_t address, int len)
uint32_t val;
if (dev->spdm_port && pcie_find_capability(dev, PCI_EXT_CAP_ID_DOE) &&
- (dev->spdm_trans == SPDM_SOCKET_TRANSPORT_TYPE_PCI_DOE)) {
+ (dev->spdm_trans == SPDM_TRANSPORT_TYPE_DOE)) {
if (pcie_doe_read_config(&dev->doe_spdm, address, len, &val)) {
return val;
}
diff --git a/include/system/spdm-socket.h b/include/system/spdm-socket.h
index 00cb0e97f36e..b5a68d3d60b6 100644
--- a/include/system/spdm-socket.h
+++ b/include/system/spdm-socket.h
@@ -23,6 +23,8 @@
#ifndef SPDM_REQUESTER_H
#define SPDM_REQUESTER_H
+#include "qapi/qapi-types-sockets.h"
+
/**
* spdm_socket_connect: connect to an external SPDM socket
* @port: port to connect to
@@ -37,7 +39,7 @@ int spdm_socket_connect(uint16_t port, Error **errp);
/**
* spdm_socket_rsp: send and receive a message to a SPDM server
* @socket: socket returned from spdm_socket_connect()
- * @transport_type: SPDM_SOCKET_TRANSPORT_TYPE_* macro
+ * @transport_type: the SPDM transport type
* @req: request buffer
* @req_len: request buffer length
* @rsp: response buffer
@@ -46,14 +48,14 @@ int spdm_socket_connect(uint16_t port, Error **errp);
* Send platform data to a SPDM server on socket and then receive
* a response.
*/
-uint32_t spdm_socket_rsp(const int socket, uint32_t transport_type,
+uint32_t spdm_socket_rsp(const int socket, SpdmTransportType transport_type,
void *req, uint32_t req_len,
void *rsp, uint32_t rsp_len);
/**
* spdm_socket_rsp: Receive a message from an SPDM server
* @socket: socket returned from spdm_socket_connect()
- * @transport_type: SPDM_SOCKET_TRANSPORT_TYPE_* macro
+ * @transport_type: the SPDM transport type
* @rsp: response buffer
* @rsp_len: response buffer length
*
@@ -61,14 +63,14 @@ uint32_t spdm_socket_rsp(const int socket, uint32_t transport_type,
* received or 0 on failure. This can be used to receive a message from the SPDM
* server without sending anything first.
*/
-uint32_t spdm_socket_receive(const int socket, uint32_t transport_type,
+uint32_t spdm_socket_receive(const int socket, SpdmTransportType transport_type,
void *rsp, uint32_t rsp_len);
/**
* spdm_socket_rsp: Sends a message to an SPDM server
* @socket: socket returned from spdm_socket_connect()
* @socket_cmd: socket command type (normal/if_recv/if_send etc...)
- * @transport_type: SPDM_SOCKET_TRANSPORT_TYPE_* macro
+ * @transport_type: the SPDM transport type
* @req: request buffer
* @req_len: request buffer length
*
@@ -77,16 +79,17 @@ uint32_t spdm_socket_receive(const int socket, uint32_t transport_type,
* spdm_socket_receive().
*/
bool spdm_socket_send(const int socket, uint32_t socket_cmd,
- uint32_t transport_type, void *req, uint32_t req_len);
+ SpdmTransportType transport_type, void *req,
+ uint32_t req_len);
/**
* spdm_socket_close: send a shutdown command to the server
* @socket: socket returned from spdm_socket_connect()
- * @transport_type: SPDM_SOCKET_TRANSPORT_TYPE_* macro
+ * @transport_type: the SPDM transport type
*
* This will issue a shutdown command to the server.
*/
-void spdm_socket_close(const int socket, uint32_t transport_type);
+void spdm_socket_close(const int socket, SpdmTransportType transport_type);
/*
* Defines the transport encoding for SPDM, this information shall be passed
@@ -115,15 +118,6 @@ typedef struct {
#define SPDM_SOCKET_MAX_MESSAGE_BUFFER_SIZE 0x1200
#define SPDM_SOCKET_MAX_MSG_STATUS_LEN 0x02
-typedef enum SpdmTransportType {
- SPDM_SOCKET_TRANSPORT_TYPE_UNSPEC = 0,
- SPDM_SOCKET_TRANSPORT_TYPE_MCTP,
- SPDM_SOCKET_TRANSPORT_TYPE_PCI_DOE,
- SPDM_SOCKET_TRANSPORT_TYPE_SCSI,
- SPDM_SOCKET_TRANSPORT_TYPE_NVME,
- SPDM_SOCKET_TRANSPORT_TYPE_MAX
-} SpdmTransportType;
-
extern const PropertyInfo qdev_prop_spdm_trans;
#define DEFINE_PROP_SPDM_TRANS(_name, _state, _field, _default) \
diff --git a/qapi/sockets.json b/qapi/sockets.json
index 473be2ac58a2..a9a8006c2274 100644
--- a/qapi/sockets.json
+++ b/qapi/sockets.json
@@ -252,3 +252,23 @@
'unix': 'UnixSocketAddress',
'vsock': 'VsockSocketAddress',
'fd': 'FdSocketAddress' } }
+
+##
+# @SpdmTransportType:
+#
+# SPDM transport type
+#
+# @unspecified: Unspecified transport
+#
+# @mctp: MCTP transport
+#
+# @doe: PCI Data Object Exchange (DOE) transport
+#
+# @scsi: SCSI transport
+#
+# @nvme: NVMe transport
+#
+# Since: 11.2
+##
+{ 'enum': 'SpdmTransportType',
+ 'data': [ 'unspecified', 'mctp', 'doe', 'scsi', 'nvme' ] }
--
2.55.0.543.g5ebe2ebe4ea8
next prev parent reply other threads:[~2026-08-18 11:25 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-18 11:10 [PATCH v3 00/74] qom/qdev: associate properties with QAPI schema types Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 01/74] qapi: add QAPITypeInfo struct definition Marc-André Lureau
2026-08-21 13:40 ` Markus Armbruster
2026-08-21 15:33 ` Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 02/74] qapi/gen: fix _module_basename for multi-dash 'what' parameters Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 03/74] qapi: factor out QAPISchemaUsedTypes from introspect visitor Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 04/74] qapi: register all introspectable types, not just QMP-reachable ones Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 05/74] qapi: add type-infos generator Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 06/74] meson: add qapi-type-infos-*.c/h to build Marc-André Lureau
2026-08-18 11:41 ` Kostiantyn Kostiuk
2026-08-18 11:10 ` [PATCH v3 07/74] qom: add qapi_type field to ObjectProperty Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 08/74] qapi/qom: add qapi-type field to ObjectPropertyInfo Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 09/74] qom/qmp: populate qapi-type in QMP handlers Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 10/74] qom: add object_property_set_default_enum() Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 11/74] qom: add object_{class_}property_add_qapi Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 12/74] qom: add object_{class_}property_add_qapi_enum Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 13/74] tests: update check-qom-proplist for QAPI-aware property registration Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 14/74] qom: convert enum properties to QAPI-aware registration Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 15/74] qom: remove old enum property registration API Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 16/74] qom: convert struct properties to QAPI-aware registration Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 17/74] x86: convert OnOffAuto " Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 18/74] microvm: " Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 19/74] pc: convert OnOffAuto vmport property " Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 20/74] arm/virt: convert OnOffAuto acpi " Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 21/74] riscv/virt: convert OnOffAuto properties " Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 22/74] loongarch/virt: " Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 23/74] hostmem-file: convert OnOffAuto rom property " Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 24/74] sev: convert OnOffAuto legacy-vm-type " Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 25/74] whpx: convert OnOffAuto hyperv " Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 26/74] whpx: convert OnOffAuto arch properties " Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 27/74] accel/kvm: convert OnOffSplit property " Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 28/74] whpx: " Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 29/74] ppc/spapr-caps: convert to QAPI-aware property registration Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 30/74] system/memory: fix "priority" property typename Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 31/74] backends/hostmem: fix property typenames Marc-André Lureau
2026-08-18 11:10 ` [PATCH v3 32/74] backends/hostmem-file: fix "align" property typename Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 33/74] accel/tcg: fix "tb-size" " Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 34/74] block/throttle-groups: fix throttle properties typename Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 35/74] event-loop-base: fix property typenames Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 36/74] iothread: fix poll properties typename Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 37/74] util/thread-context: fix property typenames Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 38/74] target/i386: fix CPUID version properties typename Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 39/74] ppc/pnv: fix phb-id and chip-id " Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 40/74] backends/hostmem-memfd: fix "hugetlbsize" property typename Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 41/74] hw/acpi: fix "node" properties typename Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 42/74] net/colo-compare: fix compare_timeout setter visitor type Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 43/74] net/colo-compare: fix max_queue_size " Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 44/74] hw/misc/xlnx-versal-trng: add missing getter for fips-fault-events Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 45/74] qom: convert scalar properties to QAPI-aware registration Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 46/74] i386/cpu: convert strList property " Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 47/74] accel/hvf: convert OnOffSplit " Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 48/74] i386/x86: convert SgxEPCList " Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 49/74] virtio-balloon: convert guest-stats property to QAPI type Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 50/74] qom: replace object_property_add_tm with StructTm " Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 51/74] hw/nvdimm: convert UUID property to QAPI-aware registration Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 52/74] hw/s390-virtio-ccw: convert loadparm " Marc-André Lureau
2026-08-18 11:11 ` [PATCH v3 53/74] hw/ppc/spapr_drc: convert fdt " Marc-André Lureau
2026-08-18 11:11 ` Marc-André Lureau [this message]
2026-08-18 11:11 ` [PATCH v3 55/74] hw/gpio/pca955x: use QAPI enums for led and pin properties Marc-André Lureau
2026-08-18 12:36 ` [PATCH v3 56/74] include: add QEMU_REPEAT helper macro Marc-André Lureau
2026-08-18 12:36 ` [PATCH v3 57/74] hw/gpio/pca955x: convert pin/led property to QAPI-aware enum Marc-André Lureau
2026-08-18 12:36 ` [PATCH v3 58/74] hw/pci: change the busnr type to uint8 Marc-André Lureau
2026-08-18 12:36 ` [PATCH v3 59/74] qdev: add qapi_type field to PropertyInfo with fallback registration Marc-André Lureau
2026-08-18 12:36 ` [PATCH v3 60/74] qdev: convert core PropertyInfo definitions to use qapi_type Marc-André Lureau
2026-08-18 13:29 ` [PATCH v3 61/74] qdev: adjust PciDevfn declared type Marc-André Lureau
2026-08-18 13:29 ` [PATCH v3 62/74] qdev: convert system PropertyInfo definitions to use qapi_type Marc-André Lureau
2026-08-18 13:29 ` [PATCH v3 63/74] hw: convert device-local " Marc-André Lureau
2026-08-18 13:29 ` [PATCH v3 64/74] target/riscv: fix incorrect QAPI types and u8 casting Marc-André Lureau
2026-08-18 13:29 ` [PATCH v3 65/74] target/riscv: convert PropertyInfo definitions to use qapi_type Marc-André Lureau
2026-08-18 13:29 ` [PATCH v3 66/74] qdev: " Marc-André Lureau
2026-08-18 13:29 ` [PATCH v3 67/74] qdev: introduce typed array PropertyInfos Marc-André Lureau
2026-08-18 13:29 ` [PATCH v3 68/74] qdev: simplify DEFINE_PROP_ARRAY and remove generic array PropertyInfo Marc-André Lureau
2026-08-18 13:29 ` [PATCH v3 69/74] qdev: remove deprecated PropertyInfo.type and .enum_table fields Marc-André Lureau
2026-08-18 13:29 ` [PATCH v3 70/74] memory: use object_property_add_link for container property Marc-André Lureau
2026-08-20 18:17 ` Peter Xu
2026-08-18 13:29 ` [PATCH v3 71/74] hw/i386: convert PCSouthBridgeOption to QAPI enum Marc-André Lureau
2026-08-18 13:29 ` [PATCH v3 72/74] qom: use QAPITypeInfo in object_property_get_enum Marc-André Lureau
2026-08-18 13:29 ` [PATCH v3 73/74] qapi: expose integer signedness and width in introspection Marc-André Lureau
2026-08-18 13:29 ` [PATCH v3 74/74] tests/qmp-cmd-test: assert qapi-type resolves in query-qmp-schema Marc-André Lureau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260818-qom-qapi-v3-54-24b8bbbe3d86@redhat.com \
--to=marcandre.lureau@redhat.com \
--cc=alistair.francis@wdc.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=eblake@redhat.com \
--cc=foss@defmacro.it \
--cc=its@irrelevant.dk \
--cc=kbusch@kernel.org \
--cc=michael.roth@amd.com \
--cc=pbonzini@redhat.com \
--cc=philmd@mailo.com \
--cc=philmd@oss.qualcomm.com \
--cc=pierrick.bouvier@oss.qualcomm.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=tangtao1634@phytium.com.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.