122851890Sopenharmony_ci/**************************************************************************** 222851890Sopenharmony_ci **************************************************************************** 322851890Sopenharmony_ci *** 422851890Sopenharmony_ci *** This header was automatically generated from a Linux kernel header 522851890Sopenharmony_ci *** of the same name, to make information necessary for userspace to 622851890Sopenharmony_ci *** call into the kernel available to libc. It contains only constants, 722851890Sopenharmony_ci *** structures, and macros generated from the original header, and thus, 822851890Sopenharmony_ci *** contains no copyrightable information. 922851890Sopenharmony_ci *** 1022851890Sopenharmony_ci *** To edit the content of this header, modify the corresponding 1122851890Sopenharmony_ci *** source file (e.g. under external/kernel-headers/original/) then 1222851890Sopenharmony_ci *** run bionic/libc/kernel/tools/update_all.py 1322851890Sopenharmony_ci *** 1422851890Sopenharmony_ci *** Any manual change here will be lost the next time this script will 1522851890Sopenharmony_ci *** be run. You've been warned! 1622851890Sopenharmony_ci *** 1722851890Sopenharmony_ci **************************************************************************** 1822851890Sopenharmony_ci ****************************************************************************/ 1922851890Sopenharmony_ci#ifndef _ASM_X86_KVM_H 2022851890Sopenharmony_ci#define _ASM_X86_KVM_H 2122851890Sopenharmony_ci#include <linux/types.h> 2222851890Sopenharmony_ci#include <linux/ioctl.h> 2322851890Sopenharmony_ci#define KVM_PIO_PAGE_OFFSET 1 2422851890Sopenharmony_ci#define KVM_COALESCED_MMIO_PAGE_OFFSET 2 2522851890Sopenharmony_ci#define DE_VECTOR 0 2622851890Sopenharmony_ci#define DB_VECTOR 1 2722851890Sopenharmony_ci#define BP_VECTOR 3 2822851890Sopenharmony_ci#define OF_VECTOR 4 2922851890Sopenharmony_ci#define BR_VECTOR 5 3022851890Sopenharmony_ci#define UD_VECTOR 6 3122851890Sopenharmony_ci#define NM_VECTOR 7 3222851890Sopenharmony_ci#define DF_VECTOR 8 3322851890Sopenharmony_ci#define TS_VECTOR 10 3422851890Sopenharmony_ci#define NP_VECTOR 11 3522851890Sopenharmony_ci#define SS_VECTOR 12 3622851890Sopenharmony_ci#define GP_VECTOR 13 3722851890Sopenharmony_ci#define PF_VECTOR 14 3822851890Sopenharmony_ci#define MF_VECTOR 16 3922851890Sopenharmony_ci#define AC_VECTOR 17 4022851890Sopenharmony_ci#define MC_VECTOR 18 4122851890Sopenharmony_ci#define XM_VECTOR 19 4222851890Sopenharmony_ci#define VE_VECTOR 20 4322851890Sopenharmony_ci#define __KVM_HAVE_PIT 4422851890Sopenharmony_ci#define __KVM_HAVE_IOAPIC 4522851890Sopenharmony_ci#define __KVM_HAVE_IRQ_LINE 4622851890Sopenharmony_ci#define __KVM_HAVE_MSI 4722851890Sopenharmony_ci#define __KVM_HAVE_USER_NMI 4822851890Sopenharmony_ci#define __KVM_HAVE_GUEST_DEBUG 4922851890Sopenharmony_ci#define __KVM_HAVE_MSIX 5022851890Sopenharmony_ci#define __KVM_HAVE_MCE 5122851890Sopenharmony_ci#define __KVM_HAVE_PIT_STATE2 5222851890Sopenharmony_ci#define __KVM_HAVE_XEN_HVM 5322851890Sopenharmony_ci#define __KVM_HAVE_VCPU_EVENTS 5422851890Sopenharmony_ci#define __KVM_HAVE_DEBUGREGS 5522851890Sopenharmony_ci#define __KVM_HAVE_XSAVE 5622851890Sopenharmony_ci#define __KVM_HAVE_XCRS 5722851890Sopenharmony_ci#define __KVM_HAVE_READONLY_MEM 5822851890Sopenharmony_ci#define KVM_NR_INTERRUPTS 256 5922851890Sopenharmony_cistruct kvm_memory_alias { 6022851890Sopenharmony_ci __u32 slot; 6122851890Sopenharmony_ci __u32 flags; 6222851890Sopenharmony_ci __u64 guest_phys_addr; 6322851890Sopenharmony_ci __u64 memory_size; 6422851890Sopenharmony_ci __u64 target_phys_addr; 6522851890Sopenharmony_ci}; 6622851890Sopenharmony_cistruct kvm_pic_state { 6722851890Sopenharmony_ci __u8 last_irr; 6822851890Sopenharmony_ci __u8 irr; 6922851890Sopenharmony_ci __u8 imr; 7022851890Sopenharmony_ci __u8 isr; 7122851890Sopenharmony_ci __u8 priority_add; 7222851890Sopenharmony_ci __u8 irq_base; 7322851890Sopenharmony_ci __u8 read_reg_select; 7422851890Sopenharmony_ci __u8 poll; 7522851890Sopenharmony_ci __u8 special_mask; 7622851890Sopenharmony_ci __u8 init_state; 7722851890Sopenharmony_ci __u8 auto_eoi; 7822851890Sopenharmony_ci __u8 rotate_on_auto_eoi; 7922851890Sopenharmony_ci __u8 special_fully_nested_mode; 8022851890Sopenharmony_ci __u8 init4; 8122851890Sopenharmony_ci __u8 elcr; 8222851890Sopenharmony_ci __u8 elcr_mask; 8322851890Sopenharmony_ci}; 8422851890Sopenharmony_ci#define KVM_IOAPIC_NUM_PINS 24 8522851890Sopenharmony_cistruct kvm_ioapic_state { 8622851890Sopenharmony_ci __u64 base_address; 8722851890Sopenharmony_ci __u32 ioregsel; 8822851890Sopenharmony_ci __u32 id; 8922851890Sopenharmony_ci __u32 irr; 9022851890Sopenharmony_ci __u32 pad; 9122851890Sopenharmony_ci union { 9222851890Sopenharmony_ci __u64 bits; 9322851890Sopenharmony_ci struct { 9422851890Sopenharmony_ci __u8 vector; 9522851890Sopenharmony_ci __u8 delivery_mode : 3; 9622851890Sopenharmony_ci __u8 dest_mode : 1; 9722851890Sopenharmony_ci __u8 delivery_status : 1; 9822851890Sopenharmony_ci __u8 polarity : 1; 9922851890Sopenharmony_ci __u8 remote_irr : 1; 10022851890Sopenharmony_ci __u8 trig_mode : 1; 10122851890Sopenharmony_ci __u8 mask : 1; 10222851890Sopenharmony_ci __u8 reserve : 7; 10322851890Sopenharmony_ci __u8 reserved[4]; 10422851890Sopenharmony_ci __u8 dest_id; 10522851890Sopenharmony_ci } fields; 10622851890Sopenharmony_ci } redirtbl[KVM_IOAPIC_NUM_PINS]; 10722851890Sopenharmony_ci}; 10822851890Sopenharmony_ci#define KVM_IRQCHIP_PIC_MASTER 0 10922851890Sopenharmony_ci#define KVM_IRQCHIP_PIC_SLAVE 1 11022851890Sopenharmony_ci#define KVM_IRQCHIP_IOAPIC 2 11122851890Sopenharmony_ci#define KVM_NR_IRQCHIPS 3 11222851890Sopenharmony_ci#define KVM_RUN_X86_SMM (1 << 0) 11322851890Sopenharmony_cistruct kvm_regs { 11422851890Sopenharmony_ci __u64 rax, rbx, rcx, rdx; 11522851890Sopenharmony_ci __u64 rsi, rdi, rsp, rbp; 11622851890Sopenharmony_ci __u64 r8, r9, r10, r11; 11722851890Sopenharmony_ci __u64 r12, r13, r14, r15; 11822851890Sopenharmony_ci __u64 rip, rflags; 11922851890Sopenharmony_ci}; 12022851890Sopenharmony_ci#define KVM_APIC_REG_SIZE 0x400 12122851890Sopenharmony_cistruct kvm_lapic_state { 12222851890Sopenharmony_ci char regs[KVM_APIC_REG_SIZE]; 12322851890Sopenharmony_ci}; 12422851890Sopenharmony_cistruct kvm_segment { 12522851890Sopenharmony_ci __u64 base; 12622851890Sopenharmony_ci __u32 limit; 12722851890Sopenharmony_ci __u16 selector; 12822851890Sopenharmony_ci __u8 type; 12922851890Sopenharmony_ci __u8 present, dpl, db, s, l, g, avl; 13022851890Sopenharmony_ci __u8 unusable; 13122851890Sopenharmony_ci __u8 padding; 13222851890Sopenharmony_ci}; 13322851890Sopenharmony_cistruct kvm_dtable { 13422851890Sopenharmony_ci __u64 base; 13522851890Sopenharmony_ci __u16 limit; 13622851890Sopenharmony_ci __u16 padding[3]; 13722851890Sopenharmony_ci}; 13822851890Sopenharmony_cistruct kvm_sregs { 13922851890Sopenharmony_ci struct kvm_segment cs, ds, es, fs, gs, ss; 14022851890Sopenharmony_ci struct kvm_segment tr, ldt; 14122851890Sopenharmony_ci struct kvm_dtable gdt, idt; 14222851890Sopenharmony_ci __u64 cr0, cr2, cr3, cr4, cr8; 14322851890Sopenharmony_ci __u64 efer; 14422851890Sopenharmony_ci __u64 apic_base; 14522851890Sopenharmony_ci __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64]; 14622851890Sopenharmony_ci}; 14722851890Sopenharmony_cistruct kvm_fpu { 14822851890Sopenharmony_ci __u8 fpr[8][16]; 14922851890Sopenharmony_ci __u16 fcw; 15022851890Sopenharmony_ci __u16 fsw; 15122851890Sopenharmony_ci __u8 ftwx; 15222851890Sopenharmony_ci __u8 pad1; 15322851890Sopenharmony_ci __u16 last_opcode; 15422851890Sopenharmony_ci __u64 last_ip; 15522851890Sopenharmony_ci __u64 last_dp; 15622851890Sopenharmony_ci __u8 xmm[16][16]; 15722851890Sopenharmony_ci __u32 mxcsr; 15822851890Sopenharmony_ci __u32 pad2; 15922851890Sopenharmony_ci}; 16022851890Sopenharmony_cistruct kvm_msr_entry { 16122851890Sopenharmony_ci __u32 index; 16222851890Sopenharmony_ci __u32 reserved; 16322851890Sopenharmony_ci __u64 data; 16422851890Sopenharmony_ci}; 16522851890Sopenharmony_cistruct kvm_msrs { 16622851890Sopenharmony_ci __u32 nmsrs; 16722851890Sopenharmony_ci __u32 pad; 16822851890Sopenharmony_ci struct kvm_msr_entry entries[0]; 16922851890Sopenharmony_ci}; 17022851890Sopenharmony_cistruct kvm_msr_list { 17122851890Sopenharmony_ci __u32 nmsrs; 17222851890Sopenharmony_ci __u32 indices[0]; 17322851890Sopenharmony_ci}; 17422851890Sopenharmony_ci#define KVM_MSR_FILTER_MAX_BITMAP_SIZE 0x600 17522851890Sopenharmony_cistruct kvm_msr_filter_range { 17622851890Sopenharmony_ci#define KVM_MSR_FILTER_READ (1 << 0) 17722851890Sopenharmony_ci#define KVM_MSR_FILTER_WRITE (1 << 1) 17822851890Sopenharmony_ci __u32 flags; 17922851890Sopenharmony_ci __u32 nmsrs; 18022851890Sopenharmony_ci __u32 base; 18122851890Sopenharmony_ci __u8 * bitmap; 18222851890Sopenharmony_ci}; 18322851890Sopenharmony_ci#define KVM_MSR_FILTER_MAX_RANGES 16 18422851890Sopenharmony_cistruct kvm_msr_filter { 18522851890Sopenharmony_ci#define KVM_MSR_FILTER_DEFAULT_ALLOW (0 << 0) 18622851890Sopenharmony_ci#define KVM_MSR_FILTER_DEFAULT_DENY (1 << 0) 18722851890Sopenharmony_ci __u32 flags; 18822851890Sopenharmony_ci struct kvm_msr_filter_range ranges[KVM_MSR_FILTER_MAX_RANGES]; 18922851890Sopenharmony_ci}; 19022851890Sopenharmony_cistruct kvm_cpuid_entry { 19122851890Sopenharmony_ci __u32 function; 19222851890Sopenharmony_ci __u32 eax; 19322851890Sopenharmony_ci __u32 ebx; 19422851890Sopenharmony_ci __u32 ecx; 19522851890Sopenharmony_ci __u32 edx; 19622851890Sopenharmony_ci __u32 padding; 19722851890Sopenharmony_ci}; 19822851890Sopenharmony_cistruct kvm_cpuid { 19922851890Sopenharmony_ci __u32 nent; 20022851890Sopenharmony_ci __u32 padding; 20122851890Sopenharmony_ci struct kvm_cpuid_entry entries[0]; 20222851890Sopenharmony_ci}; 20322851890Sopenharmony_cistruct kvm_cpuid_entry2 { 20422851890Sopenharmony_ci __u32 function; 20522851890Sopenharmony_ci __u32 index; 20622851890Sopenharmony_ci __u32 flags; 20722851890Sopenharmony_ci __u32 eax; 20822851890Sopenharmony_ci __u32 ebx; 20922851890Sopenharmony_ci __u32 ecx; 21022851890Sopenharmony_ci __u32 edx; 21122851890Sopenharmony_ci __u32 padding[3]; 21222851890Sopenharmony_ci}; 21322851890Sopenharmony_ci#define KVM_CPUID_FLAG_SIGNIFCANT_INDEX (1 << 0) 21422851890Sopenharmony_ci#define KVM_CPUID_FLAG_STATEFUL_FUNC (1 << 1) 21522851890Sopenharmony_ci#define KVM_CPUID_FLAG_STATE_READ_NEXT (1 << 2) 21622851890Sopenharmony_cistruct kvm_cpuid2 { 21722851890Sopenharmony_ci __u32 nent; 21822851890Sopenharmony_ci __u32 padding; 21922851890Sopenharmony_ci struct kvm_cpuid_entry2 entries[0]; 22022851890Sopenharmony_ci}; 22122851890Sopenharmony_cistruct kvm_pit_channel_state { 22222851890Sopenharmony_ci __u32 count; 22322851890Sopenharmony_ci __u16 latched_count; 22422851890Sopenharmony_ci __u8 count_latched; 22522851890Sopenharmony_ci __u8 status_latched; 22622851890Sopenharmony_ci __u8 status; 22722851890Sopenharmony_ci __u8 read_state; 22822851890Sopenharmony_ci __u8 write_state; 22922851890Sopenharmony_ci __u8 write_latch; 23022851890Sopenharmony_ci __u8 rw_mode; 23122851890Sopenharmony_ci __u8 mode; 23222851890Sopenharmony_ci __u8 bcd; 23322851890Sopenharmony_ci __u8 gate; 23422851890Sopenharmony_ci __s64 count_load_time; 23522851890Sopenharmony_ci}; 23622851890Sopenharmony_cistruct kvm_debug_exit_arch { 23722851890Sopenharmony_ci __u32 exception; 23822851890Sopenharmony_ci __u32 pad; 23922851890Sopenharmony_ci __u64 pc; 24022851890Sopenharmony_ci __u64 dr6; 24122851890Sopenharmony_ci __u64 dr7; 24222851890Sopenharmony_ci}; 24322851890Sopenharmony_ci#define KVM_GUESTDBG_USE_SW_BP 0x00010000 24422851890Sopenharmony_ci#define KVM_GUESTDBG_USE_HW_BP 0x00020000 24522851890Sopenharmony_ci#define KVM_GUESTDBG_INJECT_DB 0x00040000 24622851890Sopenharmony_ci#define KVM_GUESTDBG_INJECT_BP 0x00080000 24722851890Sopenharmony_cistruct kvm_guest_debug_arch { 24822851890Sopenharmony_ci __u64 debugreg[8]; 24922851890Sopenharmony_ci}; 25022851890Sopenharmony_cistruct kvm_pit_state { 25122851890Sopenharmony_ci struct kvm_pit_channel_state channels[3]; 25222851890Sopenharmony_ci}; 25322851890Sopenharmony_ci#define KVM_PIT_FLAGS_HPET_LEGACY 0x00000001 25422851890Sopenharmony_cistruct kvm_pit_state2 { 25522851890Sopenharmony_ci struct kvm_pit_channel_state channels[3]; 25622851890Sopenharmony_ci __u32 flags; 25722851890Sopenharmony_ci __u32 reserved[9]; 25822851890Sopenharmony_ci}; 25922851890Sopenharmony_cistruct kvm_reinject_control { 26022851890Sopenharmony_ci __u8 pit_reinject; 26122851890Sopenharmony_ci __u8 reserved[31]; 26222851890Sopenharmony_ci}; 26322851890Sopenharmony_ci#define KVM_VCPUEVENT_VALID_NMI_PENDING 0x00000001 26422851890Sopenharmony_ci#define KVM_VCPUEVENT_VALID_SIPI_VECTOR 0x00000002 26522851890Sopenharmony_ci#define KVM_VCPUEVENT_VALID_SHADOW 0x00000004 26622851890Sopenharmony_ci#define KVM_VCPUEVENT_VALID_SMM 0x00000008 26722851890Sopenharmony_ci#define KVM_VCPUEVENT_VALID_PAYLOAD 0x00000010 26822851890Sopenharmony_ci#define KVM_X86_SHADOW_INT_MOV_SS 0x01 26922851890Sopenharmony_ci#define KVM_X86_SHADOW_INT_STI 0x02 27022851890Sopenharmony_cistruct kvm_vcpu_events { 27122851890Sopenharmony_ci struct { 27222851890Sopenharmony_ci __u8 injected; 27322851890Sopenharmony_ci __u8 nr; 27422851890Sopenharmony_ci __u8 has_error_code; 27522851890Sopenharmony_ci __u8 pending; 27622851890Sopenharmony_ci __u32 error_code; 27722851890Sopenharmony_ci } exception; 27822851890Sopenharmony_ci struct { 27922851890Sopenharmony_ci __u8 injected; 28022851890Sopenharmony_ci __u8 nr; 28122851890Sopenharmony_ci __u8 soft; 28222851890Sopenharmony_ci __u8 shadow; 28322851890Sopenharmony_ci } interrupt; 28422851890Sopenharmony_ci struct { 28522851890Sopenharmony_ci __u8 injected; 28622851890Sopenharmony_ci __u8 pending; 28722851890Sopenharmony_ci __u8 masked; 28822851890Sopenharmony_ci __u8 pad; 28922851890Sopenharmony_ci } nmi; 29022851890Sopenharmony_ci __u32 sipi_vector; 29122851890Sopenharmony_ci __u32 flags; 29222851890Sopenharmony_ci struct { 29322851890Sopenharmony_ci __u8 smm; 29422851890Sopenharmony_ci __u8 pending; 29522851890Sopenharmony_ci __u8 smm_inside_nmi; 29622851890Sopenharmony_ci __u8 latched_init; 29722851890Sopenharmony_ci } smi; 29822851890Sopenharmony_ci __u8 reserved[27]; 29922851890Sopenharmony_ci __u8 exception_has_payload; 30022851890Sopenharmony_ci __u64 exception_payload; 30122851890Sopenharmony_ci}; 30222851890Sopenharmony_cistruct kvm_debugregs { 30322851890Sopenharmony_ci __u64 db[4]; 30422851890Sopenharmony_ci __u64 dr6; 30522851890Sopenharmony_ci __u64 dr7; 30622851890Sopenharmony_ci __u64 flags; 30722851890Sopenharmony_ci __u64 reserved[9]; 30822851890Sopenharmony_ci}; 30922851890Sopenharmony_cistruct kvm_xsave { 31022851890Sopenharmony_ci __u32 region[1024]; 31122851890Sopenharmony_ci}; 31222851890Sopenharmony_ci#define KVM_MAX_XCRS 16 31322851890Sopenharmony_cistruct kvm_xcr { 31422851890Sopenharmony_ci __u32 xcr; 31522851890Sopenharmony_ci __u32 reserved; 31622851890Sopenharmony_ci __u64 value; 31722851890Sopenharmony_ci}; 31822851890Sopenharmony_cistruct kvm_xcrs { 31922851890Sopenharmony_ci __u32 nr_xcrs; 32022851890Sopenharmony_ci __u32 flags; 32122851890Sopenharmony_ci struct kvm_xcr xcrs[KVM_MAX_XCRS]; 32222851890Sopenharmony_ci __u64 padding[16]; 32322851890Sopenharmony_ci}; 32422851890Sopenharmony_ci#define KVM_SYNC_X86_REGS (1UL << 0) 32522851890Sopenharmony_ci#define KVM_SYNC_X86_SREGS (1UL << 1) 32622851890Sopenharmony_ci#define KVM_SYNC_X86_EVENTS (1UL << 2) 32722851890Sopenharmony_ci#define KVM_SYNC_X86_VALID_FIELDS (KVM_SYNC_X86_REGS | KVM_SYNC_X86_SREGS | KVM_SYNC_X86_EVENTS) 32822851890Sopenharmony_cistruct kvm_sync_regs { 32922851890Sopenharmony_ci struct kvm_regs regs; 33022851890Sopenharmony_ci struct kvm_sregs sregs; 33122851890Sopenharmony_ci struct kvm_vcpu_events events; 33222851890Sopenharmony_ci}; 33322851890Sopenharmony_ci#define KVM_X86_QUIRK_LINT0_REENABLED (1 << 0) 33422851890Sopenharmony_ci#define KVM_X86_QUIRK_CD_NW_CLEARED (1 << 1) 33522851890Sopenharmony_ci#define KVM_X86_QUIRK_LAPIC_MMIO_HOLE (1 << 2) 33622851890Sopenharmony_ci#define KVM_X86_QUIRK_OUT_7E_INC_RIP (1 << 3) 33722851890Sopenharmony_ci#define KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT (1 << 4) 33822851890Sopenharmony_ci#define KVM_STATE_NESTED_FORMAT_VMX 0 33922851890Sopenharmony_ci#define KVM_STATE_NESTED_FORMAT_SVM 1 34022851890Sopenharmony_ci#define KVM_STATE_NESTED_GUEST_MODE 0x00000001 34122851890Sopenharmony_ci#define KVM_STATE_NESTED_RUN_PENDING 0x00000002 34222851890Sopenharmony_ci#define KVM_STATE_NESTED_EVMCS 0x00000004 34322851890Sopenharmony_ci#define KVM_STATE_NESTED_MTF_PENDING 0x00000008 34422851890Sopenharmony_ci#define KVM_STATE_NESTED_GIF_SET 0x00000100 34522851890Sopenharmony_ci#define KVM_STATE_NESTED_SMM_GUEST_MODE 0x00000001 34622851890Sopenharmony_ci#define KVM_STATE_NESTED_SMM_VMXON 0x00000002 34722851890Sopenharmony_ci#define KVM_STATE_NESTED_VMX_VMCS_SIZE 0x1000 34822851890Sopenharmony_ci#define KVM_STATE_NESTED_SVM_VMCB_SIZE 0x1000 34922851890Sopenharmony_ci#define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE 0x00000001 35022851890Sopenharmony_cistruct kvm_vmx_nested_state_data { 35122851890Sopenharmony_ci __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE]; 35222851890Sopenharmony_ci __u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE]; 35322851890Sopenharmony_ci}; 35422851890Sopenharmony_cistruct kvm_vmx_nested_state_hdr { 35522851890Sopenharmony_ci __u64 vmxon_pa; 35622851890Sopenharmony_ci __u64 vmcs12_pa; 35722851890Sopenharmony_ci struct { 35822851890Sopenharmony_ci __u16 flags; 35922851890Sopenharmony_ci } smm; 36022851890Sopenharmony_ci __u32 flags; 36122851890Sopenharmony_ci __u64 preemption_timer_deadline; 36222851890Sopenharmony_ci}; 36322851890Sopenharmony_cistruct kvm_svm_nested_state_data { 36422851890Sopenharmony_ci __u8 vmcb12[KVM_STATE_NESTED_SVM_VMCB_SIZE]; 36522851890Sopenharmony_ci}; 36622851890Sopenharmony_cistruct kvm_svm_nested_state_hdr { 36722851890Sopenharmony_ci __u64 vmcb_pa; 36822851890Sopenharmony_ci}; 36922851890Sopenharmony_cistruct kvm_nested_state { 37022851890Sopenharmony_ci __u16 flags; 37122851890Sopenharmony_ci __u16 format; 37222851890Sopenharmony_ci __u32 size; 37322851890Sopenharmony_ci union { 37422851890Sopenharmony_ci struct kvm_vmx_nested_state_hdr vmx; 37522851890Sopenharmony_ci struct kvm_svm_nested_state_hdr svm; 37622851890Sopenharmony_ci __u8 pad[120]; 37722851890Sopenharmony_ci } hdr; 37822851890Sopenharmony_ci union { 37922851890Sopenharmony_ci struct kvm_vmx_nested_state_data vmx[0]; 38022851890Sopenharmony_ci struct kvm_svm_nested_state_data svm[0]; 38122851890Sopenharmony_ci } data; 38222851890Sopenharmony_ci}; 38322851890Sopenharmony_cistruct kvm_pmu_event_filter { 38422851890Sopenharmony_ci __u32 action; 38522851890Sopenharmony_ci __u32 nevents; 38622851890Sopenharmony_ci __u32 fixed_counter_bitmap; 38722851890Sopenharmony_ci __u32 flags; 38822851890Sopenharmony_ci __u32 pad[4]; 38922851890Sopenharmony_ci __u64 events[0]; 39022851890Sopenharmony_ci}; 39122851890Sopenharmony_ci#define KVM_PMU_EVENT_ALLOW 0 39222851890Sopenharmony_ci#define KVM_PMU_EVENT_DENY 1 39322851890Sopenharmony_ci#endif 394