@@ -134,6 +134,22 @@ pub const HWCAP_SSBS: u32 = 268435456;
134
134
pub const HWCAP_SB : u32 = 536870912 ;
135
135
pub const HWCAP_PACA : u32 = 1073741824 ;
136
136
pub const HWCAP_PACG : u32 = 2147483648 ;
137
+ pub const HWCAP_GCS : u64 = 4294967296 ;
138
+ pub const HWCAP_CMPBR : u64 = 8589934592 ;
139
+ pub const HWCAP_FPRCVT : u64 = 17179869184 ;
140
+ pub const HWCAP_F8MM8 : u64 = 34359738368 ;
141
+ pub const HWCAP_F8MM4 : u64 = 68719476736 ;
142
+ pub const HWCAP_SVE_F16MM : u64 = 137438953472 ;
143
+ pub const HWCAP_SVE_ELTPERM : u64 = 274877906944 ;
144
+ pub const HWCAP_SVE_AES2 : u64 = 549755813888 ;
145
+ pub const HWCAP_SVE_BFSCALE : u64 = 1099511627776 ;
146
+ pub const HWCAP_SVE2P2 : u64 = 2199023255552 ;
147
+ pub const HWCAP_SME2P2 : u64 = 4398046511104 ;
148
+ pub const HWCAP_SME_SBITPERM : u64 = 8796093022208 ;
149
+ pub const HWCAP_SME_AES : u64 = 17592186044416 ;
150
+ pub const HWCAP_SME_SFEXPA : u64 = 35184372088832 ;
151
+ pub const HWCAP_SME_STMOP : u64 = 70368744177664 ;
152
+ pub const HWCAP_SME_SMOP4 : u64 = 140737488355328 ;
137
153
pub const HWCAP2_DCPODP : u32 = 1 ;
138
154
pub const HWCAP2_SVE2 : u32 = 2 ;
139
155
pub const HWCAP2_SVEAES : u32 = 4 ;
@@ -197,6 +213,7 @@ pub const HWCAP2_SME_F8F32: u64 = 576460752303423488;
197
213
pub const HWCAP2_SME_SF8FMA : u64 = 1152921504606846976 ;
198
214
pub const HWCAP2_SME_SF8DP4 : u64 = 2305843009213693952 ;
199
215
pub const HWCAP2_SME_SF8DP2 : u64 = 4611686018427387904 ;
216
+ pub const HWCAP2_POE : i64 = -9223372036854775808 ;
200
217
pub const __SVE_VQ_BYTES: u32 = 16 ;
201
218
pub const __SVE_VQ_MIN: u32 = 1 ;
202
219
pub const __SVE_VQ_MAX: u32 = 512 ;
@@ -276,6 +293,7 @@ pub const KVM_ARM_VCPU_SVE: u32 = 4;
276
293
pub const KVM_ARM_VCPU_PTRAUTH_ADDRESS : u32 = 5 ;
277
294
pub const KVM_ARM_VCPU_PTRAUTH_GENERIC : u32 = 6 ;
278
295
pub const KVM_ARM_VCPU_HAS_EL2 : u32 = 7 ;
296
+ pub const KVM_ARM_VCPU_HAS_EL2_E2H0 : u32 = 8 ;
279
297
pub const KVM_ARM_MAX_DBG_REGS : u32 = 16 ;
280
298
pub const KVM_DEBUG_ARCH_HSR_HIGH_VALID : u32 = 1 ;
281
299
pub const KVM_GUESTDBG_USE_SW_BP : u32 = 65536 ;
@@ -348,6 +366,7 @@ pub const KVM_DEV_ARM_VGIC_GRP_REDIST_REGS: u32 = 5;
348
366
pub const KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS : u32 = 6 ;
349
367
pub const KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO : u32 = 7 ;
350
368
pub const KVM_DEV_ARM_VGIC_GRP_ITS_REGS : u32 = 8 ;
369
+ pub const KVM_DEV_ARM_VGIC_GRP_MAINT_IRQ : u32 = 9 ;
351
370
pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT : u32 = 10 ;
352
371
pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_MASK : u32 = 4294966272 ;
353
372
pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INTID_MASK : u32 = 1023 ;
@@ -390,6 +409,7 @@ pub const KVM_PSCI_RET_NI: i32 = -1;
390
409
pub const KVM_PSCI_RET_INVAL : i32 = -2 ;
391
410
pub const KVM_PSCI_RET_DENIED : i32 = -3 ;
392
411
pub const KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2 : u32 = 1 ;
412
+ pub const KVM_SYSTEM_EVENT_SHUTDOWN_FLAG_PSCI_OFF2 : u32 = 1 ;
393
413
pub const KVM_EXIT_FAIL_ENTRY_CPU_UNSUPPORTED : u32 = 1 ;
394
414
pub const KVM_HYPERCALL_EXIT_SMC : u32 = 1 ;
395
415
pub const KVM_HYPERCALL_EXIT_16BIT : u32 = 2 ;
@@ -483,7 +503,6 @@ pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1;
483
503
pub const KVM_X86_DISABLE_EXITS_HLT : u32 = 2 ;
484
504
pub const KVM_X86_DISABLE_EXITS_PAUSE : u32 = 4 ;
485
505
pub const KVM_X86_DISABLE_EXITS_CSTATE : u32 = 8 ;
486
- pub const KVM_X86_DISABLE_VALID_EXITS : u32 = 15 ;
487
506
pub const KVMIO : u32 = 174 ;
488
507
pub const KVM_VM_S390_UCONTROL : u32 = 1 ;
489
508
pub const KVM_VM_PPC_HV : u32 = 1 ;
@@ -715,6 +734,10 @@ pub const KVM_CAP_MEMORY_FAULT_INFO: u32 = 232;
715
734
pub const KVM_CAP_MEMORY_ATTRIBUTES : u32 = 233 ;
716
735
pub const KVM_CAP_GUEST_MEMFD : u32 = 234 ;
717
736
pub const KVM_CAP_VM_TYPES : u32 = 235 ;
737
+ pub const KVM_CAP_PRE_FAULT_MEMORY : u32 = 236 ;
738
+ pub const KVM_CAP_X86_APIC_BUS_CYCLES_NS : u32 = 237 ;
739
+ pub const KVM_CAP_X86_GUEST_MODE : u32 = 238 ;
740
+ pub const KVM_CAP_ARM_WRITABLE_IMP_ID_REGS : u32 = 239 ;
718
741
pub const KVM_IRQ_ROUTING_IRQCHIP : u32 = 1 ;
719
742
pub const KVM_IRQ_ROUTING_MSI : u32 = 2 ;
720
743
pub const KVM_IRQ_ROUTING_S390_ADAPTER : u32 = 3 ;
@@ -1057,6 +1080,23 @@ const _: () = {
1057
1080
[ :: std:: mem:: offset_of!( user_za_header, __reserved) - 14usize ] ;
1058
1081
} ;
1059
1082
#[ repr( C ) ]
1083
+ #[ derive( Debug , Default , Copy , Clone , PartialEq ) ]
1084
+ pub struct user_gcs {
1085
+ pub features_enabled : __u64 ,
1086
+ pub features_locked : __u64 ,
1087
+ pub gcspr_el0 : __u64 ,
1088
+ }
1089
+ #[ allow( clippy:: unnecessary_operation, clippy:: identity_op) ]
1090
+ const _: ( ) = {
1091
+ [ "Size of user_gcs" ] [ :: std:: mem:: size_of :: < user_gcs > ( ) - 24usize ] ;
1092
+ [ "Alignment of user_gcs" ] [ :: std:: mem:: align_of :: < user_gcs > ( ) - 8usize ] ;
1093
+ [ "Offset of field: user_gcs::features_enabled" ]
1094
+ [ :: std:: mem:: offset_of!( user_gcs, features_enabled) - 0usize ] ;
1095
+ [ "Offset of field: user_gcs::features_locked" ]
1096
+ [ :: std:: mem:: offset_of!( user_gcs, features_locked) - 8usize ] ;
1097
+ [ "Offset of field: user_gcs::gcspr_el0" ] [ :: std:: mem:: offset_of!( user_gcs, gcspr_el0) - 16usize ] ;
1098
+ } ;
1099
+ #[ repr( C ) ]
1060
1100
#[ repr( align( 16 ) ) ]
1061
1101
#[ derive( Debug , Default , Copy , Clone , PartialEq ) ]
1062
1102
#[ cfg_attr(
@@ -1286,6 +1326,9 @@ pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
1286
1326
pub const KVM_REG_ARM_VENDOR_HYP_BIT_FUNC_FEAT : _bindgen_ty_3 = 0 ;
1287
1327
pub const KVM_REG_ARM_VENDOR_HYP_BIT_PTP : _bindgen_ty_3 = 1 ;
1288
1328
pub type _bindgen_ty_3 = :: std:: os:: raw:: c_uint ;
1329
+ pub const KVM_REG_ARM_VENDOR_HYP_BIT_DISCOVER_IMPL_VER : _bindgen_ty_4 = 0 ;
1330
+ pub const KVM_REG_ARM_VENDOR_HYP_BIT_DISCOVER_IMPL_CPUS : _bindgen_ty_4 = 1 ;
1331
+ pub type _bindgen_ty_4 = :: std:: os:: raw:: c_uint ;
1289
1332
pub const kvm_smccc_filter_action_KVM_SMCCC_FILTER_HANDLE: kvm_smccc_filter_action = 0 ;
1290
1333
pub const kvm_smccc_filter_action_KVM_SMCCC_FILTER_DENY: kvm_smccc_filter_action = 1 ;
1291
1334
pub const kvm_smccc_filter_action_KVM_SMCCC_FILTER_FWD_TO_USER: kvm_smccc_filter_action = 2 ;
@@ -3076,13 +3119,13 @@ const _: () = {
3076
3119
[ "Offset of field: kvm_guest_debug::arch" ]
3077
3120
[ :: std:: mem:: offset_of!( kvm_guest_debug, arch) - 8usize ] ;
3078
3121
} ;
3079
- pub const kvm_ioeventfd_flag_nr_datamatch: _bindgen_ty_4 = 0 ;
3080
- pub const kvm_ioeventfd_flag_nr_pio: _bindgen_ty_4 = 1 ;
3081
- pub const kvm_ioeventfd_flag_nr_deassign: _bindgen_ty_4 = 2 ;
3082
- pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: _bindgen_ty_4 = 3 ;
3083
- pub const kvm_ioeventfd_flag_nr_fast_mmio: _bindgen_ty_4 = 4 ;
3084
- pub const kvm_ioeventfd_flag_nr_max: _bindgen_ty_4 = 5 ;
3085
- pub type _bindgen_ty_4 = :: std:: os:: raw:: c_uint ;
3122
+ pub const kvm_ioeventfd_flag_nr_datamatch: _bindgen_ty_5 = 0 ;
3123
+ pub const kvm_ioeventfd_flag_nr_pio: _bindgen_ty_5 = 1 ;
3124
+ pub const kvm_ioeventfd_flag_nr_deassign: _bindgen_ty_5 = 2 ;
3125
+ pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: _bindgen_ty_5 = 3 ;
3126
+ pub const kvm_ioeventfd_flag_nr_fast_mmio: _bindgen_ty_5 = 4 ;
3127
+ pub const kvm_ioeventfd_flag_nr_max: _bindgen_ty_5 = 5 ;
3128
+ pub type _bindgen_ty_5 = :: std:: os:: raw:: c_uint ;
3086
3129
#[ repr( C ) ]
3087
3130
#[ derive( Debug , Copy , Clone , PartialEq ) ]
3088
3131
pub struct kvm_ioeventfd {
@@ -3633,7 +3676,10 @@ pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8;
3633
3676
pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9 ;
3634
3677
pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10 ;
3635
3678
pub const kvm_device_type_KVM_DEV_TYPE_RISCV_AIA: kvm_device_type = 11 ;
3636
- pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 12 ;
3679
+ pub const kvm_device_type_KVM_DEV_TYPE_LOONGARCH_IPI: kvm_device_type = 12 ;
3680
+ pub const kvm_device_type_KVM_DEV_TYPE_LOONGARCH_EIOINTC: kvm_device_type = 13 ;
3681
+ pub const kvm_device_type_KVM_DEV_TYPE_LOONGARCH_PCHPIC: kvm_device_type = 14 ;
3682
+ pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 15 ;
3637
3683
pub type kvm_device_type = :: std:: os:: raw:: c_uint ;
3638
3684
#[ repr( C ) ]
3639
3685
#[ derive( Debug , Default , Copy , Clone , PartialEq ) ]
@@ -3779,4 +3825,25 @@ const _: () = {
3779
3825
[ "Offset of field: kvm_create_guest_memfd::reserved" ]
3780
3826
[ :: std:: mem:: offset_of!( kvm_create_guest_memfd, reserved) - 16usize ] ;
3781
3827
} ;
3828
+ #[ repr( C ) ]
3829
+ #[ derive( Debug , Default , Copy , Clone , PartialEq ) ]
3830
+ pub struct kvm_pre_fault_memory {
3831
+ pub gpa : __u64 ,
3832
+ pub size : __u64 ,
3833
+ pub flags : __u64 ,
3834
+ pub padding : [ __u64 ; 5usize ] ,
3835
+ }
3836
+ #[ allow( clippy:: unnecessary_operation, clippy:: identity_op) ]
3837
+ const _: ( ) = {
3838
+ [ "Size of kvm_pre_fault_memory" ] [ :: std:: mem:: size_of :: < kvm_pre_fault_memory > ( ) - 64usize ] ;
3839
+ [ "Alignment of kvm_pre_fault_memory" ] [ :: std:: mem:: align_of :: < kvm_pre_fault_memory > ( ) - 8usize ] ;
3840
+ [ "Offset of field: kvm_pre_fault_memory::gpa" ]
3841
+ [ :: std:: mem:: offset_of!( kvm_pre_fault_memory, gpa) - 0usize ] ;
3842
+ [ "Offset of field: kvm_pre_fault_memory::size" ]
3843
+ [ :: std:: mem:: offset_of!( kvm_pre_fault_memory, size) - 8usize ] ;
3844
+ [ "Offset of field: kvm_pre_fault_memory::flags" ]
3845
+ [ :: std:: mem:: offset_of!( kvm_pre_fault_memory, flags) - 16usize ] ;
3846
+ [ "Offset of field: kvm_pre_fault_memory::padding" ]
3847
+ [ :: std:: mem:: offset_of!( kvm_pre_fault_memory, padding) - 24usize ] ;
3848
+ } ;
3782
3849
pub type __uint128_t = u128 ;
0 commit comments