diff options
author | David Daney <david.daney@cavium.com> | 2013-05-23 12:49:06 -0400 |
---|---|---|
committer | Gleb Natapov <gleb@redhat.com> | 2013-06-03 03:58:52 -0400 |
commit | 688cded320a4760de679160b42f9a81face02674 (patch) | |
tree | ec52e3143614738c633748720700dd31103e8a5b /arch | |
parent | 1f3dc6d76424538efb2095055035254b14499c77 (diff) |
mips/kvm: Fix ABI for use of 64-bit registers.
All registers are 64-bits wide, 32-bit guests use the least
significant portion of the register storage fields.
Signed-off-by: David Daney <david.daney@cavium.com>
Acked-by: Sanjay Lal <sanjayl@kymasys.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/include/uapi/asm/kvm.h | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/arch/mips/include/uapi/asm/kvm.h b/arch/mips/include/uapi/asm/kvm.h index 0e8f5658c03e..86812fb61842 100644 --- a/arch/mips/include/uapi/asm/kvm.h +++ b/arch/mips/include/uapi/asm/kvm.h | |||
@@ -18,12 +18,18 @@ | |||
18 | #define N_MIPS_COPROC_REGS 32 | 18 | #define N_MIPS_COPROC_REGS 32 |
19 | #define N_MIPS_COPROC_SEL 8 | 19 | #define N_MIPS_COPROC_SEL 8 |
20 | 20 | ||
21 | /* for KVM_GET_REGS and KVM_SET_REGS */ | 21 | /* |
22 | * for KVM_GET_REGS and KVM_SET_REGS | ||
23 | * | ||
24 | * If Config[AT] is zero (32-bit CPU), the register contents are | ||
25 | * stored in the lower 32-bits of the struct kvm_regs fields and sign | ||
26 | * extended to 64-bits. | ||
27 | */ | ||
22 | struct kvm_regs { | 28 | struct kvm_regs { |
23 | __u32 gprs[32]; | 29 | __u64 gprs[32]; |
24 | __u32 hi; | 30 | __u64 hi; |
25 | __u32 lo; | 31 | __u64 lo; |
26 | __u32 pc; | 32 | __u64 pc; |
27 | 33 | ||
28 | __u32 cp0reg[N_MIPS_COPROC_REGS][N_MIPS_COPROC_SEL]; | 34 | __u32 cp0reg[N_MIPS_COPROC_REGS][N_MIPS_COPROC_SEL]; |
29 | }; | 35 | }; |