diff options
author | Philippe Mathieu-Daudé <philmd@linaro.org> | 2025-03-10 16:14:12 +0100 |
---|---|---|
committer | Thomas Huth <thuth@redhat.com> | 2025-04-23 07:51:25 +0200 |
commit | 3f979fe13e405d5721f3b43b5669a462f4816569 (patch) | |
tree | 49c90f89ef21db71594e7042c14eae3518a7c073 | |
parent | 4b91f6d16d4e50cf0f19d74f318d0ba61f90cc64 (diff) | |
download | qemu-3f979fe13e405d5721f3b43b5669a462f4816569.zip qemu-3f979fe13e405d5721f3b43b5669a462f4816569.tar.gz qemu-3f979fe13e405d5721f3b43b5669a462f4816569.tar.bz2 |
hw/s390x/skeys: Introduce TYPE_DUMP_SKEYS_INTERFACE
The storage keys are part of the machine memory.
Introduce the TYPE_DUMP_SKEYS_INTERFACE type,
allowing machine using storage keys to dump them
when a DumpSKeysInterface::qmp_dump_skeys() callback
is provided.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Eric Farman <farman@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250310151414.11550-3-philmd@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
-rw-r--r-- | hw/s390x/s390-skeys.c | 5 | ||||
-rw-r--r-- | include/hw/s390x/storage-keys.h | 15 |
2 files changed, 20 insertions, 0 deletions
diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c index d50e71b..0d3d4f7 100644 --- a/hw/s390x/s390-skeys.c +++ b/hw/s390x/s390-skeys.c @@ -475,6 +475,11 @@ static void s390_skeys_class_init(ObjectClass *oc, void *data) static const TypeInfo s390_skeys_types[] = { { + .name = TYPE_DUMP_SKEYS_INTERFACE, + .parent = TYPE_INTERFACE, + .class_size = sizeof(DumpSKeysInterface), + }, + { .name = TYPE_S390_SKEYS, .parent = TYPE_DEVICE, .instance_size = sizeof(S390SKeysState), diff --git a/include/hw/s390x/storage-keys.h b/include/hw/s390x/storage-keys.h index 408d281..fb766d4 100644 --- a/include/hw/s390x/storage-keys.h +++ b/include/hw/s390x/storage-keys.h @@ -125,4 +125,19 @@ S390SKeysState *s390_get_skeys_device(void); void hmp_dump_skeys(Monitor *mon, const QDict *qdict); void hmp_info_skeys(Monitor *mon, const QDict *qdict); +#define TYPE_DUMP_SKEYS_INTERFACE "dump-skeys-interface" + +typedef struct DumpSKeysInterface DumpSKeysInterface; +DECLARE_CLASS_CHECKERS(DumpSKeysInterface, DUMP_SKEYS_INTERFACE, + TYPE_DUMP_SKEYS_INTERFACE) + +struct DumpSKeysInterface { + InterfaceClass parent_class; + + /** + * @qmp_dump_skeys: Callback to dump guest's storage keys to @filename. + */ + void (*qmp_dump_skeys)(const char *filename, Error **errp); +}; + #endif /* S390_STORAGE_KEYS_H */ |