Commit a4538a5c authored by Jason J. Herne's avatar Jason J. Herne Committed by Cornelia Huck
Browse files

s390x: Dump-skeys hmp support



Add dump-skeys command to the human monitor.

Reviewed-by: default avatarThomas Huth <thuth@linux.vnet.ibm.com>
Reviewed-by: default avatarDavid Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: default avatarJason J. Herne <jjherne@linux.vnet.ibm.com>
Signed-off-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
parent 7ee0c3e3
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -1053,6 +1053,22 @@ gdb. Without -z|-l|-s, the dump format is ELF.
            together with begin.
ETEXI

#if defined(TARGET_S390X)
    {
        .name       = "dump-skeys",
        .args_type  = "filename:F",
        .params     = "",
        .help       = "Save guest storage keys into file 'filename'.\n",
        .mhandler.cmd = hmp_dump_skeys,
    },
#endif

STEXI
@item dump-skeys @var{filename}
@findex dump-skeys
Save guest storage keys to a file.
ETEXI

    {
        .name       = "snapshot_blkdev",
        .args_type  = "reuse:-n,device:B,snapshot-file:s?,format:s?",
+12 −0
Original line number Diff line number Diff line
@@ -66,6 +66,18 @@ static void write_keys(QEMUFile *f, uint8_t *keys, uint64_t startgfn,
    }
}

void hmp_dump_skeys(Monitor *mon, const QDict *qdict)
{
    const char *filename = qdict_get_str(qdict, "filename");
    Error *err = NULL;

    qmp_dump_skeys(filename, &err);
    if (err) {
        monitor_printf(mon, "%s\n", error_get_pretty(err));
        error_free(err);
    }
}

void qmp_dump_skeys(const char *filename, Error **errp)
{
    S390SKeysState *ss = s390_get_skeys_device();
+2 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#define __S390_STORAGE_KEYS_H

#include <hw/qdev.h>
#include "monitor/monitor.h"

#define TYPE_S390_SKEYS "s390-skeys"
#define S390_SKEYS(obj) \
@@ -52,4 +53,5 @@ void s390_skeys_init(void);

S390SKeysState *s390_get_skeys_device(void);

void hmp_dump_skeys(Monitor *mon, const QDict *qdict);
#endif /* __S390_STORAGE_KEYS_H */
+4 −0
Original line number Diff line number Diff line
@@ -82,6 +82,10 @@
#endif
#include "hw/lm32/lm32_pic.h"

#if defined(TARGET_S390X)
#include "hw/s390x/storage-keys.h"
#endif

/*
 * Supported types:
 *