diff options
-rw-r--r-- | include/linux/kvm.h | 235 |
1 files changed, 117 insertions, 118 deletions
diff --git a/include/linux/kvm.h b/include/linux/kvm.h index 6ed1a12ed526..ca62b8e056f9 100644 --- a/include/linux/kvm.h +++ b/include/linux/kvm.h | |||
@@ -14,12 +14,76 @@ | |||
14 | 14 | ||
15 | #define KVM_API_VERSION 12 | 15 | #define KVM_API_VERSION 12 |
16 | 16 | ||
17 | /* for KVM_TRACE_ENABLE, deprecated */ | 17 | /* *** Deprecated interfaces *** */ |
18 | |||
19 | #define KVM_TRC_SHIFT 16 | ||
20 | |||
21 | #define KVM_TRC_ENTRYEXIT (1 << KVM_TRC_SHIFT) | ||
22 | #define KVM_TRC_HANDLER (1 << (KVM_TRC_SHIFT + 1)) | ||
23 | |||
24 | #define KVM_TRC_VMENTRY (KVM_TRC_ENTRYEXIT + 0x01) | ||
25 | #define KVM_TRC_VMEXIT (KVM_TRC_ENTRYEXIT + 0x02) | ||
26 | #define KVM_TRC_PAGE_FAULT (KVM_TRC_HANDLER + 0x01) | ||
27 | |||
28 | #define KVM_TRC_HEAD_SIZE 12 | ||
29 | #define KVM_TRC_CYCLE_SIZE 8 | ||
30 | #define KVM_TRC_EXTRA_MAX 7 | ||
31 | |||
32 | #define KVM_TRC_INJ_VIRQ (KVM_TRC_HANDLER + 0x02) | ||
33 | #define KVM_TRC_REDELIVER_EVT (KVM_TRC_HANDLER + 0x03) | ||
34 | #define KVM_TRC_PEND_INTR (KVM_TRC_HANDLER + 0x04) | ||
35 | #define KVM_TRC_IO_READ (KVM_TRC_HANDLER + 0x05) | ||
36 | #define KVM_TRC_IO_WRITE (KVM_TRC_HANDLER + 0x06) | ||
37 | #define KVM_TRC_CR_READ (KVM_TRC_HANDLER + 0x07) | ||
38 | #define KVM_TRC_CR_WRITE (KVM_TRC_HANDLER + 0x08) | ||
39 | #define KVM_TRC_DR_READ (KVM_TRC_HANDLER + 0x09) | ||
40 | #define KVM_TRC_DR_WRITE (KVM_TRC_HANDLER + 0x0A) | ||
41 | #define KVM_TRC_MSR_READ (KVM_TRC_HANDLER + 0x0B) | ||
42 | #define KVM_TRC_MSR_WRITE (KVM_TRC_HANDLER + 0x0C) | ||
43 | #define KVM_TRC_CPUID (KVM_TRC_HANDLER + 0x0D) | ||
44 | #define KVM_TRC_INTR (KVM_TRC_HANDLER + 0x0E) | ||
45 | #define KVM_TRC_NMI (KVM_TRC_HANDLER + 0x0F) | ||
46 | #define KVM_TRC_VMMCALL (KVM_TRC_HANDLER + 0x10) | ||
47 | #define KVM_TRC_HLT (KVM_TRC_HANDLER + 0x11) | ||
48 | #define KVM_TRC_CLTS (KVM_TRC_HANDLER + 0x12) | ||
49 | #define KVM_TRC_LMSW (KVM_TRC_HANDLER + 0x13) | ||
50 | #define KVM_TRC_APIC_ACCESS (KVM_TRC_HANDLER + 0x14) | ||
51 | #define KVM_TRC_TDP_FAULT (KVM_TRC_HANDLER + 0x15) | ||
52 | #define KVM_TRC_GTLB_WRITE (KVM_TRC_HANDLER + 0x16) | ||
53 | #define KVM_TRC_STLB_WRITE (KVM_TRC_HANDLER + 0x17) | ||
54 | #define KVM_TRC_STLB_INVAL (KVM_TRC_HANDLER + 0x18) | ||
55 | #define KVM_TRC_PPC_INSTR (KVM_TRC_HANDLER + 0x19) | ||
56 | |||
18 | struct kvm_user_trace_setup { | 57 | struct kvm_user_trace_setup { |
19 | __u32 buf_size; /* sub_buffer size of each per-cpu */ | 58 | __u32 buf_size; |
20 | __u32 buf_nr; /* the number of sub_buffers of each per-cpu */ | 59 | __u32 buf_nr; |
60 | }; | ||
61 | |||
62 | #define __KVM_DEPRECATED_MAIN_W_0x06 \ | ||
63 | _IOW(KVMIO, 0x06, struct kvm_user_trace_setup) | ||
64 | #define __KVM_DEPRECATED_MAIN_0x07 _IO(KVMIO, 0x07) | ||
65 | #define __KVM_DEPRECATED_MAIN_0x08 _IO(KVMIO, 0x08) | ||
66 | |||
67 | #define __KVM_DEPRECATED_VM_R_0x70 _IOR(KVMIO, 0x70, struct kvm_assigned_irq) | ||
68 | |||
69 | struct kvm_breakpoint { | ||
70 | __u32 enabled; | ||
71 | __u32 padding; | ||
72 | __u64 address; | ||
73 | }; | ||
74 | |||
75 | struct kvm_debug_guest { | ||
76 | __u32 enabled; | ||
77 | __u32 pad; | ||
78 | struct kvm_breakpoint breakpoints[4]; | ||
79 | __u32 singlestep; | ||
21 | }; | 80 | }; |
22 | 81 | ||
82 | #define __KVM_DEPRECATED_VCPU_W_0x87 _IOW(KVMIO, 0x87, struct kvm_debug_guest) | ||
83 | |||
84 | /* *** End of deprecated interfaces *** */ | ||
85 | |||
86 | |||
23 | /* for KVM_CREATE_MEMORY_REGION */ | 87 | /* for KVM_CREATE_MEMORY_REGION */ |
24 | struct kvm_memory_region { | 88 | struct kvm_memory_region { |
25 | __u32 slot; | 89 | __u32 slot; |
@@ -329,24 +393,6 @@ struct kvm_ioeventfd { | |||
329 | __u8 pad[36]; | 393 | __u8 pad[36]; |
330 | }; | 394 | }; |
331 | 395 | ||
332 | #define KVM_TRC_SHIFT 16 | ||
333 | /* | ||
334 | * kvm trace categories | ||
335 | */ | ||
336 | #define KVM_TRC_ENTRYEXIT (1 << KVM_TRC_SHIFT) | ||
337 | #define KVM_TRC_HANDLER (1 << (KVM_TRC_SHIFT + 1)) /* only 12 bits */ | ||
338 | |||
339 | /* | ||
340 | * kvm trace action | ||
341 | */ | ||
342 | #define KVM_TRC_VMENTRY (KVM_TRC_ENTRYEXIT + 0x01) | ||
343 | #define KVM_TRC_VMEXIT (KVM_TRC_ENTRYEXIT + 0x02) | ||
344 | #define KVM_TRC_PAGE_FAULT (KVM_TRC_HANDLER + 0x01) | ||
345 | |||
346 | #define KVM_TRC_HEAD_SIZE 12 | ||
347 | #define KVM_TRC_CYCLE_SIZE 8 | ||
348 | #define KVM_TRC_EXTRA_MAX 7 | ||
349 | |||
350 | #define KVMIO 0xAE | 396 | #define KVMIO 0xAE |
351 | 397 | ||
352 | /* | 398 | /* |
@@ -367,12 +413,10 @@ struct kvm_ioeventfd { | |||
367 | */ | 413 | */ |
368 | #define KVM_GET_VCPU_MMAP_SIZE _IO(KVMIO, 0x04) /* in bytes */ | 414 | #define KVM_GET_VCPU_MMAP_SIZE _IO(KVMIO, 0x04) /* in bytes */ |
369 | #define KVM_GET_SUPPORTED_CPUID _IOWR(KVMIO, 0x05, struct kvm_cpuid2) | 415 | #define KVM_GET_SUPPORTED_CPUID _IOWR(KVMIO, 0x05, struct kvm_cpuid2) |
370 | /* | 416 | #define KVM_TRACE_ENABLE __KVM_DEPRECATED_MAIN_W_0x06 |
371 | * ioctls for kvm trace | 417 | #define KVM_TRACE_PAUSE __KVM_DEPRECATED_MAIN_0x07 |
372 | */ | 418 | #define KVM_TRACE_DISABLE __KVM_DEPRECATED_MAIN_0x08 |
373 | #define KVM_TRACE_ENABLE _IOW(KVMIO, 0x06, struct kvm_user_trace_setup) | 419 | |
374 | #define KVM_TRACE_PAUSE _IO(KVMIO, 0x07) | ||
375 | #define KVM_TRACE_DISABLE _IO(KVMIO, 0x08) | ||
376 | /* | 420 | /* |
377 | * Extension capability list. | 421 | * Extension capability list. |
378 | */ | 422 | */ |
@@ -522,56 +566,57 @@ struct kvm_clock_data { | |||
522 | /* | 566 | /* |
523 | * ioctls for VM fds | 567 | * ioctls for VM fds |
524 | */ | 568 | */ |
525 | #define KVM_SET_MEMORY_REGION _IOW(KVMIO, 0x40, struct kvm_memory_region) | 569 | #define KVM_SET_MEMORY_REGION _IOW(KVMIO, 0x40, struct kvm_memory_region) |
526 | /* | 570 | /* |
527 | * KVM_CREATE_VCPU receives as a parameter the vcpu slot, and returns | 571 | * KVM_CREATE_VCPU receives as a parameter the vcpu slot, and returns |
528 | * a vcpu fd. | 572 | * a vcpu fd. |
529 | */ | 573 | */ |
530 | #define KVM_CREATE_VCPU _IO(KVMIO, 0x41) | 574 | #define KVM_CREATE_VCPU _IO(KVMIO, 0x41) |
531 | #define KVM_GET_DIRTY_LOG _IOW(KVMIO, 0x42, struct kvm_dirty_log) | 575 | #define KVM_GET_DIRTY_LOG _IOW(KVMIO, 0x42, struct kvm_dirty_log) |
532 | #define KVM_SET_MEMORY_ALIAS _IOW(KVMIO, 0x43, struct kvm_memory_alias) | 576 | #define KVM_SET_MEMORY_ALIAS _IOW(KVMIO, 0x43, struct kvm_memory_alias) |
533 | #define KVM_SET_NR_MMU_PAGES _IO(KVMIO, 0x44) | 577 | #define KVM_SET_NR_MMU_PAGES _IO(KVMIO, 0x44) |
534 | #define KVM_GET_NR_MMU_PAGES _IO(KVMIO, 0x45) | 578 | #define KVM_GET_NR_MMU_PAGES _IO(KVMIO, 0x45) |
535 | #define KVM_SET_USER_MEMORY_REGION _IOW(KVMIO, 0x46,\ | 579 | #define KVM_SET_USER_MEMORY_REGION _IOW(KVMIO, 0x46, \ |
536 | struct kvm_userspace_memory_region) | 580 | struct kvm_userspace_memory_region) |
537 | #define KVM_SET_TSS_ADDR _IO(KVMIO, 0x47) | 581 | #define KVM_SET_TSS_ADDR _IO(KVMIO, 0x47) |
538 | #define KVM_SET_IDENTITY_MAP_ADDR _IOW(KVMIO, 0x48, __u64) | 582 | #define KVM_SET_IDENTITY_MAP_ADDR _IOW(KVMIO, 0x48, __u64) |
539 | /* Device model IOC */ | 583 | /* Device model IOC */ |
540 | #define KVM_CREATE_IRQCHIP _IO(KVMIO, 0x60) | 584 | #define KVM_CREATE_IRQCHIP _IO(KVMIO, 0x60) |
541 | #define KVM_IRQ_LINE _IOW(KVMIO, 0x61, struct kvm_irq_level) | 585 | #define KVM_IRQ_LINE _IOW(KVMIO, 0x61, struct kvm_irq_level) |
542 | #define KVM_GET_IRQCHIP _IOWR(KVMIO, 0x62, struct kvm_irqchip) | 586 | #define KVM_GET_IRQCHIP _IOWR(KVMIO, 0x62, struct kvm_irqchip) |
543 | #define KVM_SET_IRQCHIP _IOR(KVMIO, 0x63, struct kvm_irqchip) | 587 | #define KVM_SET_IRQCHIP _IOR(KVMIO, 0x63, struct kvm_irqchip) |
544 | #define KVM_CREATE_PIT _IO(KVMIO, 0x64) | 588 | #define KVM_CREATE_PIT _IO(KVMIO, 0x64) |
545 | #define KVM_GET_PIT _IOWR(KVMIO, 0x65, struct kvm_pit_state) | 589 | #define KVM_GET_PIT _IOWR(KVMIO, 0x65, struct kvm_pit_state) |
546 | #define KVM_SET_PIT _IOR(KVMIO, 0x66, struct kvm_pit_state) | 590 | #define KVM_SET_PIT _IOR(KVMIO, 0x66, struct kvm_pit_state) |
547 | #define KVM_IRQ_LINE_STATUS _IOWR(KVMIO, 0x67, struct kvm_irq_level) | 591 | #define KVM_IRQ_LINE_STATUS _IOWR(KVMIO, 0x67, struct kvm_irq_level) |
548 | #define KVM_REGISTER_COALESCED_MMIO \ | 592 | #define KVM_REGISTER_COALESCED_MMIO \ |
549 | _IOW(KVMIO, 0x67, struct kvm_coalesced_mmio_zone) | 593 | _IOW(KVMIO, 0x67, struct kvm_coalesced_mmio_zone) |
550 | #define KVM_UNREGISTER_COALESCED_MMIO \ | 594 | #define KVM_UNREGISTER_COALESCED_MMIO \ |
551 | _IOW(KVMIO, 0x68, struct kvm_coalesced_mmio_zone) | 595 | _IOW(KVMIO, 0x68, struct kvm_coalesced_mmio_zone) |
552 | #define KVM_ASSIGN_PCI_DEVICE _IOR(KVMIO, 0x69, \ | 596 | #define KVM_ASSIGN_PCI_DEVICE _IOR(KVMIO, 0x69, \ |
553 | struct kvm_assigned_pci_dev) | 597 | struct kvm_assigned_pci_dev) |
554 | #define KVM_SET_GSI_ROUTING _IOW(KVMIO, 0x6a, struct kvm_irq_routing) | 598 | #define KVM_SET_GSI_ROUTING _IOW(KVMIO, 0x6a, struct kvm_irq_routing) |
555 | /* deprecated, replaced by KVM_ASSIGN_DEV_IRQ */ | 599 | /* deprecated, replaced by KVM_ASSIGN_DEV_IRQ */ |
556 | #define KVM_ASSIGN_IRQ _IOR(KVMIO, 0x70, \ | 600 | #define KVM_ASSIGN_IRQ __KVM_DEPRECATED_VM_R_0x70 |
557 | struct kvm_assigned_irq) | 601 | #define KVM_ASSIGN_DEV_IRQ _IOW(KVMIO, 0x70, struct kvm_assigned_irq) |
558 | #define KVM_ASSIGN_DEV_IRQ _IOW(KVMIO, 0x70, struct kvm_assigned_irq) | 602 | #define KVM_REINJECT_CONTROL _IO(KVMIO, 0x71) |
559 | #define KVM_REINJECT_CONTROL _IO(KVMIO, 0x71) | 603 | #define KVM_DEASSIGN_PCI_DEVICE _IOW(KVMIO, 0x72, \ |
560 | #define KVM_DEASSIGN_PCI_DEVICE _IOW(KVMIO, 0x72, \ | 604 | struct kvm_assigned_pci_dev) |
561 | struct kvm_assigned_pci_dev) | 605 | #define KVM_ASSIGN_SET_MSIX_NR _IOW(KVMIO, 0x73, \ |
562 | #define KVM_ASSIGN_SET_MSIX_NR \ | 606 | struct kvm_assigned_msix_nr) |
563 | _IOW(KVMIO, 0x73, struct kvm_assigned_msix_nr) | 607 | #define KVM_ASSIGN_SET_MSIX_ENTRY _IOW(KVMIO, 0x74, \ |
564 | #define KVM_ASSIGN_SET_MSIX_ENTRY \ | 608 | struct kvm_assigned_msix_entry) |
565 | _IOW(KVMIO, 0x74, struct kvm_assigned_msix_entry) | 609 | #define KVM_DEASSIGN_DEV_IRQ _IOW(KVMIO, 0x75, struct kvm_assigned_irq) |
566 | #define KVM_DEASSIGN_DEV_IRQ _IOW(KVMIO, 0x75, struct kvm_assigned_irq) | 610 | #define KVM_IRQFD _IOW(KVMIO, 0x76, struct kvm_irqfd) |
567 | #define KVM_IRQFD _IOW(KVMIO, 0x76, struct kvm_irqfd) | 611 | #define KVM_CREATE_PIT2 _IOW(KVMIO, 0x77, struct kvm_pit_config) |
568 | #define KVM_CREATE_PIT2 _IOW(KVMIO, 0x77, struct kvm_pit_config) | 612 | #define KVM_SET_BOOT_CPU_ID _IO(KVMIO, 0x78) |
569 | #define KVM_SET_BOOT_CPU_ID _IO(KVMIO, 0x78) | 613 | #define KVM_IOEVENTFD _IOW(KVMIO, 0x79, struct kvm_ioeventfd) |
570 | #define KVM_IOEVENTFD _IOW(KVMIO, 0x79, struct kvm_ioeventfd) | 614 | #define KVM_XEN_HVM_CONFIG _IOW(KVMIO, 0x7a, struct kvm_xen_hvm_config) |
571 | #define KVM_XEN_HVM_CONFIG _IOW(KVMIO, 0x7a, struct kvm_xen_hvm_config) | 615 | #define KVM_SET_CLOCK _IOW(KVMIO, 0x7b, struct kvm_clock_data) |
572 | #define KVM_SET_CLOCK _IOW(KVMIO, 0x7b, struct kvm_clock_data) | 616 | #define KVM_GET_CLOCK _IOR(KVMIO, 0x7c, struct kvm_clock_data) |
573 | #define KVM_GET_CLOCK _IOR(KVMIO, 0x7c, struct kvm_clock_data) | 617 | /* Available with KVM_CAP_PIT_STATE2 */ |
574 | 618 | #define KVM_GET_PIT2 _IOR(KVMIO, 0x9f, struct kvm_pit_state2) | |
619 | #define KVM_SET_PIT2 _IOW(KVMIO, 0xa0, struct kvm_pit_state2) | ||
575 | 620 | ||
576 | /* | 621 | /* |
577 | * ioctls for vcpu fds | 622 | * ioctls for vcpu fds |
@@ -584,7 +629,7 @@ struct kvm_clock_data { | |||
584 | #define KVM_TRANSLATE _IOWR(KVMIO, 0x85, struct kvm_translation) | 629 | #define KVM_TRANSLATE _IOWR(KVMIO, 0x85, struct kvm_translation) |
585 | #define KVM_INTERRUPT _IOW(KVMIO, 0x86, struct kvm_interrupt) | 630 | #define KVM_INTERRUPT _IOW(KVMIO, 0x86, struct kvm_interrupt) |
586 | /* KVM_DEBUG_GUEST is no longer supported, use KVM_SET_GUEST_DEBUG instead */ | 631 | /* KVM_DEBUG_GUEST is no longer supported, use KVM_SET_GUEST_DEBUG instead */ |
587 | #define KVM_DEBUG_GUEST __KVM_DEPRECATED_DEBUG_GUEST | 632 | #define KVM_DEBUG_GUEST __KVM_DEPRECATED_VCPU_W_0x87 |
588 | #define KVM_GET_MSRS _IOWR(KVMIO, 0x88, struct kvm_msrs) | 633 | #define KVM_GET_MSRS _IOWR(KVMIO, 0x88, struct kvm_msrs) |
589 | #define KVM_SET_MSRS _IOW(KVMIO, 0x89, struct kvm_msrs) | 634 | #define KVM_SET_MSRS _IOW(KVMIO, 0x89, struct kvm_msrs) |
590 | #define KVM_SET_CPUID _IOW(KVMIO, 0x8a, struct kvm_cpuid) | 635 | #define KVM_SET_CPUID _IOW(KVMIO, 0x8a, struct kvm_cpuid) |
@@ -596,7 +641,7 @@ struct kvm_clock_data { | |||
596 | #define KVM_SET_CPUID2 _IOW(KVMIO, 0x90, struct kvm_cpuid2) | 641 | #define KVM_SET_CPUID2 _IOW(KVMIO, 0x90, struct kvm_cpuid2) |
597 | #define KVM_GET_CPUID2 _IOWR(KVMIO, 0x91, struct kvm_cpuid2) | 642 | #define KVM_GET_CPUID2 _IOWR(KVMIO, 0x91, struct kvm_cpuid2) |
598 | /* Available with KVM_CAP_VAPIC */ | 643 | /* Available with KVM_CAP_VAPIC */ |
599 | #define KVM_TPR_ACCESS_REPORTING _IOWR(KVMIO, 0x92, struct kvm_tpr_access_ctl) | 644 | #define KVM_TPR_ACCESS_REPORTING _IOWR(KVMIO, 0x92, struct kvm_tpr_access_ctl) |
600 | /* Available with KVM_CAP_VAPIC */ | 645 | /* Available with KVM_CAP_VAPIC */ |
601 | #define KVM_SET_VAPIC_ADDR _IOW(KVMIO, 0x93, struct kvm_vapic_addr) | 646 | #define KVM_SET_VAPIC_ADDR _IOW(KVMIO, 0x93, struct kvm_vapic_addr) |
602 | /* valid for virtual machine (for floating interrupt)_and_ vcpu */ | 647 | /* valid for virtual machine (for floating interrupt)_and_ vcpu */ |
@@ -608,67 +653,21 @@ struct kvm_clock_data { | |||
608 | /* initial ipl psw for s390 */ | 653 | /* initial ipl psw for s390 */ |
609 | #define KVM_S390_SET_INITIAL_PSW _IOW(KVMIO, 0x96, struct kvm_s390_psw) | 654 | #define KVM_S390_SET_INITIAL_PSW _IOW(KVMIO, 0x96, struct kvm_s390_psw) |
610 | /* initial reset for s390 */ | 655 | /* initial reset for s390 */ |
611 | #define KVM_S390_INITIAL_RESET _IO(KVMIO, 0x97) | 656 | #define KVM_S390_INITIAL_RESET _IO(KVMIO, 0x97) |
612 | #define KVM_GET_MP_STATE _IOR(KVMIO, 0x98, struct kvm_mp_state) | 657 | #define KVM_GET_MP_STATE _IOR(KVMIO, 0x98, struct kvm_mp_state) |
613 | #define KVM_SET_MP_STATE _IOW(KVMIO, 0x99, struct kvm_mp_state) | 658 | #define KVM_SET_MP_STATE _IOW(KVMIO, 0x99, struct kvm_mp_state) |
614 | /* Available with KVM_CAP_NMI */ | 659 | /* Available with KVM_CAP_NMI */ |
615 | #define KVM_NMI _IO(KVMIO, 0x9a) | 660 | #define KVM_NMI _IO(KVMIO, 0x9a) |
616 | /* Available with KVM_CAP_SET_GUEST_DEBUG */ | 661 | /* Available with KVM_CAP_SET_GUEST_DEBUG */ |
617 | #define KVM_SET_GUEST_DEBUG _IOW(KVMIO, 0x9b, struct kvm_guest_debug) | 662 | #define KVM_SET_GUEST_DEBUG _IOW(KVMIO, 0x9b, struct kvm_guest_debug) |
618 | /* MCE for x86 */ | 663 | /* MCE for x86 */ |
619 | #define KVM_X86_SETUP_MCE _IOW(KVMIO, 0x9c, __u64) | 664 | #define KVM_X86_SETUP_MCE _IOW(KVMIO, 0x9c, __u64) |
620 | #define KVM_X86_GET_MCE_CAP_SUPPORTED _IOR(KVMIO, 0x9d, __u64) | 665 | #define KVM_X86_GET_MCE_CAP_SUPPORTED _IOR(KVMIO, 0x9d, __u64) |
621 | #define KVM_X86_SET_MCE _IOW(KVMIO, 0x9e, struct kvm_x86_mce) | 666 | #define KVM_X86_SET_MCE _IOW(KVMIO, 0x9e, struct kvm_x86_mce) |
622 | 667 | /* IA64 stack access */ | |
623 | /* | ||
624 | * Deprecated interfaces | ||
625 | */ | ||
626 | struct kvm_breakpoint { | ||
627 | __u32 enabled; | ||
628 | __u32 padding; | ||
629 | __u64 address; | ||
630 | }; | ||
631 | |||
632 | struct kvm_debug_guest { | ||
633 | __u32 enabled; | ||
634 | __u32 pad; | ||
635 | struct kvm_breakpoint breakpoints[4]; | ||
636 | __u32 singlestep; | ||
637 | }; | ||
638 | |||
639 | #define __KVM_DEPRECATED_DEBUG_GUEST _IOW(KVMIO, 0x87, struct kvm_debug_guest) | ||
640 | |||
641 | #define KVM_IA64_VCPU_GET_STACK _IOR(KVMIO, 0x9a, void *) | 668 | #define KVM_IA64_VCPU_GET_STACK _IOR(KVMIO, 0x9a, void *) |
642 | #define KVM_IA64_VCPU_SET_STACK _IOW(KVMIO, 0x9b, void *) | 669 | #define KVM_IA64_VCPU_SET_STACK _IOW(KVMIO, 0x9b, void *) |
643 | 670 | ||
644 | #define KVM_GET_PIT2 _IOR(KVMIO, 0x9f, struct kvm_pit_state2) | ||
645 | #define KVM_SET_PIT2 _IOW(KVMIO, 0xa0, struct kvm_pit_state2) | ||
646 | |||
647 | #define KVM_TRC_INJ_VIRQ (KVM_TRC_HANDLER + 0x02) | ||
648 | #define KVM_TRC_REDELIVER_EVT (KVM_TRC_HANDLER + 0x03) | ||
649 | #define KVM_TRC_PEND_INTR (KVM_TRC_HANDLER + 0x04) | ||
650 | #define KVM_TRC_IO_READ (KVM_TRC_HANDLER + 0x05) | ||
651 | #define KVM_TRC_IO_WRITE (KVM_TRC_HANDLER + 0x06) | ||
652 | #define KVM_TRC_CR_READ (KVM_TRC_HANDLER + 0x07) | ||
653 | #define KVM_TRC_CR_WRITE (KVM_TRC_HANDLER + 0x08) | ||
654 | #define KVM_TRC_DR_READ (KVM_TRC_HANDLER + 0x09) | ||
655 | #define KVM_TRC_DR_WRITE (KVM_TRC_HANDLER + 0x0A) | ||
656 | #define KVM_TRC_MSR_READ (KVM_TRC_HANDLER + 0x0B) | ||
657 | #define KVM_TRC_MSR_WRITE (KVM_TRC_HANDLER + 0x0C) | ||
658 | #define KVM_TRC_CPUID (KVM_TRC_HANDLER + 0x0D) | ||
659 | #define KVM_TRC_INTR (KVM_TRC_HANDLER + 0x0E) | ||
660 | #define KVM_TRC_NMI (KVM_TRC_HANDLER + 0x0F) | ||
661 | #define KVM_TRC_VMMCALL (KVM_TRC_HANDLER + 0x10) | ||
662 | #define KVM_TRC_HLT (KVM_TRC_HANDLER + 0x11) | ||
663 | #define KVM_TRC_CLTS (KVM_TRC_HANDLER + 0x12) | ||
664 | #define KVM_TRC_LMSW (KVM_TRC_HANDLER + 0x13) | ||
665 | #define KVM_TRC_APIC_ACCESS (KVM_TRC_HANDLER + 0x14) | ||
666 | #define KVM_TRC_TDP_FAULT (KVM_TRC_HANDLER + 0x15) | ||
667 | #define KVM_TRC_GTLB_WRITE (KVM_TRC_HANDLER + 0x16) | ||
668 | #define KVM_TRC_STLB_WRITE (KVM_TRC_HANDLER + 0x17) | ||
669 | #define KVM_TRC_STLB_INVAL (KVM_TRC_HANDLER + 0x18) | ||
670 | #define KVM_TRC_PPC_INSTR (KVM_TRC_HANDLER + 0x19) | ||
671 | |||
672 | #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) | 671 | #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) |
673 | 672 | ||
674 | struct kvm_assigned_pci_dev { | 673 | struct kvm_assigned_pci_dev { |
@@ -722,4 +721,4 @@ struct kvm_assigned_msix_entry { | |||
722 | __u16 padding[3]; | 721 | __u16 padding[3]; |
723 | }; | 722 | }; |
724 | 723 | ||
725 | #endif | 724 | #endif /* __LINUX_KVM_H */ |