@@ -866,6 +866,10 @@ struct kvm_ppc_smmu_info {
866
866
#define KVM_CAP_ARM_PMU_V3 126
867
867
#define KVM_CAP_VCPU_ATTRIBUTES 127
868
868
#define KVM_CAP_MAX_VCPU_ID 128
869
+ #define KVM_CAP_X2APIC_API 129
870
+ #define KVM_CAP_S390_USER_INSTR0 130
871
+ #define KVM_CAP_MSI_DEVID 131
872
+ #define KVM_CAP_PPC_HTM 132
869
873
870
874
#ifdef KVM_CAP_IRQ_ROUTING
871
875
@@ -878,7 +882,10 @@ struct kvm_irq_routing_msi {
878
882
__u32 address_lo ;
879
883
__u32 address_hi ;
880
884
__u32 data ;
881
- __u32 pad ;
885
+ union {
886
+ __u32 pad ;
887
+ __u32 devid ;
888
+ };
882
889
};
883
890
884
891
struct kvm_irq_routing_s390_adapter {
@@ -1024,12 +1031,14 @@ struct kvm_one_reg {
1024
1031
__u64 addr ;
1025
1032
};
1026
1033
1034
+ #define KVM_MSI_VALID_DEVID (1U << 0)
1027
1035
struct kvm_msi {
1028
1036
__u32 address_lo ;
1029
1037
__u32 address_hi ;
1030
1038
__u32 data ;
1031
1039
__u32 flags ;
1032
- __u8 pad [16 ];
1040
+ __u32 devid ;
1041
+ __u8 pad [12 ];
1033
1042
};
1034
1043
1035
1044
struct kvm_arm_device_addr {
@@ -1074,6 +1083,8 @@ enum kvm_device_type {
1074
1083
#define KVM_DEV_TYPE_FLIC KVM_DEV_TYPE_FLIC
1075
1084
KVM_DEV_TYPE_ARM_VGIC_V3 ,
1076
1085
#define KVM_DEV_TYPE_ARM_VGIC_V3 KVM_DEV_TYPE_ARM_VGIC_V3
1086
+ KVM_DEV_TYPE_ARM_VGIC_ITS ,
1087
+ #define KVM_DEV_TYPE_ARM_VGIC_ITS KVM_DEV_TYPE_ARM_VGIC_ITS
1077
1088
KVM_DEV_TYPE_MAX ,
1078
1089
};
1079
1090
@@ -1313,4 +1324,7 @@ struct kvm_assigned_msix_entry {
1313
1324
__u16 padding [3 ];
1314
1325
};
1315
1326
1327
+ #define KVM_X2APIC_API_USE_32BIT_IDS (1ULL << 0)
1328
+ #define KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK (1ULL << 1)
1329
+
1316
1330
#endif /* __LINUX_KVM_H */
0 commit comments