diff options
Diffstat (limited to 'include/uapi/linux')
| -rw-r--r-- | include/uapi/linux/kvm.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 932d7f2637d6..a8f4ee5d2e82 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h | |||
| @@ -413,6 +413,8 @@ struct kvm_s390_psw { | |||
| 413 | #define KVM_S390_PROGRAM_INT 0xfffe0001u | 413 | #define KVM_S390_PROGRAM_INT 0xfffe0001u |
| 414 | #define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u | 414 | #define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u |
| 415 | #define KVM_S390_RESTART 0xfffe0003u | 415 | #define KVM_S390_RESTART 0xfffe0003u |
| 416 | #define KVM_S390_INT_PFAULT_INIT 0xfffe0004u | ||
| 417 | #define KVM_S390_INT_PFAULT_DONE 0xfffe0005u | ||
| 416 | #define KVM_S390_MCHK 0xfffe1000u | 418 | #define KVM_S390_MCHK 0xfffe1000u |
| 417 | #define KVM_S390_INT_VIRTIO 0xffff2603u | 419 | #define KVM_S390_INT_VIRTIO 0xffff2603u |
| 418 | #define KVM_S390_INT_SERVICE 0xffff2401u | 420 | #define KVM_S390_INT_SERVICE 0xffff2401u |
| @@ -434,6 +436,69 @@ struct kvm_s390_interrupt { | |||
| 434 | __u64 parm64; | 436 | __u64 parm64; |
| 435 | }; | 437 | }; |
| 436 | 438 | ||
| 439 | struct kvm_s390_io_info { | ||
| 440 | __u16 subchannel_id; | ||
| 441 | __u16 subchannel_nr; | ||
| 442 | __u32 io_int_parm; | ||
| 443 | __u32 io_int_word; | ||
| 444 | }; | ||
| 445 | |||
| 446 | struct kvm_s390_ext_info { | ||
| 447 | __u32 ext_params; | ||
| 448 | __u32 pad; | ||
| 449 | __u64 ext_params2; | ||
| 450 | }; | ||
| 451 | |||
| 452 | struct kvm_s390_pgm_info { | ||
| 453 | __u64 trans_exc_code; | ||
| 454 | __u64 mon_code; | ||
| 455 | __u64 per_address; | ||
| 456 | __u32 data_exc_code; | ||
| 457 | __u16 code; | ||
| 458 | __u16 mon_class_nr; | ||
| 459 | __u8 per_code; | ||
| 460 | __u8 per_atmid; | ||
| 461 | __u8 exc_access_id; | ||
| 462 | __u8 per_access_id; | ||
| 463 | __u8 op_access_id; | ||
| 464 | __u8 pad[3]; | ||
| 465 | }; | ||
| 466 | |||
| 467 | struct kvm_s390_prefix_info { | ||
| 468 | __u32 address; | ||
| 469 | }; | ||
| 470 | |||
| 471 | struct kvm_s390_extcall_info { | ||
| 472 | __u16 code; | ||
| 473 | }; | ||
| 474 | |||
| 475 | struct kvm_s390_emerg_info { | ||
| 476 | __u16 code; | ||
| 477 | }; | ||
| 478 | |||
| 479 | struct kvm_s390_mchk_info { | ||
| 480 | __u64 cr14; | ||
| 481 | __u64 mcic; | ||
| 482 | __u64 failing_storage_address; | ||
| 483 | __u32 ext_damage_code; | ||
| 484 | __u32 pad; | ||
| 485 | __u8 fixed_logout[16]; | ||
| 486 | }; | ||
| 487 | |||
| 488 | struct kvm_s390_irq { | ||
| 489 | __u64 type; | ||
| 490 | union { | ||
| 491 | struct kvm_s390_io_info io; | ||
| 492 | struct kvm_s390_ext_info ext; | ||
| 493 | struct kvm_s390_pgm_info pgm; | ||
| 494 | struct kvm_s390_emerg_info emerg; | ||
| 495 | struct kvm_s390_extcall_info extcall; | ||
| 496 | struct kvm_s390_prefix_info prefix; | ||
| 497 | struct kvm_s390_mchk_info mchk; | ||
| 498 | char reserved[64]; | ||
| 499 | } u; | ||
| 500 | }; | ||
| 501 | |||
| 437 | /* for KVM_SET_GUEST_DEBUG */ | 502 | /* for KVM_SET_GUEST_DEBUG */ |
| 438 | 503 | ||
| 439 | #define KVM_GUESTDBG_ENABLE 0x00000001 | 504 | #define KVM_GUESTDBG_ENABLE 0x00000001 |
| @@ -675,6 +740,9 @@ struct kvm_ppc_smmu_info { | |||
| 675 | #define KVM_CAP_SPAPR_MULTITCE 94 | 740 | #define KVM_CAP_SPAPR_MULTITCE 94 |
| 676 | #define KVM_CAP_EXT_EMUL_CPUID 95 | 741 | #define KVM_CAP_EXT_EMUL_CPUID 95 |
| 677 | #define KVM_CAP_HYPERV_TIME 96 | 742 | #define KVM_CAP_HYPERV_TIME 96 |
| 743 | #define KVM_CAP_IOAPIC_POLARITY_IGNORED 97 | ||
| 744 | #define KVM_CAP_ENABLE_CAP_VM 98 | ||
| 745 | #define KVM_CAP_S390_IRQCHIP 99 | ||
| 678 | 746 | ||
| 679 | #ifdef KVM_CAP_IRQ_ROUTING | 747 | #ifdef KVM_CAP_IRQ_ROUTING |
| 680 | 748 | ||
| @@ -690,9 +758,18 @@ struct kvm_irq_routing_msi { | |||
| 690 | __u32 pad; | 758 | __u32 pad; |
| 691 | }; | 759 | }; |
| 692 | 760 | ||
| 761 | struct kvm_irq_routing_s390_adapter { | ||
| 762 | __u64 ind_addr; | ||
| 763 | __u64 summary_addr; | ||
| 764 | __u64 ind_offset; | ||
| 765 | __u32 summary_offset; | ||
| 766 | __u32 adapter_id; | ||
| 767 | }; | ||
| 768 | |||
| 693 | /* gsi routing entry types */ | 769 | /* gsi routing entry types */ |
| 694 | #define KVM_IRQ_ROUTING_IRQCHIP 1 | 770 | #define KVM_IRQ_ROUTING_IRQCHIP 1 |
| 695 | #define KVM_IRQ_ROUTING_MSI 2 | 771 | #define KVM_IRQ_ROUTING_MSI 2 |
| 772 | #define KVM_IRQ_ROUTING_S390_ADAPTER 3 | ||
| 696 | 773 | ||
| 697 | struct kvm_irq_routing_entry { | 774 | struct kvm_irq_routing_entry { |
| 698 | __u32 gsi; | 775 | __u32 gsi; |
| @@ -702,6 +779,7 @@ struct kvm_irq_routing_entry { | |||
| 702 | union { | 779 | union { |
| 703 | struct kvm_irq_routing_irqchip irqchip; | 780 | struct kvm_irq_routing_irqchip irqchip; |
| 704 | struct kvm_irq_routing_msi msi; | 781 | struct kvm_irq_routing_msi msi; |
| 782 | struct kvm_irq_routing_s390_adapter adapter; | ||
| 705 | __u32 pad[8]; | 783 | __u32 pad[8]; |
| 706 | } u; | 784 | } u; |
| 707 | }; | 785 | }; |
| @@ -855,6 +933,7 @@ struct kvm_device_attr { | |||
| 855 | #define KVM_DEV_VFIO_GROUP_ADD 1 | 933 | #define KVM_DEV_VFIO_GROUP_ADD 1 |
| 856 | #define KVM_DEV_VFIO_GROUP_DEL 2 | 934 | #define KVM_DEV_VFIO_GROUP_DEL 2 |
| 857 | #define KVM_DEV_TYPE_ARM_VGIC_V2 5 | 935 | #define KVM_DEV_TYPE_ARM_VGIC_V2 5 |
| 936 | #define KVM_DEV_TYPE_FLIC 6 | ||
| 858 | 937 | ||
| 859 | /* | 938 | /* |
| 860 | * ioctls for VM fds | 939 | * ioctls for VM fds |
| @@ -1009,6 +1088,10 @@ struct kvm_s390_ucas_mapping { | |||
| 1009 | /* Available with KVM_CAP_DEBUGREGS */ | 1088 | /* Available with KVM_CAP_DEBUGREGS */ |
| 1010 | #define KVM_GET_DEBUGREGS _IOR(KVMIO, 0xa1, struct kvm_debugregs) | 1089 | #define KVM_GET_DEBUGREGS _IOR(KVMIO, 0xa1, struct kvm_debugregs) |
| 1011 | #define KVM_SET_DEBUGREGS _IOW(KVMIO, 0xa2, struct kvm_debugregs) | 1090 | #define KVM_SET_DEBUGREGS _IOW(KVMIO, 0xa2, struct kvm_debugregs) |
| 1091 | /* | ||
| 1092 | * vcpu version available with KVM_ENABLE_CAP | ||
| 1093 | * vm version available with KVM_CAP_ENABLE_CAP_VM | ||
| 1094 | */ | ||
| 1012 | #define KVM_ENABLE_CAP _IOW(KVMIO, 0xa3, struct kvm_enable_cap) | 1095 | #define KVM_ENABLE_CAP _IOW(KVMIO, 0xa3, struct kvm_enable_cap) |
| 1013 | /* Available with KVM_CAP_XSAVE */ | 1096 | /* Available with KVM_CAP_XSAVE */ |
| 1014 | #define KVM_GET_XSAVE _IOR(KVMIO, 0xa4, struct kvm_xsave) | 1097 | #define KVM_GET_XSAVE _IOR(KVMIO, 0xa4, struct kvm_xsave) |
