aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorDavid Daney <david.daney@cavium.com>2013-05-23 12:49:06 -0400
committerGleb Natapov <gleb@redhat.com>2013-06-03 03:58:52 -0400
commit688cded320a4760de679160b42f9a81face02674 (patch)
treeec52e3143614738c633748720700dd31103e8a5b /arch
parent1f3dc6d76424538efb2095055035254b14499c77 (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.h16
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 */
22struct kvm_regs { 28struct 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};