diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/kvm/api.txt | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/Documentation/kvm/api.txt b/Documentation/kvm/api.txt index 5a4bc8cf6d04..e1a114161027 100644 --- a/Documentation/kvm/api.txt +++ b/Documentation/kvm/api.txt | |||
@@ -593,6 +593,115 @@ struct kvm_irqchip { | |||
593 | } chip; | 593 | } chip; |
594 | }; | 594 | }; |
595 | 595 | ||
596 | 4.27 KVM_XEN_HVM_CONFIG | ||
597 | |||
598 | Capability: KVM_CAP_XEN_HVM | ||
599 | Architectures: x86 | ||
600 | Type: vm ioctl | ||
601 | Parameters: struct kvm_xen_hvm_config (in) | ||
602 | Returns: 0 on success, -1 on error | ||
603 | |||
604 | Sets the MSR that the Xen HVM guest uses to initialize its hypercall | ||
605 | page, and provides the starting address and size of the hypercall | ||
606 | blobs in userspace. When the guest writes the MSR, kvm copies one | ||
607 | page of a blob (32- or 64-bit, depending on the vcpu mode) to guest | ||
608 | memory. | ||
609 | |||
610 | struct kvm_xen_hvm_config { | ||
611 | __u32 flags; | ||
612 | __u32 msr; | ||
613 | __u64 blob_addr_32; | ||
614 | __u64 blob_addr_64; | ||
615 | __u8 blob_size_32; | ||
616 | __u8 blob_size_64; | ||
617 | __u8 pad2[30]; | ||
618 | }; | ||
619 | |||
620 | 4.27 KVM_GET_CLOCK | ||
621 | |||
622 | Capability: KVM_CAP_ADJUST_CLOCK | ||
623 | Architectures: x86 | ||
624 | Type: vm ioctl | ||
625 | Parameters: struct kvm_clock_data (out) | ||
626 | Returns: 0 on success, -1 on error | ||
627 | |||
628 | Gets the current timestamp of kvmclock as seen by the current guest. In | ||
629 | conjunction with KVM_SET_CLOCK, it is used to ensure monotonicity on scenarios | ||
630 | such as migration. | ||
631 | |||
632 | struct kvm_clock_data { | ||
633 | __u64 clock; /* kvmclock current value */ | ||
634 | __u32 flags; | ||
635 | __u32 pad[9]; | ||
636 | }; | ||
637 | |||
638 | 4.28 KVM_SET_CLOCK | ||
639 | |||
640 | Capability: KVM_CAP_ADJUST_CLOCK | ||
641 | Architectures: x86 | ||
642 | Type: vm ioctl | ||
643 | Parameters: struct kvm_clock_data (in) | ||
644 | Returns: 0 on success, -1 on error | ||
645 | |||
646 | Sets the current timestamp of kvmclock to the valued specific in its parameter. | ||
647 | In conjunction with KVM_GET_CLOCK, it is used to ensure monotonicity on scenarios | ||
648 | such as migration. | ||
649 | |||
650 | struct kvm_clock_data { | ||
651 | __u64 clock; /* kvmclock current value */ | ||
652 | __u32 flags; | ||
653 | __u32 pad[9]; | ||
654 | }; | ||
655 | |||
656 | 4.29 KVM_GET_VCPU_EVENTS | ||
657 | |||
658 | Capability: KVM_CAP_VCPU_EVENTS | ||
659 | Architectures: x86 | ||
660 | Type: vm ioctl | ||
661 | Parameters: struct kvm_vcpu_event (out) | ||
662 | Returns: 0 on success, -1 on error | ||
663 | |||
664 | Gets currently pending exceptions, interrupts, and NMIs as well as related | ||
665 | states of the vcpu. | ||
666 | |||
667 | struct kvm_vcpu_events { | ||
668 | struct { | ||
669 | __u8 injected; | ||
670 | __u8 nr; | ||
671 | __u8 has_error_code; | ||
672 | __u8 pad; | ||
673 | __u32 error_code; | ||
674 | } exception; | ||
675 | struct { | ||
676 | __u8 injected; | ||
677 | __u8 nr; | ||
678 | __u8 soft; | ||
679 | __u8 pad; | ||
680 | } interrupt; | ||
681 | struct { | ||
682 | __u8 injected; | ||
683 | __u8 pending; | ||
684 | __u8 masked; | ||
685 | __u8 pad; | ||
686 | } nmi; | ||
687 | __u32 sipi_vector; | ||
688 | __u32 flags; /* must be zero */ | ||
689 | }; | ||
690 | |||
691 | 4.30 KVM_SET_VCPU_EVENTS | ||
692 | |||
693 | Capability: KVM_CAP_VCPU_EVENTS | ||
694 | Architectures: x86 | ||
695 | Type: vm ioctl | ||
696 | Parameters: struct kvm_vcpu_event (in) | ||
697 | Returns: 0 on success, -1 on error | ||
698 | |||
699 | Set pending exceptions, interrupts, and NMIs as well as related states of the | ||
700 | vcpu. | ||
701 | |||
702 | See KVM_GET_VCPU_EVENTS for the data structure. | ||
703 | |||
704 | |||
596 | 5. The kvm_run structure | 705 | 5. The kvm_run structure |
597 | 706 | ||
598 | Application code obtains a pointer to the kvm_run structure by | 707 | Application code obtains a pointer to the kvm_run structure by |