From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Christian Borntraeger" <borntraeger@linux.ibm.com>,
"Ilya Leoshkevich" <iii@linux.ibm.com>,
"Pierrick Bouvier" <pierrick.bouvier@linaro.org>,
qemu-s390x@nongnu.org,
"Daniel P . Berrangé" <berrange@redhat.com>,
"Halil Pasic" <pasic@linux.ibm.com>,
"David Hildenbrand" <david@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Thomas Huth" <thuth@redhat.com>,
"Eric Farman" <farman@linux.ibm.com>,
"Dr. David Alan Gilbert" <dave@treblig.org>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Eric Blake" <eblake@redhat.com>,
"Zhao Liu" <zhao1.liu@intel.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Anton Johansson" <anjo@rev.ng>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PATCH v2 3/3] qapi/machine: Make @dump-skeys command generic
Date: Mon, 10 Mar 2025 14:31:18 +0100 [thread overview]
Message-ID: <20250310133118.3881-4-philmd@linaro.org> (raw)
In-Reply-To: <20250310133118.3881-1-philmd@linaro.org>
Reduce misc-target.json by one target specific command.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
qapi/machine.json | 18 ++++++++++++++++++
qapi/misc-target.json | 19 -------------------
hw/core/machine-qmp-cmds.c | 13 +++++++++++++
hw/s390x/s390-skeys.c | 6 +-----
4 files changed, 32 insertions(+), 24 deletions(-)
diff --git a/qapi/machine.json b/qapi/machine.json
index a6b8795b09e..53680bf0998 100644
--- a/qapi/machine.json
+++ b/qapi/machine.json
@@ -1898,3 +1898,21 @@
{ 'command': 'x-query-interrupt-controllers',
'returns': 'HumanReadableText',
'features': [ 'unstable' ]}
+
+##
+# @dump-skeys:
+#
+# Dump guest's storage keys
+#
+# @filename: the path to the file to dump to
+#
+# Since: 2.5
+#
+# .. qmp-example::
+#
+# -> { "execute": "dump-skeys",
+# "arguments": { "filename": "/tmp/skeys" } }
+# <- { "return": {} }
+##
+{ 'command': 'dump-skeys',
+ 'data': { 'filename': 'str' } }
diff --git a/qapi/misc-target.json b/qapi/misc-target.json
index 8d70bd24d8c..42e4a7417dc 100644
--- a/qapi/misc-target.json
+++ b/qapi/misc-target.json
@@ -274,25 +274,6 @@
'returns': 'SevAttestationReport',
'if': 'TARGET_I386' }
-##
-# @dump-skeys:
-#
-# Dump guest's storage keys
-#
-# @filename: the path to the file to dump to
-#
-# Since: 2.5
-#
-# .. qmp-example::
-#
-# -> { "execute": "dump-skeys",
-# "arguments": { "filename": "/tmp/skeys" } }
-# <- { "return": {} }
-##
-{ 'command': 'dump-skeys',
- 'data': { 'filename': 'str' },
- 'if': 'TARGET_S390X' }
-
##
# @GICCapability:
#
diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c
index 3130c5cd456..b9ed0963bb4 100644
--- a/hw/core/machine-qmp-cmds.c
+++ b/hw/core/machine-qmp-cmds.c
@@ -10,6 +10,7 @@
#include "qemu/osdep.h"
#include "hw/acpi/vmgenid.h"
#include "hw/boards.h"
+#include "hw/core/sysemu-cpu-ops.h"
#include "hw/intc/intc.h"
#include "hw/mem/memory-device.h"
#include "qapi/error.h"
@@ -406,3 +407,15 @@ GuidInfo *qmp_query_vm_generation_id(Error **errp)
info->guid = qemu_uuid_unparse_strdup(&vms->guid);
return info;
}
+
+void qmp_dump_skeys(const char *filename, Error **errp)
+{
+ CPUState *cpu = first_cpu; /* FIXME */
+
+ if (!cpu->cc->sysemu_ops->qmp_dump_skeys) {
+ error_setg(errp, "Storage keys information not available"
+ " for this architecture");
+ return;
+ }
+ cpu->cc->sysemu_ops->qmp_dump_skeys(filename, errp);
+}
diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c
index 686c118ebcd..6bd608b5aa3 100644
--- a/hw/s390x/s390-skeys.c
+++ b/hw/s390x/s390-skeys.c
@@ -15,6 +15,7 @@
#include "hw/qdev-properties.h"
#include "hw/s390x/storage-keys.h"
#include "qapi/error.h"
+#include "qapi/qapi-commands-machine.h"
#include "qapi/qapi-commands-misc-target.h"
#include "qobject/qdict.h"
#include "qemu/error-report.h"
@@ -219,11 +220,6 @@ out:
fclose(f);
}
-void qmp_dump_skeys(const char *filename, Error **errp)
-{
- s390_qmp_dump_skeys(filename, errp);
-}
-
static bool qemu_s390_skeys_are_enabled(S390SKeysState *ss)
{
QEMUS390SKeysState *skeys = QEMU_S390_SKEYS(ss);
--
2.47.1
next prev parent reply other threads:[~2025-03-10 13:32 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-10 13:31 [PATCH v2 0/3] qapi/machine: Make @dump-skeys command generic Philippe Mathieu-Daudé
2025-03-10 13:31 ` [PATCH v2 1/3] hw/s390x: Expose s390_qmp_dump_skeys() prototype Philippe Mathieu-Daudé
2025-03-10 13:42 ` Thomas Huth
2025-03-10 13:31 ` [PATCH v2 2/3] cpus: Introduce SysemuCPUOps::qmp_dump_skeys() callback Philippe Mathieu-Daudé
2025-03-10 13:43 ` Thomas Huth
2025-03-10 13:45 ` Daniel P. Berrangé
2025-03-10 13:48 ` Thomas Huth
2025-03-10 15:06 ` Philippe Mathieu-Daudé
2025-03-10 13:31 ` Philippe Mathieu-Daudé [this message]
2025-03-10 13:44 ` [PATCH v2 3/3] qapi/machine: Make @dump-skeys command generic Thomas Huth
2025-03-10 13:46 ` Daniel P. Berrangé
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=20250310133118.3881-4-philmd@linaro.org \
--to=philmd@linaro.org \
--cc=alex.bennee@linaro.org \
--cc=anjo@rev.ng \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=borntraeger@linux.ibm.com \
--cc=dave@treblig.org \
--cc=david@redhat.com \
--cc=eblake@redhat.com \
--cc=eduardo@habkost.net \
--cc=farman@linux.ibm.com \
--cc=iii@linux.ibm.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=pasic@linux.ibm.com \
--cc=pierrick.bouvier@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
--cc=wangyanan55@huawei.com \
--cc=zhao1.liu@intel.com \
/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 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).