diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2013-04-17 16:30:00 -0400 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2013-04-26 14:27:29 -0400 |
commit | 8e591cb7204739efa8e15967ea334eb367039dde (patch) | |
tree | 3fa76d3875c8133eeafc2e36372aaf83232fc54f /arch/powerpc/include/uapi/asm/kvm.h | |
parent | 91194919a6b07d70081fe185a79b129efee84fff (diff) |
KVM: PPC: Book3S: Add infrastructure to implement kernel-side RTAS calls
For pseries machine emulation, in order to move the interrupt
controller code to the kernel, we need to intercept some RTAS
calls in the kernel itself. This adds an infrastructure to allow
in-kernel handlers to be registered for RTAS services by name.
A new ioctl, KVM_PPC_RTAS_DEFINE_TOKEN, then allows userspace to
associate token values with those service names. Then, when the
guest requests an RTAS service with one of those token values, it
will be handled by the relevant in-kernel handler rather than being
passed up to userspace as at present.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
[agraf: fix warning]
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/powerpc/include/uapi/asm/kvm.h')
-rw-r--r-- | arch/powerpc/include/uapi/asm/kvm.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/include/uapi/asm/kvm.h b/arch/powerpc/include/uapi/asm/kvm.h index 03c7819a44a3..eb9e25c194ad 100644 --- a/arch/powerpc/include/uapi/asm/kvm.h +++ b/arch/powerpc/include/uapi/asm/kvm.h | |||
@@ -324,6 +324,12 @@ struct kvm_allocate_rma { | |||
324 | __u64 rma_size; | 324 | __u64 rma_size; |
325 | }; | 325 | }; |
326 | 326 | ||
327 | /* for KVM_CAP_PPC_RTAS */ | ||
328 | struct kvm_rtas_token_args { | ||
329 | char name[120]; | ||
330 | __u64 token; /* Use a token of 0 to undefine a mapping */ | ||
331 | }; | ||
332 | |||
327 | struct kvm_book3e_206_tlb_entry { | 333 | struct kvm_book3e_206_tlb_entry { |
328 | __u32 mas8; | 334 | __u32 mas8; |
329 | __u32 mas1; | 335 | __u32 mas1; |