kvm.h (165fa4091e97bfafbf394acb446623b92998175f) | kvm.h (7a52ce8a160739c5d37469b0e344d3239eb86462) |
---|---|
1#ifndef __LINUX_KVM_H 2#define __LINUX_KVM_H 3 4/* 5 * Userspace interface for /dev/kvm - kernel based virtual machine 6 * 7 * Note: you must update KVM_API_VERSION if you change this interface. 8 */ --- 133 unchanged lines hidden (view full) --- 142/* for KVM_CREATE_PIT2 */ 143struct kvm_pit_config { 144 __u32 flags; 145 __u32 pad[15]; 146}; 147 148#define KVM_PIT_SPEAKER_DUMMY 1 149 | 1#ifndef __LINUX_KVM_H 2#define __LINUX_KVM_H 3 4/* 5 * Userspace interface for /dev/kvm - kernel based virtual machine 6 * 7 * Note: you must update KVM_API_VERSION if you change this interface. 8 */ --- 133 unchanged lines hidden (view full) --- 142/* for KVM_CREATE_PIT2 */ 143struct kvm_pit_config { 144 __u32 flags; 145 __u32 pad[15]; 146}; 147 148#define KVM_PIT_SPEAKER_DUMMY 1 149 |
150struct kvm_s390_skeys { 151 __u64 start_gfn; 152 __u64 count; 153 __u64 skeydata_addr; 154 __u32 flags; 155 __u32 reserved[9]; 156}; 157#define KVM_S390_GET_SKEYS_NONE 1 158#define KVM_S390_SKEYS_MAX 1048576 159 |
|
150#define KVM_EXIT_UNKNOWN 0 151#define KVM_EXIT_EXCEPTION 1 152#define KVM_EXIT_IO 2 153#define KVM_EXIT_HYPERCALL 3 154#define KVM_EXIT_DEBUG 4 155#define KVM_EXIT_HLT 5 156#define KVM_EXIT_MMIO 6 157#define KVM_EXIT_IRQ_WINDOW_OPEN 7 --- 9 unchanged lines hidden (view full) --- 167#define KVM_EXIT_INTERNAL_ERROR 17 168#define KVM_EXIT_OSI 18 169#define KVM_EXIT_PAPR_HCALL 19 170#define KVM_EXIT_S390_UCONTROL 20 171#define KVM_EXIT_WATCHDOG 21 172#define KVM_EXIT_S390_TSCH 22 173#define KVM_EXIT_EPR 23 174#define KVM_EXIT_SYSTEM_EVENT 24 | 160#define KVM_EXIT_UNKNOWN 0 161#define KVM_EXIT_EXCEPTION 1 162#define KVM_EXIT_IO 2 163#define KVM_EXIT_HYPERCALL 3 164#define KVM_EXIT_DEBUG 4 165#define KVM_EXIT_HLT 5 166#define KVM_EXIT_MMIO 6 167#define KVM_EXIT_IRQ_WINDOW_OPEN 7 --- 9 unchanged lines hidden (view full) --- 177#define KVM_EXIT_INTERNAL_ERROR 17 178#define KVM_EXIT_OSI 18 179#define KVM_EXIT_PAPR_HCALL 19 180#define KVM_EXIT_S390_UCONTROL 20 181#define KVM_EXIT_WATCHDOG 21 182#define KVM_EXIT_S390_TSCH 22 183#define KVM_EXIT_EPR 23 184#define KVM_EXIT_SYSTEM_EVENT 24 |
185#define KVM_EXIT_S390_STSI 25 |
|
175 176/* For KVM_EXIT_INTERNAL_ERROR */ 177/* Emulate instruction failed. */ 178#define KVM_INTERNAL_ERROR_EMULATION 1 179/* Encounter unexpected simultaneous exceptions. */ 180#define KVM_INTERNAL_ERROR_SIMUL_EX 2 181/* Encounter unexpected vm-exit due to delivery event. */ 182#define KVM_INTERNAL_ERROR_DELIVERY_EV 3 --- 121 unchanged lines hidden (view full) --- 304 } epr; 305 /* KVM_EXIT_SYSTEM_EVENT */ 306 struct { 307#define KVM_SYSTEM_EVENT_SHUTDOWN 1 308#define KVM_SYSTEM_EVENT_RESET 2 309 __u32 type; 310 __u64 flags; 311 } system_event; | 186 187/* For KVM_EXIT_INTERNAL_ERROR */ 188/* Emulate instruction failed. */ 189#define KVM_INTERNAL_ERROR_EMULATION 1 190/* Encounter unexpected simultaneous exceptions. */ 191#define KVM_INTERNAL_ERROR_SIMUL_EX 2 192/* Encounter unexpected vm-exit due to delivery event. */ 193#define KVM_INTERNAL_ERROR_DELIVERY_EV 3 --- 121 unchanged lines hidden (view full) --- 315 } epr; 316 /* KVM_EXIT_SYSTEM_EVENT */ 317 struct { 318#define KVM_SYSTEM_EVENT_SHUTDOWN 1 319#define KVM_SYSTEM_EVENT_RESET 2 320 __u32 type; 321 __u64 flags; 322 } system_event; |
323 /* KVM_EXIT_S390_STSI */ 324 struct { 325 __u64 addr; 326 __u8 ar; 327 __u8 reserved; 328 __u8 fc; 329 __u8 sel1; 330 __u16 sel2; 331 } s390_stsi; |
|
312 /* Fix the size of the union. */ 313 char padding[256]; 314 }; 315 316 /* 317 * shared registers between kvm and userspace. 318 * kvm_valid_regs specifies the register classes set by the host 319 * kvm_dirty_regs specified the register classes dirtied by userspace 320 * struct kvm_sync_regs is architecture specific, as well as the 321 * bits for kvm_valid_regs and kvm_dirty_regs 322 */ 323 __u64 kvm_valid_regs; 324 __u64 kvm_dirty_regs; 325 union { 326 struct kvm_sync_regs regs; | 332 /* Fix the size of the union. */ 333 char padding[256]; 334 }; 335 336 /* 337 * shared registers between kvm and userspace. 338 * kvm_valid_regs specifies the register classes set by the host 339 * kvm_dirty_regs specified the register classes dirtied by userspace 340 * struct kvm_sync_regs is architecture specific, as well as the 341 * bits for kvm_valid_regs and kvm_dirty_regs 342 */ 343 __u64 kvm_valid_regs; 344 __u64 kvm_dirty_regs; 345 union { 346 struct kvm_sync_regs regs; |
327 char padding[1024]; | 347 char padding[2048]; |
328 } s; 329}; 330 331/* for KVM_REGISTER_COALESCED_MMIO / KVM_UNREGISTER_COALESCED_MMIO */ 332 333struct kvm_coalesced_mmio_zone { 334 __u64 addr; 335 __u32 size; --- 24 unchanged lines hidden (view full) --- 360 /* out */ 361 __u64 physical_address; 362 __u8 valid; 363 __u8 writeable; 364 __u8 usermode; 365 __u8 pad[5]; 366}; 367 | 348 } s; 349}; 350 351/* for KVM_REGISTER_COALESCED_MMIO / KVM_UNREGISTER_COALESCED_MMIO */ 352 353struct kvm_coalesced_mmio_zone { 354 __u64 addr; 355 __u32 size; --- 24 unchanged lines hidden (view full) --- 380 /* out */ 381 __u64 physical_address; 382 __u8 valid; 383 __u8 writeable; 384 __u8 usermode; 385 __u8 pad[5]; 386}; 387 |
388/* for KVM_S390_MEM_OP */ 389struct kvm_s390_mem_op { 390 /* in */ 391 __u64 gaddr; /* the guest address */ 392 __u64 flags; /* flags */ 393 __u32 size; /* amount of bytes */ 394 __u32 op; /* type of operation */ 395 __u64 buf; /* buffer in userspace */ 396 __u8 ar; /* the access register number */ 397 __u8 reserved[31]; /* should be set to 0 */ 398}; 399/* types for kvm_s390_mem_op->op */ 400#define KVM_S390_MEMOP_LOGICAL_READ 0 401#define KVM_S390_MEMOP_LOGICAL_WRITE 1 402/* flags for kvm_s390_mem_op->flags */ 403#define KVM_S390_MEMOP_F_CHECK_ONLY (1ULL << 0) 404#define KVM_S390_MEMOP_F_INJECT_EXCEPTION (1ULL << 1) 405 |
|
368/* for KVM_INTERRUPT */ 369struct kvm_interrupt { 370 /* in */ 371 __u32 irq; 372}; 373 374/* for KVM_GET_DIRTY_LOG */ 375struct kvm_dirty_log { --- 139 unchanged lines hidden (view full) --- 515 struct kvm_s390_extcall_info extcall; 516 struct kvm_s390_prefix_info prefix; 517 struct kvm_s390_stop_info stop; 518 struct kvm_s390_mchk_info mchk; 519 char reserved[64]; 520 } u; 521}; 522 | 406/* for KVM_INTERRUPT */ 407struct kvm_interrupt { 408 /* in */ 409 __u32 irq; 410}; 411 412/* for KVM_GET_DIRTY_LOG */ 413struct kvm_dirty_log { --- 139 unchanged lines hidden (view full) --- 553 struct kvm_s390_extcall_info extcall; 554 struct kvm_s390_prefix_info prefix; 555 struct kvm_s390_stop_info stop; 556 struct kvm_s390_mchk_info mchk; 557 char reserved[64]; 558 } u; 559}; 560 |
561struct kvm_s390_irq_state { 562 __u64 buf; 563 __u32 flags; 564 __u32 len; 565 __u32 reserved[4]; 566}; 567 |
|
523/* for KVM_SET_GUEST_DEBUG */ 524 525#define KVM_GUESTDBG_ENABLE 0x00000001 526#define KVM_GUESTDBG_SINGLESTEP 0x00000002 527 528struct kvm_guest_debug { 529 __u32 control; 530 __u32 pad; --- 224 unchanged lines hidden (view full) --- 755#define KVM_CAP_S390_IRQCHIP 99 756#define KVM_CAP_IOEVENTFD_NO_LENGTH 100 757#define KVM_CAP_VM_ATTRIBUTES 101 758#define KVM_CAP_ARM_PSCI_0_2 102 759#define KVM_CAP_PPC_FIXUP_HCALL 103 760#define KVM_CAP_PPC_ENABLE_HCALL 104 761#define KVM_CAP_CHECK_EXTENSION_VM 105 762#define KVM_CAP_S390_USER_SIGP 106 | 568/* for KVM_SET_GUEST_DEBUG */ 569 570#define KVM_GUESTDBG_ENABLE 0x00000001 571#define KVM_GUESTDBG_SINGLESTEP 0x00000002 572 573struct kvm_guest_debug { 574 __u32 control; 575 __u32 pad; --- 224 unchanged lines hidden (view full) --- 800#define KVM_CAP_S390_IRQCHIP 99 801#define KVM_CAP_IOEVENTFD_NO_LENGTH 100 802#define KVM_CAP_VM_ATTRIBUTES 101 803#define KVM_CAP_ARM_PSCI_0_2 102 804#define KVM_CAP_PPC_FIXUP_HCALL 103 805#define KVM_CAP_PPC_ENABLE_HCALL 104 806#define KVM_CAP_CHECK_EXTENSION_VM 105 807#define KVM_CAP_S390_USER_SIGP 106 |
808#define KVM_CAP_S390_VECTOR_REGISTERS 107 809#define KVM_CAP_S390_MEM_OP 108 810#define KVM_CAP_S390_USER_STSI 109 811#define KVM_CAP_S390_SKEYS 110 812#define KVM_CAP_MIPS_FPU 111 813#define KVM_CAP_MIPS_MSA 112 814#define KVM_CAP_S390_INJECT_IRQ 113 815#define KVM_CAP_S390_IRQ_STATE 114 816#define KVM_CAP_PPC_HWRNG 115 |
|
763 764#ifdef KVM_CAP_IRQ_ROUTING 765 766struct kvm_irq_routing_irqchip { 767 __u32 irqchip; 768 __u32 pin; 769}; 770 --- 359 unchanged lines hidden (view full) --- 1130/* Available with KVM_CAP_ONE_REG */ 1131#define KVM_GET_ONE_REG _IOW(KVMIO, 0xab, struct kvm_one_reg) 1132#define KVM_SET_ONE_REG _IOW(KVMIO, 0xac, struct kvm_one_reg) 1133/* VM is being stopped by host */ 1134#define KVM_KVMCLOCK_CTRL _IO(KVMIO, 0xad) 1135#define KVM_ARM_VCPU_INIT _IOW(KVMIO, 0xae, struct kvm_vcpu_init) 1136#define KVM_ARM_PREFERRED_TARGET _IOR(KVMIO, 0xaf, struct kvm_vcpu_init) 1137#define KVM_GET_REG_LIST _IOWR(KVMIO, 0xb0, struct kvm_reg_list) | 817 818#ifdef KVM_CAP_IRQ_ROUTING 819 820struct kvm_irq_routing_irqchip { 821 __u32 irqchip; 822 __u32 pin; 823}; 824 --- 359 unchanged lines hidden (view full) --- 1184/* Available with KVM_CAP_ONE_REG */ 1185#define KVM_GET_ONE_REG _IOW(KVMIO, 0xab, struct kvm_one_reg) 1186#define KVM_SET_ONE_REG _IOW(KVMIO, 0xac, struct kvm_one_reg) 1187/* VM is being stopped by host */ 1188#define KVM_KVMCLOCK_CTRL _IO(KVMIO, 0xad) 1189#define KVM_ARM_VCPU_INIT _IOW(KVMIO, 0xae, struct kvm_vcpu_init) 1190#define KVM_ARM_PREFERRED_TARGET _IOR(KVMIO, 0xaf, struct kvm_vcpu_init) 1191#define KVM_GET_REG_LIST _IOWR(KVMIO, 0xb0, struct kvm_reg_list) |
1192/* Available with KVM_CAP_S390_MEM_OP */ 1193#define KVM_S390_MEM_OP _IOW(KVMIO, 0xb1, struct kvm_s390_mem_op) 1194/* Available with KVM_CAP_S390_SKEYS */ 1195#define KVM_S390_GET_SKEYS _IOW(KVMIO, 0xb2, struct kvm_s390_skeys) 1196#define KVM_S390_SET_SKEYS _IOW(KVMIO, 0xb3, struct kvm_s390_skeys) 1197/* Available with KVM_CAP_S390_INJECT_IRQ */ 1198#define KVM_S390_IRQ _IOW(KVMIO, 0xb4, struct kvm_s390_irq) 1199/* Available with KVM_CAP_S390_IRQ_STATE */ 1200#define KVM_S390_SET_IRQ_STATE _IOW(KVMIO, 0xb5, struct kvm_s390_irq_state) 1201#define KVM_S390_GET_IRQ_STATE _IOW(KVMIO, 0xb6, struct kvm_s390_irq_state) |
|
1138 1139#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) 1140#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1) 1141#define KVM_DEV_ASSIGN_MASK_INTX (1 << 2) 1142 1143struct kvm_assigned_pci_dev { 1144 __u32 assigned_dev_id; 1145 __u32 busnr; --- 44 unchanged lines hidden --- | 1202 1203#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) 1204#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1) 1205#define KVM_DEV_ASSIGN_MASK_INTX (1 << 2) 1206 1207struct kvm_assigned_pci_dev { 1208 __u32 assigned_dev_id; 1209 __u32 busnr; --- 44 unchanged lines hidden --- |