diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2013-09-26 16:18:35 +1000 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2013-10-25 23:25:46 +0200 |
commit | feaa64c41f56b1b3111c31f652999799b28b9e12 (patch) | |
tree | 7ebf42fa2a3648498e768c97067b4b7bdc87f726 /target-ppc/kvm.c | |
parent | 4fe822e075d6befa3714f7066158678e92cedb8b (diff) | |
download | qemu-feaa64c41f56b1b3111c31f652999799b28b9e12.tar.gz qemu-feaa64c41f56b1b3111c31f652999799b28b9e12.tar.bz2 qemu-feaa64c41f56b1b3111c31f652999799b28b9e12.zip |
target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN
Recent PowerKVM allows the kernel to intercept some RTAS calls from the
guest directly. This is used to implement the more efficient in-kernel
XICS for example. qemu is still responsible for assigning the RTAS token
numbers however, and needs to tell the kernel which RTAS function name is
assigned to a given token value. This patch adds a convenience wrapper for
the KVM_PPC_RTAS_DEFINE_TOKEN ioctl() which is used for this purpose.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'target-ppc/kvm.c')
-rw-r--r-- | target-ppc/kvm.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c index 8a196c6cc1..0b5d391403 100644 --- a/target-ppc/kvm.c +++ b/target-ppc/kvm.c @@ -1789,6 +1789,20 @@ static int kvm_ppc_register_host_cpu_type(void) return 0; } +int kvmppc_define_rtas_kernel_token(uint32_t token, const char *function) +{ + struct kvm_rtas_token_args args = { + .token = token, + }; + + if (!kvm_check_extension(kvm_state, KVM_CAP_PPC_RTAS)) { + return -ENOENT; + } + + strncpy(args.name, function, sizeof(args.name)); + + return kvm_vm_ioctl(kvm_state, KVM_PPC_RTAS_DEFINE_TOKEN, &args); +} int kvmppc_get_htab_fd(bool write) { |