aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/kvm
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2010-08-30 20:03:32 -0400
committerAvi Kivity <avi@redhat.com>2010-10-24 04:52:20 -0400
commit6f7a2bd41fa8d52cbf5f32fdf8ba659d4ce4ae59 (patch)
tree6615affe7c3561b08967cb9cf055e00dd1e3efd5 /Documentation/kvm
parentc5335f17651de5075313524ccc3881527268966f (diff)
KVM: PPC: Document KVM_INTERRUPT ioctl
This adds some documentation for the KVM_INTERRUPT special cases that PowerPC now implements. Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'Documentation/kvm')
-rw-r--r--Documentation/kvm/api.txt33
1 files changed, 31 insertions, 2 deletions
diff --git a/Documentation/kvm/api.txt b/Documentation/kvm/api.txt
index 44d9893f9db..24d63412874 100644
--- a/Documentation/kvm/api.txt
+++ b/Documentation/kvm/api.txt
@@ -320,13 +320,13 @@ struct kvm_translation {
3204.15 KVM_INTERRUPT 3204.15 KVM_INTERRUPT
321 321
322Capability: basic 322Capability: basic
323Architectures: x86 323Architectures: x86, ppc
324Type: vcpu ioctl 324Type: vcpu ioctl
325Parameters: struct kvm_interrupt (in) 325Parameters: struct kvm_interrupt (in)
326Returns: 0 on success, -1 on error 326Returns: 0 on success, -1 on error
327 327
328Queues a hardware interrupt vector to be injected. This is only 328Queues a hardware interrupt vector to be injected. This is only
329useful if in-kernel local APIC is not used. 329useful if in-kernel local APIC or equivalent is not used.
330 330
331/* for KVM_INTERRUPT */ 331/* for KVM_INTERRUPT */
332struct kvm_interrupt { 332struct kvm_interrupt {
@@ -334,8 +334,37 @@ struct kvm_interrupt {
334 __u32 irq; 334 __u32 irq;
335}; 335};
336 336
337X86:
338
337Note 'irq' is an interrupt vector, not an interrupt pin or line. 339Note 'irq' is an interrupt vector, not an interrupt pin or line.
338 340
341PPC:
342
343Queues an external interrupt to be injected. This ioctl is overleaded
344with 3 different irq values:
345
346a) KVM_INTERRUPT_SET
347
348 This injects an edge type external interrupt into the guest once it's ready
349 to receive interrupts. When injected, the interrupt is done.
350
351b) KVM_INTERRUPT_UNSET
352
353 This unsets any pending interrupt.
354
355 Only available with KVM_CAP_PPC_UNSET_IRQ.
356
357c) KVM_INTERRUPT_SET_LEVEL
358
359 This injects a level type external interrupt into the guest context. The
360 interrupt stays pending until a specific ioctl with KVM_INTERRUPT_UNSET
361 is triggered.
362
363 Only available with KVM_CAP_PPC_IRQ_LEVEL.
364
365Note that any value for 'irq' other than the ones stated above is invalid
366and incurs unexpected behavior.
367
3394.16 KVM_DEBUG_GUEST 3684.16 KVM_DEBUG_GUEST
340 369
341Capability: basic 370Capability: basic