aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi
diff options
context:
space:
mode:
authorEkaterina Tumanova <tumanova@linux.vnet.ibm.com>2015-01-30 10:55:56 -0500
committerChristian Borntraeger <borntraeger@de.ibm.com>2015-03-17 11:26:51 -0400
commite44fc8c9dab215ac0e398622a05574cffd5f5184 (patch)
treed452385decc56c0e01927738d78fda73d0cd813b /include/uapi
parent41408c28f283b49202ae374b1c42bc8e9b33a048 (diff)
KVM: s390: introduce post handlers for STSI
The Store System Information (STSI) instruction currently collects all information it relays to the caller in the kernel. Some information, however, is only available in user space. An example of this is the guest name: The kernel always sets "KVMGuest", but user space knows the actual guest name. This patch introduces a new exit, KVM_EXIT_S390_STSI, guarded by a capability that can be enabled by user space if it wants to be able to insert such data. User space will be provided with the target buffer and the requested STSI function code. Reviewed-by: Eric Farman <farman@linux.vnet.ibm.com> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Ekaterina Tumanova <tumanova@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/linux/kvm.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index 0e16f2c9f0de..57445ef88097 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -172,6 +172,7 @@ struct kvm_pit_config {
172#define KVM_EXIT_S390_TSCH 22 172#define KVM_EXIT_S390_TSCH 22
173#define KVM_EXIT_EPR 23 173#define KVM_EXIT_EPR 23
174#define KVM_EXIT_SYSTEM_EVENT 24 174#define KVM_EXIT_SYSTEM_EVENT 24
175#define KVM_EXIT_S390_STSI 25
175 176
176/* For KVM_EXIT_INTERNAL_ERROR */ 177/* For KVM_EXIT_INTERNAL_ERROR */
177/* Emulate instruction failed. */ 178/* Emulate instruction failed. */
@@ -309,6 +310,15 @@ struct kvm_run {
309 __u32 type; 310 __u32 type;
310 __u64 flags; 311 __u64 flags;
311 } system_event; 312 } system_event;
313 /* KVM_EXIT_S390_STSI */
314 struct {
315 __u64 addr;
316 __u8 ar;
317 __u8 reserved;
318 __u8 fc;
319 __u8 sel1;
320 __u16 sel2;
321 } s390_stsi;
312 /* Fix the size of the union. */ 322 /* Fix the size of the union. */
313 char padding[256]; 323 char padding[256];
314 }; 324 };
@@ -780,6 +790,7 @@ struct kvm_ppc_smmu_info {
780#define KVM_CAP_S390_USER_SIGP 106 790#define KVM_CAP_S390_USER_SIGP 106
781#define KVM_CAP_S390_VECTOR_REGISTERS 107 791#define KVM_CAP_S390_VECTOR_REGISTERS 107
782#define KVM_CAP_S390_MEM_OP 108 792#define KVM_CAP_S390_MEM_OP 108
793#define KVM_CAP_S390_USER_STSI 109
783 794
784#ifdef KVM_CAP_IRQ_ROUTING 795#ifdef KVM_CAP_IRQ_ROUTING
785 796