History

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

Jens Freimann committed 13 years ago

Commit 81aa8ef1 parent c760f5e2 files · +64 −33Browse files

Showing the changes to include/uapi/linux (1 of 2 files). Show all

Unified · Split

include/uapi/linux/kvm.h+63−0
@@ -434,6 +434,69 @@ struct kvm_s390_interrupt { · 433 unmodified lines
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 0x00000001502#define KVM_GUESTDBG_ENABLE 0x00000001