]>
Commit | Line | Data |
---|---|---|
0efe406c JH |
1 | /* |
2 | * s390 storage key device | |
3 | * | |
4 | * Copyright 2015 IBM Corp. | |
5 | * Author(s): Jason J. Herne <jjherne@linux.vnet.ibm.com> | |
6 | * | |
7 | * This work is licensed under the terms of the GNU GPL, version 2 or (at | |
8 | * your option) any later version. See the COPYING file in the top-level | |
9 | * directory. | |
10 | */ | |
11 | ||
12 | #ifndef __S390_STORAGE_KEYS_H | |
13 | #define __S390_STORAGE_KEYS_H | |
14 | ||
a9c94277 | 15 | #include "hw/qdev.h" |
a4538a5c | 16 | #include "monitor/monitor.h" |
0efe406c JH |
17 | |
18 | #define TYPE_S390_SKEYS "s390-skeys" | |
19 | #define S390_SKEYS(obj) \ | |
20 | OBJECT_CHECK(S390SKeysState, (obj), TYPE_S390_SKEYS) | |
21 | ||
22 | typedef struct S390SKeysState { | |
23 | DeviceState parent_obj; | |
9ef40173 | 24 | bool migration_enabled; |
0efe406c JH |
25 | |
26 | } S390SKeysState; | |
27 | ||
28 | #define S390_SKEYS_CLASS(klass) \ | |
29 | OBJECT_CLASS_CHECK(S390SKeysClass, (klass), TYPE_S390_SKEYS) | |
30 | #define S390_SKEYS_GET_CLASS(obj) \ | |
31 | OBJECT_GET_CLASS(S390SKeysClass, (obj), TYPE_S390_SKEYS) | |
32 | ||
33 | typedef struct S390SKeysClass { | |
34 | DeviceClass parent_class; | |
35 | int (*skeys_enabled)(S390SKeysState *ks); | |
36 | int (*get_skeys)(S390SKeysState *ks, uint64_t start_gfn, uint64_t count, | |
37 | uint8_t *keys); | |
38 | int (*set_skeys)(S390SKeysState *ks, uint64_t start_gfn, uint64_t count, | |
39 | uint8_t *keys); | |
40 | } S390SKeysClass; | |
41 | ||
42 | #define TYPE_KVM_S390_SKEYS "s390-skeys-kvm" | |
43 | #define TYPE_QEMU_S390_SKEYS "s390-skeys-qemu" | |
44 | #define QEMU_S390_SKEYS(obj) \ | |
45 | OBJECT_CHECK(QEMUS390SKeysState, (obj), TYPE_QEMU_S390_SKEYS) | |
46 | ||
47 | typedef struct QEMUS390SKeysState { | |
48 | S390SKeysState parent_obj; | |
49 | uint8_t *keydata; | |
50 | uint32_t key_count; | |
51 | } QEMUS390SKeysState; | |
52 | ||
53 | void s390_skeys_init(void); | |
54 | ||
55 | S390SKeysState *s390_get_skeys_device(void); | |
56 | ||
a4538a5c | 57 | void hmp_dump_skeys(Monitor *mon, const QDict *qdict); |
a08f0081 JH |
58 | void hmp_info_skeys(Monitor *mon, const QDict *qdict); |
59 | ||
0efe406c | 60 | #endif /* __S390_STORAGE_KEYS_H */ |