1abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/**************************************************************************** 2abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes **************************************************************************** 3abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes *** 4abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes *** This header was automatically generated from a Linux kernel header 5abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes *** of the same name, to make information necessary for userspace to 6abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes *** call into the kernel available to libc. It contains only constants, 7abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes *** structures, and macros generated from the original header, and thus, 8abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes *** contains no copyrightable information. 9abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes *** 10abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes *** To edit the content of this header, modify the corresponding 11abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes *** source file (e.g. under external/kernel-headers/original/) then 12abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes *** run bionic/libc/kernel/tools/update_all.py 13abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes *** 14abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes *** Any manual change here will be lost the next time this script will 15abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes *** be run. You've been warned! 16abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes *** 17abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes **************************************************************************** 18abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes ****************************************************************************/ 19abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#ifndef _ASM_X86_KVM_H 20abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define _ASM_X86_KVM_H 21abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#include <linux/types.h> 22abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#include <linux/ioctl.h> 23abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define DE_VECTOR 0 25abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define DB_VECTOR 1 26abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define BP_VECTOR 3 27abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define OF_VECTOR 4 28abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define BR_VECTOR 5 30abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define UD_VECTOR 6 31abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define NM_VECTOR 7 32abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define DF_VECTOR 8 33abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define TS_VECTOR 10 35abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define NP_VECTOR 11 36abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define SS_VECTOR 12 37abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define GP_VECTOR 13 38abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define PF_VECTOR 14 40abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define MF_VECTOR 16 41abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define MC_VECTOR 18 42abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_PIT 43abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_IOAPIC 45abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_IRQ_LINE 46abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_MSI 47abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_USER_NMI 48abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_GUEST_DEBUG 50abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_MSIX 51abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_MCE 52abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_PIT_STATE2 53abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_XEN_HVM 55abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_VCPU_EVENTS 56abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_DEBUGREGS 57abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_XSAVE 58abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_XCRS 60abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define __KVM_HAVE_READONLY_MEM 61abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_NR_INTERRUPTS 256 62abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_memory_alias { 63abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 slot; 65abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 flags; 66abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 guest_phys_addr; 67abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 memory_size; 68abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 target_phys_addr; 70abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 71abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_pic_state { 72abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 last_irr; 73abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 irr; 75abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 imr; 76abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 isr; 77abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 priority_add; 78abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 irq_base; 80abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 read_reg_select; 81abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 poll; 82abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 special_mask; 83abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 init_state; 85abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 auto_eoi; 86abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 rotate_on_auto_eoi; 87abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 special_fully_nested_mode; 88abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 init4; 90abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 elcr; 91abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 elcr_mask; 92abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 93abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_IOAPIC_NUM_PINS 24 95abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_ioapic_state { 96abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 base_address; 97abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 ioregsel; 98abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 id; 100abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 irr; 101abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 pad; 102abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes union { 103abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 bits; 105abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes struct { 106abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 vector; 107abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 delivery_mode:3; 108abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 dest_mode:1; 110abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 delivery_status:1; 111abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 polarity:1; 112abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 remote_irr:1; 113abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 trig_mode:1; 115abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 mask:1; 116abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 reserve:7; 117abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 reserved[4]; 118abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 dest_id; 120abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes } fields; 121abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes } redirtbl[KVM_IOAPIC_NUM_PINS]; 122abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 123abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_IRQCHIP_PIC_MASTER 0 125abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_IRQCHIP_PIC_SLAVE 1 126abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_IRQCHIP_IOAPIC 2 127abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_NR_IRQCHIPS 3 128abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_regs { 130abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 rax, rbx, rcx, rdx; 131abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 rsi, rdi, rsp, rbp; 132abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 r8, r9, r10, r11; 133abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 r12, r13, r14, r15; 135abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 rip, rflags; 136abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 137abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_APIC_REG_SIZE 0x400 138abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_lapic_state { 140abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes char regs[KVM_APIC_REG_SIZE]; 141abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 142abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_segment { 143abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 base; 145abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 limit; 146abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u16 selector; 147abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 type; 148abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 present, dpl, db, s, l, g, avl; 150abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 unusable; 151abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 padding; 152abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 153abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_dtable { 155abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 base; 156abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u16 limit; 157abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u16 padding[3]; 158abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 160abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_sregs { 161abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes struct kvm_segment cs, ds, es, fs, gs, ss; 162abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes struct kvm_segment tr, ldt; 163abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes struct kvm_dtable gdt, idt; 165abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 cr0, cr2, cr3, cr4, cr8; 166abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 efer; 167abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 apic_base; 168abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64]; 170abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 171abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_fpu { 172abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 fpr[8][16]; 173abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u16 fcw; 175abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u16 fsw; 176abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 ftwx; 177abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 pad1; 178abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u16 last_opcode; 180abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 last_ip; 181abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 last_dp; 182abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 xmm[16][16]; 183abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 mxcsr; 185abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 pad2; 186abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 187abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_msr_entry { 188abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 index; 190abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 reserved; 191abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 data; 192abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 193abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_msrs { 195abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 nmsrs; 196abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 pad; 197abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes struct kvm_msr_entry entries[0]; 198abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 200abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_msr_list { 201abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 nmsrs; 202abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 indices[0]; 203abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 204abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 205abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_cpuid_entry { 206abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 function; 207abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 eax; 208abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 209abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 ebx; 210abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 ecx; 211abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 edx; 212abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 padding; 213abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 214abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 215abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_cpuid { 216abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 nent; 217abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 padding; 218abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 219abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes struct kvm_cpuid_entry entries[0]; 220abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 221abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_cpuid_entry2 { 222abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 function; 223abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 224abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 index; 225abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 flags; 226abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 eax; 227abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 ebx; 228abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 229abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 ecx; 230abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 edx; 231abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 padding[3]; 232abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 233abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 23438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_CPUID_FLAG_SIGNIFCANT_INDEX BIT(0) 23538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_CPUID_FLAG_STATEFUL_FUNC BIT(1) 23638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_CPUID_FLAG_STATE_READ_NEXT BIT(2) 237abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_cpuid2 { 238abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 239abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 nent; 240abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 padding; 241abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes struct kvm_cpuid_entry2 entries[0]; 242abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 243abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 244abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_pit_channel_state { 245abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 count; 246abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u16 latched_count; 247abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 count_latched; 248abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 249abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 status_latched; 250abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 status; 251abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 read_state; 252abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 write_state; 253abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 254abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 write_latch; 255abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 rw_mode; 256abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 mode; 257abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 bcd; 258abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 259abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 gate; 260abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __s64 count_load_time; 261abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 262abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_debug_exit_arch { 263abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 264abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 exception; 265abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 pad; 266abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 pc; 267abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 dr6; 268abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 269abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 dr7; 270abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 271abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_GUESTDBG_USE_SW_BP 0x00010000 272abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_GUESTDBG_USE_HW_BP 0x00020000 273abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 274abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_GUESTDBG_INJECT_DB 0x00040000 275abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_GUESTDBG_INJECT_BP 0x00080000 276abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_guest_debug_arch { 277abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 debugreg[8]; 278abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 279abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 280abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_pit_state { 281abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes struct kvm_pit_channel_state channels[3]; 282abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 283abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 284abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_PIT_FLAGS_HPET_LEGACY 0x00000001 285abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_pit_state2 { 286abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes struct kvm_pit_channel_state channels[3]; 287abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 flags; 288abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 289abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 reserved[9]; 290abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 291abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_reinject_control { 292abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 pit_reinject; 293abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 294abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 reserved[31]; 295abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 296abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_VCPUEVENT_VALID_NMI_PENDING 0x00000001 297abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_VCPUEVENT_VALID_SIPI_VECTOR 0x00000002 298abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 299abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_VCPUEVENT_VALID_SHADOW 0x00000004 300abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_X86_SHADOW_INT_MOV_SS 0x01 301abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_X86_SHADOW_INT_STI 0x02 302abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_vcpu_events { 303abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 304abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes struct { 305abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 injected; 306abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 nr; 307abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 has_error_code; 308abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 309abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 pad; 310abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 error_code; 311abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes } exception; 312abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes struct { 313abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 314abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 injected; 315abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 nr; 316abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 soft; 317abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 shadow; 318abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 319abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes } interrupt; 320abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes struct { 321abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 injected; 322abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 pending; 323abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 324abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 masked; 325abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u8 pad; 326abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes } nmi; 327abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 sipi_vector; 328abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 329abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 flags; 330abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 reserved[10]; 331abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 332abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_debugregs { 333abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 334abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 db[4]; 335abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 dr6; 336abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 dr7; 337abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 flags; 338abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 339abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 reserved[9]; 340abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 341abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_xsave { 342abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 region[1024]; 343abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 344abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 345abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#define KVM_MAX_XCRS 16 346abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_xcr { 347abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 xcr; 348abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 349abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 reserved; 350abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 value; 351abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 352abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_xcrs { 353abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 354abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 nr_xcrs; 355abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u32 flags; 356abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes struct kvm_xcr xcrs[KVM_MAX_XCRS]; 357abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes __u64 padding[16]; 358abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 359abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 360abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughesstruct kvm_sync_regs { 361abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes}; 362abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes#endif 363abd626117cfd366faa16a5d0ac4621f608a5c887Elliott Hughes/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 364