[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v9 15/17] tpm: Convert to new qapi union layout
From: |
Eric Blake |
Subject: |
[Qemu-devel] [PATCH v9 15/17] tpm: Convert to new qapi union layout |
Date: |
Thu, 15 Oct 2015 22:15:40 -0600 |
We have two issues with our qapi union layout:
1) Even though the QMP wire format spells the tag 'type', the
C code spells it 'kind', requiring some hacks in the generator.
2) The C struct uses an anonymous union, which places all tag
values in the same namespace as all non-variant members. This
leads to spurious collisions if a tag value matches a QMP name.
Make the conversion to the new layout for TPM-related code.
Signed-off-by: Eric Blake <address@hidden>
---
v9: new patch, but incorporates parts of v5 31/46 and Markus' RFC:
http://lists.gnu.org/archive/html/qemu-devel/2015-10/msg02236.html
---
hmp.c | 6 +++---
tpm.c | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/hmp.c b/hmp.c
index 39d5815..a15d00c 100644
--- a/hmp.c
+++ b/hmp.c
@@ -841,11 +841,11 @@ void hmp_info_tpm(Monitor *mon, const QDict *qdict)
c, TpmModel_lookup[ti->model]);
monitor_printf(mon, " \\ %s: type=%s",
- ti->id, TpmTypeOptionsKind_lookup[ti->options->kind]);
+ ti->id, TpmTypeOptionsKind_lookup[ti->options->type]);
- switch (ti->options->kind) {
+ switch (ti->options->type) {
case TPM_TYPE_OPTIONS_KIND_PASSTHROUGH:
- tpo = ti->options->passthrough;
+ tpo = ti->options->u.passthrough;
monitor_printf(mon, "%s%s%s%s",
tpo->has_path ? ",path=" : "",
tpo->has_path ? tpo->path : "",
diff --git a/tpm.c b/tpm.c
index 4e9b109..f2c59d1 100644
--- a/tpm.c
+++ b/tpm.c
@@ -260,9 +260,9 @@ static TPMInfo *qmp_query_tpm_inst(TPMBackend *drv)
switch (drv->ops->type) {
case TPM_TYPE_PASSTHROUGH:
- res->options->kind = TPM_TYPE_OPTIONS_KIND_PASSTHROUGH;
+ res->options->type = TPM_TYPE_OPTIONS_KIND_PASSTHROUGH;
tpo = g_new0(TPMPassthroughOptions, 1);
- res->options->passthrough = tpo;
+ res->options->u.passthrough = tpo;
if (drv->path) {
tpo->path = g_strdup(drv->path);
tpo->has_path = true;
--
2.4.3
- Re: [Qemu-devel] [PATCH v9 07/17] qapi: Start converting to new qapi union layout, (continued)
[Qemu-devel] [PATCH v9 12/17] char: Convert to new qapi union layout, Eric Blake, 2015/10/16
[Qemu-devel] [PATCH v9 06/17] qapi-visit: Remove redundant functions for flat union base, Eric Blake, 2015/10/16
[Qemu-devel] [PATCH v9 17/17] qapi: Simplify gen_struct_field(), Eric Blake, 2015/10/16
[Qemu-devel] [PATCH v9 16/17] qapi: Finish converting to new qapi union layout, Eric Blake, 2015/10/16
[Qemu-devel] [PATCH v9 15/17] tpm: Convert to new qapi union layout,
Eric Blake <=
[Qemu-devel] [PATCH v9 09/17] block: Convert to new qapi union layout, Eric Blake, 2015/10/16
[Qemu-devel] [PATCH v9 14/17] memory: Convert to new qapi union layout, Eric Blake, 2015/10/16
Re: [Qemu-devel] [PATCH v9 00/17] qapi collision reduction (post-introspection subset B'), Markus Armbruster, 2015/10/22