Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef __LINUX_KVM_H
     20 #define __LINUX_KVM_H
     21 #include <linux/types.h>
     22 #include <linux/compiler.h>
     23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     24 #include <linux/ioctl.h>
     25 #include <asm/kvm.h>
     26 #define KVM_API_VERSION 12
     27 #define KVM_TRC_SHIFT 16
     28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     29 #define KVM_TRC_ENTRYEXIT (1 << KVM_TRC_SHIFT)
     30 #define KVM_TRC_HANDLER (1 << (KVM_TRC_SHIFT + 1))
     31 #define KVM_TRC_VMENTRY (KVM_TRC_ENTRYEXIT + 0x01)
     32 #define KVM_TRC_VMEXIT (KVM_TRC_ENTRYEXIT + 0x02)
     33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     34 #define KVM_TRC_PAGE_FAULT (KVM_TRC_HANDLER + 0x01)
     35 #define KVM_TRC_HEAD_SIZE 12
     36 #define KVM_TRC_CYCLE_SIZE 8
     37 #define KVM_TRC_EXTRA_MAX 7
     38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     39 #define KVM_TRC_INJ_VIRQ (KVM_TRC_HANDLER + 0x02)
     40 #define KVM_TRC_REDELIVER_EVT (KVM_TRC_HANDLER + 0x03)
     41 #define KVM_TRC_PEND_INTR (KVM_TRC_HANDLER + 0x04)
     42 #define KVM_TRC_IO_READ (KVM_TRC_HANDLER + 0x05)
     43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     44 #define KVM_TRC_IO_WRITE (KVM_TRC_HANDLER + 0x06)
     45 #define KVM_TRC_CR_READ (KVM_TRC_HANDLER + 0x07)
     46 #define KVM_TRC_CR_WRITE (KVM_TRC_HANDLER + 0x08)
     47 #define KVM_TRC_DR_READ (KVM_TRC_HANDLER + 0x09)
     48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     49 #define KVM_TRC_DR_WRITE (KVM_TRC_HANDLER + 0x0A)
     50 #define KVM_TRC_MSR_READ (KVM_TRC_HANDLER + 0x0B)
     51 #define KVM_TRC_MSR_WRITE (KVM_TRC_HANDLER + 0x0C)
     52 #define KVM_TRC_CPUID (KVM_TRC_HANDLER + 0x0D)
     53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     54 #define KVM_TRC_INTR (KVM_TRC_HANDLER + 0x0E)
     55 #define KVM_TRC_NMI (KVM_TRC_HANDLER + 0x0F)
     56 #define KVM_TRC_VMMCALL (KVM_TRC_HANDLER + 0x10)
     57 #define KVM_TRC_HLT (KVM_TRC_HANDLER + 0x11)
     58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     59 #define KVM_TRC_CLTS (KVM_TRC_HANDLER + 0x12)
     60 #define KVM_TRC_LMSW (KVM_TRC_HANDLER + 0x13)
     61 #define KVM_TRC_APIC_ACCESS (KVM_TRC_HANDLER + 0x14)
     62 #define KVM_TRC_TDP_FAULT (KVM_TRC_HANDLER + 0x15)
     63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     64 #define KVM_TRC_GTLB_WRITE (KVM_TRC_HANDLER + 0x16)
     65 #define KVM_TRC_STLB_WRITE (KVM_TRC_HANDLER + 0x17)
     66 #define KVM_TRC_STLB_INVAL (KVM_TRC_HANDLER + 0x18)
     67 #define KVM_TRC_PPC_INSTR (KVM_TRC_HANDLER + 0x19)
     68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     69 struct kvm_user_trace_setup {
     70  __u32 buf_size;
     71  __u32 buf_nr;
     72 };
     73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     74 #define __KVM_DEPRECATED_MAIN_W_0x06   _IOW(KVMIO, 0x06, struct kvm_user_trace_setup)
     75 #define __KVM_DEPRECATED_MAIN_0x07 _IO(KVMIO, 0x07)
     76 #define __KVM_DEPRECATED_MAIN_0x08 _IO(KVMIO, 0x08)
     77 #define __KVM_DEPRECATED_VM_R_0x70 _IOR(KVMIO, 0x70, struct kvm_assigned_irq)
     78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     79 struct kvm_breakpoint {
     80  __u32 enabled;
     81  __u32 padding;
     82  __u64 address;
     83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     84 };
     85 struct kvm_debug_guest {
     86  __u32 enabled;
     87  __u32 pad;
     88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     89  struct kvm_breakpoint breakpoints[4];
     90  __u32 singlestep;
     91 };
     92 #define __KVM_DEPRECATED_VCPU_W_0x87 _IOW(KVMIO, 0x87, struct kvm_debug_guest)
     93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     94 struct kvm_memory_region {
     95  __u32 slot;
     96  __u32 flags;
     97  __u64 guest_phys_addr;
     98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     99  __u64 memory_size;
    100 };
    101 struct kvm_userspace_memory_region {
    102  __u32 slot;
    103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    104  __u32 flags;
    105  __u64 guest_phys_addr;
    106  __u64 memory_size;
    107  __u64 userspace_addr;
    108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    109 };
    110 #define KVM_MEM_LOG_DIRTY_PAGES (1UL << 0)
    111 #define KVM_MEM_READONLY (1UL << 1)
    112 struct kvm_irq_level {
    113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    114  union {
    115  __u32 irq;
    116  __s32 status;
    117  };
    118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    119  __u32 level;
    120 };
    121 struct kvm_irqchip {
    122  __u32 chip_id;
    123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    124  __u32 pad;
    125  union {
    126  char dummy[512];
    127 #ifdef __KVM_HAVE_PIT
    128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    129  struct kvm_pic_state pic;
    130 #endif
    131 #ifdef __KVM_HAVE_IOAPIC
    132  struct kvm_ioapic_state ioapic;
    133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    134 #endif
    135  } chip;
    136 };
    137 struct kvm_pit_config {
    138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    139  __u32 flags;
    140  __u32 pad[15];
    141 };
    142 #define KVM_PIT_SPEAKER_DUMMY 1
    143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    144 #define KVM_EXIT_UNKNOWN 0
    145 #define KVM_EXIT_EXCEPTION 1
    146 #define KVM_EXIT_IO 2
    147 #define KVM_EXIT_HYPERCALL 3
    148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    149 #define KVM_EXIT_DEBUG 4
    150 #define KVM_EXIT_HLT 5
    151 #define KVM_EXIT_MMIO 6
    152 #define KVM_EXIT_IRQ_WINDOW_OPEN 7
    153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    154 #define KVM_EXIT_SHUTDOWN 8
    155 #define KVM_EXIT_FAIL_ENTRY 9
    156 #define KVM_EXIT_INTR 10
    157 #define KVM_EXIT_SET_TPR 11
    158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    159 #define KVM_EXIT_TPR_ACCESS 12
    160 #define KVM_EXIT_S390_SIEIC 13
    161 #define KVM_EXIT_S390_RESET 14
    162 #define KVM_EXIT_DCR 15
    163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    164 #define KVM_EXIT_NMI 16
    165 #define KVM_EXIT_INTERNAL_ERROR 17
    166 #define KVM_EXIT_OSI 18
    167 #define KVM_EXIT_PAPR_HCALL 19
    168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    169 #define KVM_EXIT_S390_UCONTROL 20
    170 #define KVM_EXIT_WATCHDOG 21
    171 #define KVM_EXIT_S390_TSCH 22
    172 #define KVM_EXIT_EPR 23
    173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    174 #define KVM_INTERNAL_ERROR_EMULATION 1
    175 #define KVM_INTERNAL_ERROR_SIMUL_EX 2
    176 #define KVM_INTERNAL_ERROR_DELIVERY_EV 3
    177 struct kvm_run {
    178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    179  __u8 request_interrupt_window;
    180  __u8 padding1[7];
    181  __u32 exit_reason;
    182  __u8 ready_for_interrupt_injection;
    183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    184  __u8 if_flag;
    185  __u8 padding2[2];
    186  __u64 cr8;
    187  __u64 apic_base;
    188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    189 #ifdef __KVM_S390
    190  __u64 psw_mask;
    191  __u64 psw_addr;
    192 #endif
    193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    194  union {
    195  struct {
    196  __u64 hardware_exit_reason;
    197  } hw;
    198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    199  struct {
    200  __u64 hardware_entry_failure_reason;
    201  } fail_entry;
    202  struct {
    203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    204  __u32 exception;
    205  __u32 error_code;
    206  } ex;
    207  struct {
    208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    209 #define KVM_EXIT_IO_IN 0
    210 #define KVM_EXIT_IO_OUT 1
    211  __u8 direction;
    212  __u8 size;
    213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    214  __u16 port;
    215  __u32 count;
    216  __u64 data_offset;
    217  } io;
    218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    219  struct {
    220  struct kvm_debug_exit_arch arch;
    221  } debug;
    222  struct {
    223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    224  __u64 phys_addr;
    225  __u8 data[8];
    226  __u32 len;
    227  __u8 is_write;
    228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    229  } mmio;
    230  struct {
    231  __u64 nr;
    232  __u64 args[6];
    233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    234  __u64 ret;
    235  __u32 longmode;
    236  __u32 pad;
    237  } hypercall;
    238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    239  struct {
    240  __u64 rip;
    241  __u32 is_write;
    242  __u32 pad;
    243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    244  } tpr_access;
    245  struct {
    246  __u8 icptcode;
    247  __u16 ipa;
    248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    249  __u32 ipb;
    250  } s390_sieic;
    251 #define KVM_S390_RESET_POR 1
    252 #define KVM_S390_RESET_CLEAR 2
    253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    254 #define KVM_S390_RESET_SUBSYSTEM 4
    255 #define KVM_S390_RESET_CPU_INIT 8
    256 #define KVM_S390_RESET_IPL 16
    257  __u64 s390_reset_flags;
    258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    259  struct {
    260  __u64 trans_exc_code;
    261  __u32 pgm_code;
    262  } s390_ucontrol;
    263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    264  struct {
    265  __u32 dcrn;
    266  __u32 data;
    267  __u8 is_write;
    268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    269  } dcr;
    270  struct {
    271  __u32 suberror;
    272  __u32 ndata;
    273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    274  __u64 data[16];
    275  } internal;
    276  struct {
    277  __u64 gprs[32];
    278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    279  } osi;
    280  struct {
    281  __u64 nr;
    282  __u64 ret;
    283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    284  __u64 args[9];
    285  } papr_hcall;
    286  struct {
    287  __u16 subchannel_id;
    288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    289  __u16 subchannel_nr;
    290  __u32 io_int_parm;
    291  __u32 io_int_word;
    292  __u32 ipb;
    293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    294  __u8 dequeued;
    295  } s390_tsch;
    296  struct {
    297  __u32 epr;
    298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    299  } epr;
    300  char padding[256];
    301  };
    302  __u64 kvm_valid_regs;
    303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    304  __u64 kvm_dirty_regs;
    305  union {
    306  struct kvm_sync_regs regs;
    307  char padding[1024];
    308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    309  } s;
    310 };
    311 struct kvm_coalesced_mmio_zone {
    312  __u64 addr;
    313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    314  __u32 size;
    315  __u32 pad;
    316 };
    317 struct kvm_coalesced_mmio {
    318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    319  __u64 phys_addr;
    320  __u32 len;
    321  __u32 pad;
    322  __u8 data[8];
    323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    324 };
    325 struct kvm_coalesced_mmio_ring {
    326  __u32 first, last;
    327  struct kvm_coalesced_mmio coalesced_mmio[0];
    328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    329 };
    330 #define KVM_COALESCED_MMIO_MAX   ((PAGE_SIZE - sizeof(struct kvm_coalesced_mmio_ring)) /   sizeof(struct kvm_coalesced_mmio))
    331 struct kvm_translation {
    332  __u64 linear_address;
    333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    334  __u64 physical_address;
    335  __u8 valid;
    336  __u8 writeable;
    337  __u8 usermode;
    338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    339  __u8 pad[5];
    340 };
    341 struct kvm_interrupt {
    342  __u32 irq;
    343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    344 };
    345 struct kvm_dirty_log {
    346  __u32 slot;
    347  __u32 padding1;
    348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    349  union {
    350  void __user *dirty_bitmap;
    351  __u64 padding2;
    352  };
    353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    354 };
    355 struct kvm_signal_mask {
    356  __u32 len;
    357  __u8 sigset[0];
    358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    359 };
    360 struct kvm_tpr_access_ctl {
    361  __u32 enabled;
    362  __u32 flags;
    363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    364  __u32 reserved[8];
    365 };
    366 struct kvm_vapic_addr {
    367  __u64 vapic_addr;
    368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    369 };
    370 #define KVM_MP_STATE_RUNNABLE 0
    371 #define KVM_MP_STATE_UNINITIALIZED 1
    372 #define KVM_MP_STATE_INIT_RECEIVED 2
    373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    374 #define KVM_MP_STATE_HALTED 3
    375 #define KVM_MP_STATE_SIPI_RECEIVED 4
    376 struct kvm_mp_state {
    377  __u32 mp_state;
    378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    379 };
    380 struct kvm_s390_psw {
    381  __u64 mask;
    382  __u64 addr;
    383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    384 };
    385 #define KVM_S390_SIGP_STOP 0xfffe0000u
    386 #define KVM_S390_PROGRAM_INT 0xfffe0001u
    387 #define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u
    388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    389 #define KVM_S390_RESTART 0xfffe0003u
    390 #define KVM_S390_MCHK 0xfffe1000u
    391 #define KVM_S390_INT_VIRTIO 0xffff2603u
    392 #define KVM_S390_INT_SERVICE 0xffff2401u
    393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    394 #define KVM_S390_INT_EMERGENCY 0xffff1201u
    395 #define KVM_S390_INT_EXTERNAL_CALL 0xffff1202u
    396 #define KVM_S390_INT_IO(ai,cssid,ssid,schid)   (((schid)) |   ((ssid) << 16) |   ((cssid) << 18) |   ((ai) << 26))
    397 #define KVM_S390_INT_IO_MIN 0x00000000u
    398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    399 #define KVM_S390_INT_IO_MAX 0xfffdffffu
    400 struct kvm_s390_interrupt {
    401  __u32 type;
    402  __u32 parm;
    403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    404  __u64 parm64;
    405 };
    406 #define KVM_GUESTDBG_ENABLE 0x00000001
    407 #define KVM_GUESTDBG_SINGLESTEP 0x00000002
    408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    409 struct kvm_guest_debug {
    410  __u32 control;
    411  __u32 pad;
    412  struct kvm_guest_debug_arch arch;
    413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    414 };
    415 enum {
    416  kvm_ioeventfd_flag_nr_datamatch,
    417  kvm_ioeventfd_flag_nr_pio,
    418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    419  kvm_ioeventfd_flag_nr_deassign,
    420  kvm_ioeventfd_flag_nr_virtio_ccw_notify,
    421  kvm_ioeventfd_flag_nr_max,
    422 };
    423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    424 #define KVM_IOEVENTFD_FLAG_DATAMATCH (1 << kvm_ioeventfd_flag_nr_datamatch)
    425 #define KVM_IOEVENTFD_FLAG_PIO (1 << kvm_ioeventfd_flag_nr_pio)
    426 #define KVM_IOEVENTFD_FLAG_DEASSIGN (1 << kvm_ioeventfd_flag_nr_deassign)
    427 #define KVM_IOEVENTFD_FLAG_VIRTIO_CCW_NOTIFY   (1 << kvm_ioeventfd_flag_nr_virtio_ccw_notify)
    428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    429 #define KVM_IOEVENTFD_VALID_FLAG_MASK ((1 << kvm_ioeventfd_flag_nr_max) - 1)
    430 struct kvm_ioeventfd {
    431  __u64 datamatch;
    432  __u64 addr;
    433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    434  __u32 len;
    435  __s32 fd;
    436  __u32 flags;
    437  __u8 pad[36];
    438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    439 };
    440 struct kvm_enable_cap {
    441  __u32 cap;
    442  __u32 flags;
    443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    444  __u64 args[4];
    445  __u8 pad[64];
    446 };
    447 struct kvm_ppc_pvinfo {
    448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    449  __u32 flags;
    450  __u32 hcall[4];
    451  __u8 pad[108];
    452 };
    453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    454 #define KVM_PPC_PAGE_SIZES_MAX_SZ 8
    455 struct kvm_ppc_one_page_size {
    456  __u32 page_shift;
    457  __u32 pte_enc;
    458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    459 };
    460 struct kvm_ppc_one_seg_page_size {
    461  __u32 page_shift;
    462  __u32 slb_enc;
    463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    464  struct kvm_ppc_one_page_size enc[KVM_PPC_PAGE_SIZES_MAX_SZ];
    465 };
    466 #define KVM_PPC_PAGE_SIZES_REAL 0x00000001
    467 #define KVM_PPC_1T_SEGMENTS 0x00000002
    468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    469 struct kvm_ppc_smmu_info {
    470  __u64 flags;
    471  __u32 slb_size;
    472  __u32 pad;
    473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    474  struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ];
    475 };
    476 #define KVM_PPC_PVINFO_FLAGS_EV_IDLE (1<<0)
    477 #define KVMIO 0xAE
    478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    479 #define KVM_VM_S390_UCONTROL 1
    480 #define KVM_VM_PPC_HV 1
    481 #define KVM_VM_PPC_PR 2
    482 #define KVM_S390_SIE_PAGE_OFFSET 1
    483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    484 #define KVM_GET_API_VERSION _IO(KVMIO, 0x00)
    485 #define KVM_CREATE_VM _IO(KVMIO, 0x01)
    486 #define KVM_GET_MSR_INDEX_LIST _IOWR(KVMIO, 0x02, struct kvm_msr_list)
    487 #define KVM_S390_ENABLE_SIE _IO(KVMIO, 0x06)
    488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    489 #define KVM_CHECK_EXTENSION _IO(KVMIO, 0x03)
    490 #define KVM_GET_VCPU_MMAP_SIZE _IO(KVMIO, 0x04)
    491 #define KVM_GET_SUPPORTED_CPUID _IOWR(KVMIO, 0x05, struct kvm_cpuid2)
    492 #define KVM_TRACE_ENABLE __KVM_DEPRECATED_MAIN_W_0x06
    493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    494 #define KVM_TRACE_PAUSE __KVM_DEPRECATED_MAIN_0x07
    495 #define KVM_TRACE_DISABLE __KVM_DEPRECATED_MAIN_0x08
    496 #define KVM_GET_EMULATED_CPUID _IOWR(KVMIO, 0x09, struct kvm_cpuid2)
    497 #define KVM_CAP_IRQCHIP 0
    498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    499 #define KVM_CAP_HLT 1
    500 #define KVM_CAP_MMU_SHADOW_CACHE_CONTROL 2
    501 #define KVM_CAP_USER_MEMORY 3
    502 #define KVM_CAP_SET_TSS_ADDR 4
    503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    504 #define KVM_CAP_VAPIC 6
    505 #define KVM_CAP_EXT_CPUID 7
    506 #define KVM_CAP_CLOCKSOURCE 8
    507 #define KVM_CAP_NR_VCPUS 9
    508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    509 #define KVM_CAP_NR_MEMSLOTS 10
    510 #define KVM_CAP_PIT 11
    511 #define KVM_CAP_NOP_IO_DELAY 12
    512 #define KVM_CAP_PV_MMU 13
    513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    514 #define KVM_CAP_MP_STATE 14
    515 #define KVM_CAP_COALESCED_MMIO 15
    516 #define KVM_CAP_SYNC_MMU 16
    517 #define KVM_CAP_DEVICE_ASSIGNMENT 17
    518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    519 #define KVM_CAP_IOMMU 18
    520 #ifdef __KVM_HAVE_MSI
    521 #define KVM_CAP_DEVICE_MSI 20
    522 #endif
    523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    524 #define KVM_CAP_DESTROY_MEMORY_REGION_WORKS 21
    525 #ifdef __KVM_HAVE_USER_NMI
    526 #define KVM_CAP_USER_NMI 22
    527 #endif
    528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    529 #ifdef __KVM_HAVE_GUEST_DEBUG
    530 #define KVM_CAP_SET_GUEST_DEBUG 23
    531 #endif
    532 #ifdef __KVM_HAVE_PIT
    533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    534 #define KVM_CAP_REINJECT_CONTROL 24
    535 #endif
    536 #define KVM_CAP_IRQ_ROUTING 25
    537 #define KVM_CAP_IRQ_INJECT_STATUS 26
    538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    539 #define KVM_CAP_DEVICE_DEASSIGNMENT 27
    540 #ifdef __KVM_HAVE_MSIX
    541 #define KVM_CAP_DEVICE_MSIX 28
    542 #endif
    543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    544 #define KVM_CAP_ASSIGN_DEV_IRQ 29
    545 #define KVM_CAP_JOIN_MEMORY_REGIONS_WORKS 30
    546 #ifdef __KVM_HAVE_MCE
    547 #define KVM_CAP_MCE 31
    548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    549 #endif
    550 #define KVM_CAP_IRQFD 32
    551 #ifdef __KVM_HAVE_PIT
    552 #define KVM_CAP_PIT2 33
    553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    554 #endif
    555 #define KVM_CAP_SET_BOOT_CPU_ID 34
    556 #ifdef __KVM_HAVE_PIT_STATE2
    557 #define KVM_CAP_PIT_STATE2 35
    558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    559 #endif
    560 #define KVM_CAP_IOEVENTFD 36
    561 #define KVM_CAP_SET_IDENTITY_MAP_ADDR 37
    562 #ifdef __KVM_HAVE_XEN_HVM
    563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    564 #define KVM_CAP_XEN_HVM 38
    565 #endif
    566 #define KVM_CAP_ADJUST_CLOCK 39
    567 #define KVM_CAP_INTERNAL_ERROR_DATA 40
    568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    569 #ifdef __KVM_HAVE_VCPU_EVENTS
    570 #define KVM_CAP_VCPU_EVENTS 41
    571 #endif
    572 #define KVM_CAP_S390_PSW 42
    573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    574 #define KVM_CAP_PPC_SEGSTATE 43
    575 #define KVM_CAP_HYPERV 44
    576 #define KVM_CAP_HYPERV_VAPIC 45
    577 #define KVM_CAP_HYPERV_SPIN 46
    578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    579 #define KVM_CAP_PCI_SEGMENT 47
    580 #define KVM_CAP_PPC_PAIRED_SINGLES 48
    581 #define KVM_CAP_INTR_SHADOW 49
    582 #ifdef __KVM_HAVE_DEBUGREGS
    583 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    584 #define KVM_CAP_DEBUGREGS 50
    585 #endif
    586 #define KVM_CAP_X86_ROBUST_SINGLESTEP 51
    587 #define KVM_CAP_PPC_OSI 52
    588 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    589 #define KVM_CAP_PPC_UNSET_IRQ 53
    590 #define KVM_CAP_ENABLE_CAP 54
    591 #ifdef __KVM_HAVE_XSAVE
    592 #define KVM_CAP_XSAVE 55
    593 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    594 #endif
    595 #ifdef __KVM_HAVE_XCRS
    596 #define KVM_CAP_XCRS 56
    597 #endif
    598 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    599 #define KVM_CAP_PPC_GET_PVINFO 57
    600 #define KVM_CAP_PPC_IRQ_LEVEL 58
    601 #define KVM_CAP_ASYNC_PF 59
    602 #define KVM_CAP_TSC_CONTROL 60
    603 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    604 #define KVM_CAP_GET_TSC_KHZ 61
    605 #define KVM_CAP_PPC_BOOKE_SREGS 62
    606 #define KVM_CAP_SPAPR_TCE 63
    607 #define KVM_CAP_PPC_SMT 64
    608 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    609 #define KVM_CAP_PPC_RMA 65
    610 #define KVM_CAP_MAX_VCPUS 66
    611 #define KVM_CAP_PPC_HIOR 67
    612 #define KVM_CAP_PPC_PAPR 68
    613 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    614 #define KVM_CAP_SW_TLB 69
    615 #define KVM_CAP_ONE_REG 70
    616 #define KVM_CAP_S390_GMAP 71
    617 #define KVM_CAP_TSC_DEADLINE_TIMER 72
    618 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    619 #define KVM_CAP_S390_UCONTROL 73
    620 #define KVM_CAP_SYNC_REGS 74
    621 #define KVM_CAP_PCI_2_3 75
    622 #define KVM_CAP_KVMCLOCK_CTRL 76
    623 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    624 #define KVM_CAP_SIGNAL_MSI 77
    625 #define KVM_CAP_PPC_GET_SMMU_INFO 78
    626 #define KVM_CAP_S390_COW 79
    627 #define KVM_CAP_PPC_ALLOC_HTAB 80
    628 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    629 #ifdef __KVM_HAVE_READONLY_MEM
    630 #define KVM_CAP_READONLY_MEM 81
    631 #endif
    632 #define KVM_CAP_IRQFD_RESAMPLE 82
    633 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    634 #define KVM_CAP_PPC_BOOKE_WATCHDOG 83
    635 #define KVM_CAP_PPC_HTAB_FD 84
    636 #define KVM_CAP_S390_CSS_SUPPORT 85
    637 #define KVM_CAP_PPC_EPR 86
    638 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    639 #define KVM_CAP_ARM_PSCI 87
    640 #define KVM_CAP_ARM_SET_DEVICE_ADDR 88
    641 #define KVM_CAP_DEVICE_CTRL 89
    642 #define KVM_CAP_IRQ_MPIC 90
    643 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    644 #define KVM_CAP_PPC_RTAS 91
    645 #define KVM_CAP_IRQ_XICS 92
    646 #define KVM_CAP_ARM_EL1_32BIT 93
    647 #define KVM_CAP_SPAPR_MULTITCE 94
    648 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    649 #define KVM_CAP_EXT_EMUL_CPUID 95
    650 #define KVM_CAP_HYPERV_TIME 96
    651 #ifdef KVM_CAP_IRQ_ROUTING
    652 struct kvm_irq_routing_irqchip {
    653 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    654  __u32 irqchip;
    655  __u32 pin;
    656 };
    657 struct kvm_irq_routing_msi {
    658 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    659  __u32 address_lo;
    660  __u32 address_hi;
    661  __u32 data;
    662  __u32 pad;
    663 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    664 };
    665 #define KVM_IRQ_ROUTING_IRQCHIP 1
    666 #define KVM_IRQ_ROUTING_MSI 2
    667 struct kvm_irq_routing_entry {
    668 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    669  __u32 gsi;
    670  __u32 type;
    671  __u32 flags;
    672  __u32 pad;
    673 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    674  union {
    675  struct kvm_irq_routing_irqchip irqchip;
    676  struct kvm_irq_routing_msi msi;
    677  __u32 pad[8];
    678 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    679  } u;
    680 };
    681 struct kvm_irq_routing {
    682  __u32 nr;
    683 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    684  __u32 flags;
    685  struct kvm_irq_routing_entry entries[0];
    686 };
    687 #endif
    688 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    689 #ifdef KVM_CAP_MCE
    690 struct kvm_x86_mce {
    691  __u64 status;
    692  __u64 addr;
    693 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    694  __u64 misc;
    695  __u64 mcg_status;
    696  __u8 bank;
    697  __u8 pad1[7];
    698 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    699  __u64 pad2[3];
    700 };
    701 #endif
    702 #ifdef KVM_CAP_XEN_HVM
    703 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    704 struct kvm_xen_hvm_config {
    705  __u32 flags;
    706  __u32 msr;
    707  __u64 blob_addr_32;
    708 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    709  __u64 blob_addr_64;
    710  __u8 blob_size_32;
    711  __u8 blob_size_64;
    712  __u8 pad2[30];
    713 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    714 };
    715 #endif
    716 #define KVM_IRQFD_FLAG_DEASSIGN (1 << 0)
    717 #define KVM_IRQFD_FLAG_RESAMPLE (1 << 1)
    718 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    719 struct kvm_irqfd {
    720  __u32 fd;
    721  __u32 gsi;
    722  __u32 flags;
    723 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    724  __u32 resamplefd;
    725  __u8 pad[16];
    726 };
    727 struct kvm_clock_data {
    728 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    729  __u64 clock;
    730  __u32 flags;
    731  __u32 pad[9];
    732 };
    733 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    734 #define KVM_MMU_FSL_BOOKE_NOHV 0
    735 #define KVM_MMU_FSL_BOOKE_HV 1
    736 struct kvm_config_tlb {
    737  __u64 params;
    738 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    739  __u64 array;
    740  __u32 mmu_type;
    741  __u32 array_len;
    742 };
    743 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    744 struct kvm_dirty_tlb {
    745  __u64 bitmap;
    746  __u32 num_dirty;
    747 };
    748 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    749 #define KVM_REG_ARCH_MASK 0xff00000000000000ULL
    750 #define KVM_REG_GENERIC 0x0000000000000000ULL
    751 #define KVM_REG_PPC 0x1000000000000000ULL
    752 #define KVM_REG_X86 0x2000000000000000ULL
    753 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    754 #define KVM_REG_IA64 0x3000000000000000ULL
    755 #define KVM_REG_ARM 0x4000000000000000ULL
    756 #define KVM_REG_S390 0x5000000000000000ULL
    757 #define KVM_REG_ARM64 0x6000000000000000ULL
    758 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    759 #define KVM_REG_MIPS 0x7000000000000000ULL
    760 #define KVM_REG_SIZE_SHIFT 52
    761 #define KVM_REG_SIZE_MASK 0x00f0000000000000ULL
    762 #define KVM_REG_SIZE_U8 0x0000000000000000ULL
    763 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    764 #define KVM_REG_SIZE_U16 0x0010000000000000ULL
    765 #define KVM_REG_SIZE_U32 0x0020000000000000ULL
    766 #define KVM_REG_SIZE_U64 0x0030000000000000ULL
    767 #define KVM_REG_SIZE_U128 0x0040000000000000ULL
    768 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    769 #define KVM_REG_SIZE_U256 0x0050000000000000ULL
    770 #define KVM_REG_SIZE_U512 0x0060000000000000ULL
    771 #define KVM_REG_SIZE_U1024 0x0070000000000000ULL
    772 struct kvm_reg_list {
    773 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    774  __u64 n;
    775  __u64 reg[0];
    776 };
    777 struct kvm_one_reg {
    778 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    779  __u64 id;
    780  __u64 addr;
    781 };
    782 struct kvm_msi {
    783 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    784  __u32 address_lo;
    785  __u32 address_hi;
    786  __u32 data;
    787  __u32 flags;
    788 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    789  __u8 pad[16];
    790 };
    791 struct kvm_arm_device_addr {
    792  __u64 id;
    793 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    794  __u64 addr;
    795 };
    796 #define KVM_CREATE_DEVICE_TEST 1
    797 struct kvm_create_device {
    798 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    799  __u32 type;
    800  __u32 fd;
    801  __u32 flags;
    802 };
    803 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    804 struct kvm_device_attr {
    805  __u32 flags;
    806  __u32 group;
    807  __u64 attr;
    808 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    809  __u64 addr;
    810 };
    811 #define KVM_DEV_TYPE_FSL_MPIC_20 1
    812 #define KVM_DEV_TYPE_FSL_MPIC_42 2
    813 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    814 #define KVM_DEV_TYPE_XICS 3
    815 #define KVM_DEV_TYPE_VFIO 4
    816 #define KVM_DEV_VFIO_GROUP 1
    817 #define KVM_DEV_VFIO_GROUP_ADD 1
    818 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    819 #define KVM_DEV_VFIO_GROUP_DEL 2
    820 #define KVM_DEV_TYPE_ARM_VGIC_V2 5
    821 #define KVM_SET_MEMORY_REGION _IOW(KVMIO, 0x40, struct kvm_memory_region)
    822 #define KVM_CREATE_VCPU _IO(KVMIO, 0x41)
    823 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    824 #define KVM_GET_DIRTY_LOG _IOW(KVMIO, 0x42, struct kvm_dirty_log)
    825 #define KVM_SET_MEMORY_ALIAS _IOW(KVMIO, 0x43, struct kvm_memory_alias)
    826 #define KVM_SET_NR_MMU_PAGES _IO(KVMIO, 0x44)
    827 #define KVM_GET_NR_MMU_PAGES _IO(KVMIO, 0x45)
    828 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    829 #define KVM_SET_USER_MEMORY_REGION _IOW(KVMIO, 0x46,   struct kvm_userspace_memory_region)
    830 #define KVM_SET_TSS_ADDR _IO(KVMIO, 0x47)
    831 #define KVM_SET_IDENTITY_MAP_ADDR _IOW(KVMIO, 0x48, __u64)
    832 struct kvm_s390_ucas_mapping {
    833 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    834  __u64 user_addr;
    835  __u64 vcpu_addr;
    836  __u64 length;
    837 };
    838 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    839 #define KVM_S390_UCAS_MAP _IOW(KVMIO, 0x50, struct kvm_s390_ucas_mapping)
    840 #define KVM_S390_UCAS_UNMAP _IOW(KVMIO, 0x51, struct kvm_s390_ucas_mapping)
    841 #define KVM_S390_VCPU_FAULT _IOW(KVMIO, 0x52, unsigned long)
    842 #define KVM_CREATE_IRQCHIP _IO(KVMIO, 0x60)
    843 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    844 #define KVM_IRQ_LINE _IOW(KVMIO, 0x61, struct kvm_irq_level)
    845 #define KVM_GET_IRQCHIP _IOWR(KVMIO, 0x62, struct kvm_irqchip)
    846 #define KVM_SET_IRQCHIP _IOR(KVMIO, 0x63, struct kvm_irqchip)
    847 #define KVM_CREATE_PIT _IO(KVMIO, 0x64)
    848 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    849 #define KVM_GET_PIT _IOWR(KVMIO, 0x65, struct kvm_pit_state)
    850 #define KVM_SET_PIT _IOR(KVMIO, 0x66, struct kvm_pit_state)
    851 #define KVM_IRQ_LINE_STATUS _IOWR(KVMIO, 0x67, struct kvm_irq_level)
    852 #define KVM_REGISTER_COALESCED_MMIO   _IOW(KVMIO, 0x67, struct kvm_coalesced_mmio_zone)
    853 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    854 #define KVM_UNREGISTER_COALESCED_MMIO   _IOW(KVMIO, 0x68, struct kvm_coalesced_mmio_zone)
    855 #define KVM_ASSIGN_PCI_DEVICE _IOR(KVMIO, 0x69,   struct kvm_assigned_pci_dev)
    856 #define KVM_SET_GSI_ROUTING _IOW(KVMIO, 0x6a, struct kvm_irq_routing)
    857 #define KVM_ASSIGN_IRQ __KVM_DEPRECATED_VM_R_0x70
    858 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    859 #define KVM_ASSIGN_DEV_IRQ _IOW(KVMIO, 0x70, struct kvm_assigned_irq)
    860 #define KVM_REINJECT_CONTROL _IO(KVMIO, 0x71)
    861 #define KVM_DEASSIGN_PCI_DEVICE _IOW(KVMIO, 0x72,   struct kvm_assigned_pci_dev)
    862 #define KVM_ASSIGN_SET_MSIX_NR _IOW(KVMIO, 0x73,   struct kvm_assigned_msix_nr)
    863 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    864 #define KVM_ASSIGN_SET_MSIX_ENTRY _IOW(KVMIO, 0x74,   struct kvm_assigned_msix_entry)
    865 #define KVM_DEASSIGN_DEV_IRQ _IOW(KVMIO, 0x75, struct kvm_assigned_irq)
    866 #define KVM_IRQFD _IOW(KVMIO, 0x76, struct kvm_irqfd)
    867 #define KVM_CREATE_PIT2 _IOW(KVMIO, 0x77, struct kvm_pit_config)
    868 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    869 #define KVM_SET_BOOT_CPU_ID _IO(KVMIO, 0x78)
    870 #define KVM_IOEVENTFD _IOW(KVMIO, 0x79, struct kvm_ioeventfd)
    871 #define KVM_XEN_HVM_CONFIG _IOW(KVMIO, 0x7a, struct kvm_xen_hvm_config)
    872 #define KVM_SET_CLOCK _IOW(KVMIO, 0x7b, struct kvm_clock_data)
    873 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    874 #define KVM_GET_CLOCK _IOR(KVMIO, 0x7c, struct kvm_clock_data)
    875 #define KVM_GET_PIT2 _IOR(KVMIO, 0x9f, struct kvm_pit_state2)
    876 #define KVM_SET_PIT2 _IOW(KVMIO, 0xa0, struct kvm_pit_state2)
    877 #define KVM_PPC_GET_PVINFO _IOW(KVMIO, 0xa1, struct kvm_ppc_pvinfo)
    878 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    879 #define KVM_SET_TSC_KHZ _IO(KVMIO, 0xa2)
    880 #define KVM_GET_TSC_KHZ _IO(KVMIO, 0xa3)
    881 #define KVM_ASSIGN_SET_INTX_MASK _IOW(KVMIO, 0xa4,   struct kvm_assigned_pci_dev)
    882 #define KVM_SIGNAL_MSI _IOW(KVMIO, 0xa5, struct kvm_msi)
    883 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    884 #define KVM_PPC_GET_SMMU_INFO _IOR(KVMIO, 0xa6, struct kvm_ppc_smmu_info)
    885 #define KVM_PPC_ALLOCATE_HTAB _IOWR(KVMIO, 0xa7, __u32)
    886 #define KVM_CREATE_SPAPR_TCE _IOW(KVMIO, 0xa8, struct kvm_create_spapr_tce)
    887 #define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma)
    888 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    889 #define KVM_PPC_GET_HTAB_FD _IOW(KVMIO, 0xaa, struct kvm_get_htab_fd)
    890 #define KVM_ARM_SET_DEVICE_ADDR _IOW(KVMIO, 0xab, struct kvm_arm_device_addr)
    891 #define KVM_PPC_RTAS_DEFINE_TOKEN _IOW(KVMIO, 0xac, struct kvm_rtas_token_args)
    892 #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
    893 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    894 #define KVM_SET_DEVICE_ATTR _IOW(KVMIO, 0xe1, struct kvm_device_attr)
    895 #define KVM_GET_DEVICE_ATTR _IOW(KVMIO, 0xe2, struct kvm_device_attr)
    896 #define KVM_HAS_DEVICE_ATTR _IOW(KVMIO, 0xe3, struct kvm_device_attr)
    897 #define KVM_RUN _IO(KVMIO, 0x80)
    898 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    899 #define KVM_GET_REGS _IOR(KVMIO, 0x81, struct kvm_regs)
    900 #define KVM_SET_REGS _IOW(KVMIO, 0x82, struct kvm_regs)
    901 #define KVM_GET_SREGS _IOR(KVMIO, 0x83, struct kvm_sregs)
    902 #define KVM_SET_SREGS _IOW(KVMIO, 0x84, struct kvm_sregs)
    903 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    904 #define KVM_TRANSLATE _IOWR(KVMIO, 0x85, struct kvm_translation)
    905 #define KVM_INTERRUPT _IOW(KVMIO, 0x86, struct kvm_interrupt)
    906 #define KVM_DEBUG_GUEST __KVM_DEPRECATED_VCPU_W_0x87
    907 #define KVM_GET_MSRS _IOWR(KVMIO, 0x88, struct kvm_msrs)
    908 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    909 #define KVM_SET_MSRS _IOW(KVMIO, 0x89, struct kvm_msrs)
    910 #define KVM_SET_CPUID _IOW(KVMIO, 0x8a, struct kvm_cpuid)
    911 #define KVM_SET_SIGNAL_MASK _IOW(KVMIO, 0x8b, struct kvm_signal_mask)
    912 #define KVM_GET_FPU _IOR(KVMIO, 0x8c, struct kvm_fpu)
    913 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    914 #define KVM_SET_FPU _IOW(KVMIO, 0x8d, struct kvm_fpu)
    915 #define KVM_GET_LAPIC _IOR(KVMIO, 0x8e, struct kvm_lapic_state)
    916 #define KVM_SET_LAPIC _IOW(KVMIO, 0x8f, struct kvm_lapic_state)
    917 #define KVM_SET_CPUID2 _IOW(KVMIO, 0x90, struct kvm_cpuid2)
    918 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    919 #define KVM_GET_CPUID2 _IOWR(KVMIO, 0x91, struct kvm_cpuid2)
    920 #define KVM_TPR_ACCESS_REPORTING _IOWR(KVMIO, 0x92, struct kvm_tpr_access_ctl)
    921 #define KVM_SET_VAPIC_ADDR _IOW(KVMIO, 0x93, struct kvm_vapic_addr)
    922 #define KVM_S390_INTERRUPT _IOW(KVMIO, 0x94, struct kvm_s390_interrupt)
    923 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    924 #define KVM_S390_STORE_STATUS_NOADDR (-1ul)
    925 #define KVM_S390_STORE_STATUS_PREFIXED (-2ul)
    926 #define KVM_S390_STORE_STATUS _IOW(KVMIO, 0x95, unsigned long)
    927 #define KVM_S390_SET_INITIAL_PSW _IOW(KVMIO, 0x96, struct kvm_s390_psw)
    928 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    929 #define KVM_S390_INITIAL_RESET _IO(KVMIO, 0x97)
    930 #define KVM_GET_MP_STATE _IOR(KVMIO, 0x98, struct kvm_mp_state)
    931 #define KVM_SET_MP_STATE _IOW(KVMIO, 0x99, struct kvm_mp_state)
    932 #define KVM_NMI _IO(KVMIO, 0x9a)
    933 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    934 #define KVM_SET_GUEST_DEBUG _IOW(KVMIO, 0x9b, struct kvm_guest_debug)
    935 #define KVM_X86_SETUP_MCE _IOW(KVMIO, 0x9c, __u64)
    936 #define KVM_X86_GET_MCE_CAP_SUPPORTED _IOR(KVMIO, 0x9d, __u64)
    937 #define KVM_X86_SET_MCE _IOW(KVMIO, 0x9e, struct kvm_x86_mce)
    938 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    939 #define KVM_IA64_VCPU_GET_STACK _IOR(KVMIO, 0x9a, void *)
    940 #define KVM_IA64_VCPU_SET_STACK _IOW(KVMIO, 0x9b, void *)
    941 #define KVM_GET_VCPU_EVENTS _IOR(KVMIO, 0x9f, struct kvm_vcpu_events)
    942 #define KVM_SET_VCPU_EVENTS _IOW(KVMIO, 0xa0, struct kvm_vcpu_events)
    943 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    944 #define KVM_GET_DEBUGREGS _IOR(KVMIO, 0xa1, struct kvm_debugregs)
    945 #define KVM_SET_DEBUGREGS _IOW(KVMIO, 0xa2, struct kvm_debugregs)
    946 #define KVM_ENABLE_CAP _IOW(KVMIO, 0xa3, struct kvm_enable_cap)
    947 #define KVM_GET_XSAVE _IOR(KVMIO, 0xa4, struct kvm_xsave)
    948 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    949 #define KVM_SET_XSAVE _IOW(KVMIO, 0xa5, struct kvm_xsave)
    950 #define KVM_GET_XCRS _IOR(KVMIO, 0xa6, struct kvm_xcrs)
    951 #define KVM_SET_XCRS _IOW(KVMIO, 0xa7, struct kvm_xcrs)
    952 #define KVM_DIRTY_TLB _IOW(KVMIO, 0xaa, struct kvm_dirty_tlb)
    953 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    954 #define KVM_GET_ONE_REG _IOW(KVMIO, 0xab, struct kvm_one_reg)
    955 #define KVM_SET_ONE_REG _IOW(KVMIO, 0xac, struct kvm_one_reg)
    956 #define KVM_KVMCLOCK_CTRL _IO(KVMIO, 0xad)
    957 #define KVM_ARM_VCPU_INIT _IOW(KVMIO, 0xae, struct kvm_vcpu_init)
    958 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    959 #define KVM_ARM_PREFERRED_TARGET _IOR(KVMIO, 0xaf, struct kvm_vcpu_init)
    960 #define KVM_GET_REG_LIST _IOWR(KVMIO, 0xb0, struct kvm_reg_list)
    961 #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
    962 #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
    963 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    964 #define KVM_DEV_ASSIGN_MASK_INTX (1 << 2)
    965 struct kvm_assigned_pci_dev {
    966  __u32 assigned_dev_id;
    967  __u32 busnr;
    968 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    969  __u32 devfn;
    970  __u32 flags;
    971  __u32 segnr;
    972  union {
    973 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    974  __u32 reserved[11];
    975  };
    976 };
    977 #define KVM_DEV_IRQ_HOST_INTX (1 << 0)
    978 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    979 #define KVM_DEV_IRQ_HOST_MSI (1 << 1)
    980 #define KVM_DEV_IRQ_HOST_MSIX (1 << 2)
    981 #define KVM_DEV_IRQ_GUEST_INTX (1 << 8)
    982 #define KVM_DEV_IRQ_GUEST_MSI (1 << 9)
    983 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    984 #define KVM_DEV_IRQ_GUEST_MSIX (1 << 10)
    985 #define KVM_DEV_IRQ_HOST_MASK 0x00ff
    986 #define KVM_DEV_IRQ_GUEST_MASK 0xff00
    987 struct kvm_assigned_irq {
    988 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    989  __u32 assigned_dev_id;
    990  __u32 host_irq;
    991  __u32 guest_irq;
    992  __u32 flags;
    993 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    994  union {
    995  __u32 reserved[12];
    996  };
    997 };
    998 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    999 struct kvm_assigned_msix_nr {
   1000  __u32 assigned_dev_id;
   1001  __u16 entry_nr;
   1002  __u16 padding;
   1003 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   1004 };
   1005 #define KVM_MAX_MSIX_PER_DEV 256
   1006 struct kvm_assigned_msix_entry {
   1007  __u32 assigned_dev_id;
   1008 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   1009  __u32 gsi;
   1010  __u16 entry;
   1011  __u16 padding[3];
   1012 };
   1013 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   1014 #endif
   1015