aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJens Freimann <jfrei@linux.vnet.ibm.com>2013-10-07 10:13:44 -0400
committerChristian Borntraeger <borntraeger@de.ibm.com>2014-01-29 16:00:41 -0500
commit81aa8efe0190cf5bf7eaafb57341cd7d0aea96cd (patch)
tree47bf8d718e963777541893806c407e097c00ebac /include
parentc760f5e29d92adf5184589f1e616a4be146fb57c (diff)
KVM: s390: add and extend interrupt information data structs
With the currently available struct kvm_s390_interrupt it is not possible to inject every kind of interrupt as defined in the z/Architecture. Add additional interruption parameters to the structures and move it to kvm.h Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'include')
-rw-r--r--include/uapi/linux/kvm.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index 932d7f2637d6..86faf47ae494 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -434,6 +434,69 @@ struct kvm_s390_interrupt {
434 __u64 parm64; 434 __u64 parm64;
435}; 435};
436 436
437struct kvm_s390_io_info {
438 __u16 subchannel_id;
439 __u16 subchannel_nr;
440 __u32 io_int_parm;
441 __u32 io_int_word;
442};
443
444struct kvm_s390_ext_info {
445 __u32 ext_params;
446 __u32 pad;
447 __u64 ext_params2;
448};
449
450struct kvm_s390_pgm_info {
451 __u64 trans_exc_code;
452 __u64 mon_code;
453 __u64 per_address;
454 __u32 data_exc_code;
455 __u16 code;
456 __u16 mon_class_nr;
457 __u8 per_code;
458 __u8 per_atmid;
459 __u8 exc_access_id;
460 __u8 per_access_id;
461 __u8 op_access_id;
462 __u8 pad[3];
463};
464
465struct kvm_s390_prefix_info {
466 __u32 address;
467};
468
469struct kvm_s390_extcall_info {
470 __u16 code;
471};
472
473struct kvm_s390_emerg_info {
474 __u16 code;
475};
476
477struct kvm_s390_mchk_info {
478 __u64 cr14;
479 __u64 mcic;
480 __u64 failing_storage_address;
481 __u32 ext_damage_code;
482 __u32 pad;
483 __u8 fixed_logout[16];
484};
485
486struct kvm_s390_irq {
487 __u64 type;
488 union {
489 struct kvm_s390_io_info io;
490 struct kvm_s390_ext_info ext;
491 struct kvm_s390_pgm_info pgm;
492 struct kvm_s390_emerg_info emerg;
493 struct kvm_s390_extcall_info extcall;
494 struct kvm_s390_prefix_info prefix;
495 struct kvm_s390_mchk_info mchk;
496 char reserved[64];
497 } u;
498};
499
437/* for KVM_SET_GUEST_DEBUG */ 500/* for KVM_SET_GUEST_DEBUG */
438 501
439#define KVM_GUESTDBG_ENABLE 0x00000001 502#define KVM_GUESTDBG_ENABLE 0x00000001