File tree Expand file tree Collapse file tree 5 files changed +73
-1
lines changed Expand file tree Collapse file tree 5 files changed +73
-1
lines changed Original file line number Diff line number Diff line change 27
27
#define __KVM_HAVE_GUEST_DEBUG
28
28
#define __KVM_HAVE_IRQ_LINE
29
29
#define __KVM_HAVE_READONLY_MEM
30
+ #define __KVM_HAVE_VCPU_EVENTS
30
31
31
32
#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
32
33
@@ -125,6 +126,18 @@ struct kvm_sync_regs {
125
126
struct kvm_arch_memory_slot {
126
127
};
127
128
129
+ /* for KVM_GET/SET_VCPU_EVENTS */
130
+ struct kvm_vcpu_events {
131
+ struct {
132
+ __u8 serror_pending ;
133
+ __u8 serror_has_esr ;
134
+ /* Align it to 8 bytes */
135
+ __u8 pad [6 ];
136
+ __u64 serror_esr ;
137
+ } exception ;
138
+ __u32 reserved [12 ];
139
+ };
140
+
128
141
/* If you need to interpret the index values, here is the key: */
129
142
#define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000
130
143
#define KVM_REG_ARM_COPROC_SHIFT 16
Original file line number Diff line number Diff line change 39
39
#define __KVM_HAVE_GUEST_DEBUG
40
40
#define __KVM_HAVE_IRQ_LINE
41
41
#define __KVM_HAVE_READONLY_MEM
42
+ #define __KVM_HAVE_VCPU_EVENTS
42
43
43
44
#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
44
45
@@ -154,6 +155,18 @@ struct kvm_sync_regs {
154
155
struct kvm_arch_memory_slot {
155
156
};
156
157
158
+ /* for KVM_GET/SET_VCPU_EVENTS */
159
+ struct kvm_vcpu_events {
160
+ struct {
161
+ __u8 serror_pending ;
162
+ __u8 serror_has_esr ;
163
+ /* Align it to 8 bytes */
164
+ __u8 pad [6 ];
165
+ __u64 serror_esr ;
166
+ } exception ;
167
+ __u32 reserved [12 ];
168
+ };
169
+
157
170
/* If you need to interpret the index values, here is the key: */
158
171
#define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000
159
172
#define KVM_REG_ARM_COPROC_SHIFT 16
Original file line number Diff line number Diff line change 4
4
/*
5
5
* KVM s390 specific structures and definitions
6
6
*
7
- * Copyright IBM Corp. 2008
7
+ * Copyright IBM Corp. 2008, 2018
8
8
*
9
9
* Author(s): Carsten Otte <[email protected] >
10
10
* Christian Borntraeger <[email protected] >
@@ -225,6 +225,7 @@ struct kvm_guest_debug_arch {
225
225
#define KVM_SYNC_FPRS (1UL << 8)
226
226
#define KVM_SYNC_GSCB (1UL << 9)
227
227
#define KVM_SYNC_BPBC (1UL << 10)
228
+ #define KVM_SYNC_ETOKEN (1UL << 11)
228
229
/* length and alignment of the sdnx as a power of two */
229
230
#define SDNXC 8
230
231
#define SDNXL (1UL << SDNXC)
@@ -258,6 +259,8 @@ struct kvm_sync_regs {
258
259
struct {
259
260
__u64 reserved1 [2 ];
260
261
__u64 gscb [4 ];
262
+ __u64 etoken ;
263
+ __u64 etoken_extension ;
261
264
};
262
265
};
263
266
};
Original file line number Diff line number Diff line change @@ -378,4 +378,41 @@ struct kvm_sync_regs {
378
378
#define KVM_X86_QUIRK_LINT0_REENABLED (1 << 0)
379
379
#define KVM_X86_QUIRK_CD_NW_CLEARED (1 << 1)
380
380
381
+ #define KVM_STATE_NESTED_GUEST_MODE 0x00000001
382
+ #define KVM_STATE_NESTED_RUN_PENDING 0x00000002
383
+
384
+ #define KVM_STATE_NESTED_SMM_GUEST_MODE 0x00000001
385
+ #define KVM_STATE_NESTED_SMM_VMXON 0x00000002
386
+
387
+ struct kvm_vmx_nested_state {
388
+ __u64 vmxon_pa ;
389
+ __u64 vmcs_pa ;
390
+
391
+ struct {
392
+ __u16 flags ;
393
+ } smm ;
394
+ };
395
+
396
+ /* for KVM_CAP_NESTED_STATE */
397
+ struct kvm_nested_state {
398
+ /* KVM_STATE_* flags */
399
+ __u16 flags ;
400
+
401
+ /* 0 for VMX, 1 for SVM. */
402
+ __u16 format ;
403
+
404
+ /* 128 for SVM, 128 + VMCS size for VMX. */
405
+ __u32 size ;
406
+
407
+ union {
408
+ /* VMXON, VMCS */
409
+ struct kvm_vmx_nested_state vmx ;
410
+
411
+ /* Pad the header to 128 bytes. */
412
+ __u8 pad [120 ];
413
+ };
414
+
415
+ __u8 data [0 ];
416
+ };
417
+
381
418
#endif /* _ASM_X86_KVM_H */
Original file line number Diff line number Diff line change @@ -949,6 +949,9 @@ struct kvm_ppc_resize_hpt {
949
949
#define KVM_CAP_GET_MSR_FEATURES 153
950
950
#define KVM_CAP_HYPERV_EVENTFD 154
951
951
#define KVM_CAP_HYPERV_TLBFLUSH 155
952
+ #define KVM_CAP_S390_HPAGE_1M 156
953
+ #define KVM_CAP_NESTED_STATE 157
954
+ #define KVM_CAP_ARM_INJECT_SERROR_ESR 158
952
955
953
956
#ifdef KVM_CAP_IRQ_ROUTING
954
957
@@ -1391,6 +1394,9 @@ struct kvm_enc_region {
1391
1394
/* Available with KVM_CAP_HYPERV_EVENTFD */
1392
1395
#define KVM_HYPERV_EVENTFD _IOW(KVMIO, 0xbd, struct kvm_hyperv_eventfd)
1393
1396
1397
+ /* Available with KVM_CAP_NESTED_STATE */
1398
+ #define KVM_GET_NESTED_STATE _IOWR(KVMIO, 0xbe, struct kvm_nested_state)
1399
+ #define KVM_SET_NESTED_STATE _IOW(KVMIO, 0xbf, struct kvm_nested_state)
1394
1400
1395
1401
/* Secure Encrypted Virtualization command */
1396
1402
enum sev_cmd_id {
You can’t perform that action at this time.
0 commit comments