diff options
author | Alexander Graf <agraf@suse.de> | 2010-07-29 08:48:08 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2010-10-24 04:50:57 -0400 |
commit | 15711e9c927bfc08e66791cbf0ca7887c0880768 (patch) | |
tree | 0b44274b4592b298177122178e83927d45919a19 /Documentation | |
parent | d7d3c2ea99c4845611997cf728af88c4c232e908 (diff) |
KVM: PPC: Add get_pvinfo interface to query hypercall instructions
We need to tell the guest the opcodes that make up a hypercall through
interfaces that are controlled by userspace. So we need to add a call
for userspace to allow it to query those opcodes so it can pass them
on.
This is required because the hypercall opcodes can change based on
the hypervisor conditions. If we're running in hardware accelerated
hypervisor mode, a hypercall looks different from when we're running
without hardware acceleration.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/kvm/api.txt | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Documentation/kvm/api.txt b/Documentation/kvm/api.txt index 5f5b64982b1a..44d9893f9db1 100644 --- a/Documentation/kvm/api.txt +++ b/Documentation/kvm/api.txt | |||
@@ -1032,6 +1032,29 @@ are defined as follows: | |||
1032 | eax, ebx, ecx, edx: the values returned by the cpuid instruction for | 1032 | eax, ebx, ecx, edx: the values returned by the cpuid instruction for |
1033 | this function/index combination | 1033 | this function/index combination |
1034 | 1034 | ||
1035 | 4.46 KVM_PPC_GET_PVINFO | ||
1036 | |||
1037 | Capability: KVM_CAP_PPC_GET_PVINFO | ||
1038 | Architectures: ppc | ||
1039 | Type: vm ioctl | ||
1040 | Parameters: struct kvm_ppc_pvinfo (out) | ||
1041 | Returns: 0 on success, !0 on error | ||
1042 | |||
1043 | struct kvm_ppc_pvinfo { | ||
1044 | __u32 flags; | ||
1045 | __u32 hcall[4]; | ||
1046 | __u8 pad[108]; | ||
1047 | }; | ||
1048 | |||
1049 | This ioctl fetches PV specific information that need to be passed to the guest | ||
1050 | using the device tree or other means from vm context. | ||
1051 | |||
1052 | For now the only implemented piece of information distributed here is an array | ||
1053 | of 4 instructions that make up a hypercall. | ||
1054 | |||
1055 | If any additional field gets added to this structure later on, a bit for that | ||
1056 | additional piece of information will be set in the flags bitmap. | ||
1057 | |||
1035 | 5. The kvm_run structure | 1058 | 5. The kvm_run structure |
1036 | 1059 | ||
1037 | Application code obtains a pointer to the kvm_run structure by | 1060 | Application code obtains a pointer to the kvm_run structure by |