mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 13:41:30 +00:00
KVM: Document KVM_CAP_IRQCHIP
Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
88c808fd42
commit
5dadbfd647
1 changed files with 76 additions and 0 deletions
|
@ -517,6 +517,82 @@ struct kvm_fpu {
|
||||||
__u32 pad2;
|
__u32 pad2;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
4.23 KVM_CREATE_IRQCHIP
|
||||||
|
|
||||||
|
Capability: KVM_CAP_IRQCHIP
|
||||||
|
Architectures: x86, ia64
|
||||||
|
Type: vm ioctl
|
||||||
|
Parameters: none
|
||||||
|
Returns: 0 on success, -1 on error
|
||||||
|
|
||||||
|
Creates an interrupt controller model in the kernel. On x86, creates a virtual
|
||||||
|
ioapic, a virtual PIC (two PICs, nested), and sets up future vcpus to have a
|
||||||
|
local APIC. IRQ routing for GSIs 0-15 is set to both PIC and IOAPIC; GSI 16-23
|
||||||
|
only go to the IOAPIC. On ia64, a IOSAPIC is created.
|
||||||
|
|
||||||
|
4.24 KVM_IRQ_LINE
|
||||||
|
|
||||||
|
Capability: KVM_CAP_IRQCHIP
|
||||||
|
Architectures: x86, ia64
|
||||||
|
Type: vm ioctl
|
||||||
|
Parameters: struct kvm_irq_level
|
||||||
|
Returns: 0 on success, -1 on error
|
||||||
|
|
||||||
|
Sets the level of a GSI input to the interrupt controller model in the kernel.
|
||||||
|
Requires that an interrupt controller model has been previously created with
|
||||||
|
KVM_CREATE_IRQCHIP. Note that edge-triggered interrupts require the level
|
||||||
|
to be set to 1 and then back to 0.
|
||||||
|
|
||||||
|
struct kvm_irq_level {
|
||||||
|
union {
|
||||||
|
__u32 irq; /* GSI */
|
||||||
|
__s32 status; /* not used for KVM_IRQ_LEVEL */
|
||||||
|
};
|
||||||
|
__u32 level; /* 0 or 1 */
|
||||||
|
};
|
||||||
|
|
||||||
|
4.25 KVM_GET_IRQCHIP
|
||||||
|
|
||||||
|
Capability: KVM_CAP_IRQCHIP
|
||||||
|
Architectures: x86, ia64
|
||||||
|
Type: vm ioctl
|
||||||
|
Parameters: struct kvm_irqchip (in/out)
|
||||||
|
Returns: 0 on success, -1 on error
|
||||||
|
|
||||||
|
Reads the state of a kernel interrupt controller created with
|
||||||
|
KVM_CREATE_IRQCHIP into a buffer provided by the caller.
|
||||||
|
|
||||||
|
struct kvm_irqchip {
|
||||||
|
__u32 chip_id; /* 0 = PIC1, 1 = PIC2, 2 = IOAPIC */
|
||||||
|
__u32 pad;
|
||||||
|
union {
|
||||||
|
char dummy[512]; /* reserving space */
|
||||||
|
struct kvm_pic_state pic;
|
||||||
|
struct kvm_ioapic_state ioapic;
|
||||||
|
} chip;
|
||||||
|
};
|
||||||
|
|
||||||
|
4.26 KVM_SET_IRQCHIP
|
||||||
|
|
||||||
|
Capability: KVM_CAP_IRQCHIP
|
||||||
|
Architectures: x86, ia64
|
||||||
|
Type: vm ioctl
|
||||||
|
Parameters: struct kvm_irqchip (in)
|
||||||
|
Returns: 0 on success, -1 on error
|
||||||
|
|
||||||
|
Sets the state of a kernel interrupt controller created with
|
||||||
|
KVM_CREATE_IRQCHIP from a buffer provided by the caller.
|
||||||
|
|
||||||
|
struct kvm_irqchip {
|
||||||
|
__u32 chip_id; /* 0 = PIC1, 1 = PIC2, 2 = IOAPIC */
|
||||||
|
__u32 pad;
|
||||||
|
union {
|
||||||
|
char dummy[512]; /* reserving space */
|
||||||
|
struct kvm_pic_state pic;
|
||||||
|
struct kvm_ioapic_state ioapic;
|
||||||
|
} chip;
|
||||||
|
};
|
||||||
|
|
||||||
5. The kvm_run structure
|
5. The kvm_run structure
|
||||||
|
|
||||||
Application code obtains a pointer to the kvm_run structure by
|
Application code obtains a pointer to the kvm_run structure by
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue