-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
KVM: PPC: Improve indirect svcpu accessors
We already have some inline fuctions we use to access vcpu or svcpu structs, depending on whether we're on booke or book3s. Since we just put a few more registers into the svcpu, we also need to make sure the respective callbacks are available and get used. So this patch moves direct use of the now in the svcpu struct fields to inline function calls. While at it, it also moves the definition of those inline function calls to respective header files for booke and book3s, greatly improving readability. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Avi Kivity <avi@redhat.com>
- Loading branch information
Alexander Graf
authored and
Avi Kivity
committed
May 17, 2010
1 parent
66bb170
commit c7f38f4
Showing
10 changed files
with
290 additions
and
153 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
/* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License, version 2, as | ||
* published by the Free Software Foundation. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program; if not, write to the Free Software | ||
* Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
* | ||
* Copyright SUSE Linux Products GmbH 2010 | ||
* | ||
* Authors: Alexander Graf <agraf@suse.de> | ||
*/ | ||
|
||
#ifndef __ASM_KVM_BOOKE_H__ | ||
#define __ASM_KVM_BOOKE_H__ | ||
|
||
#include <linux/types.h> | ||
#include <linux/kvm_host.h> | ||
|
||
static inline void kvmppc_set_gpr(struct kvm_vcpu *vcpu, int num, ulong val) | ||
{ | ||
vcpu->arch.gpr[num] = val; | ||
} | ||
|
||
static inline ulong kvmppc_get_gpr(struct kvm_vcpu *vcpu, int num) | ||
{ | ||
return vcpu->arch.gpr[num]; | ||
} | ||
|
||
static inline void kvmppc_set_cr(struct kvm_vcpu *vcpu, u32 val) | ||
{ | ||
vcpu->arch.cr = val; | ||
} | ||
|
||
static inline u32 kvmppc_get_cr(struct kvm_vcpu *vcpu) | ||
{ | ||
return vcpu->arch.cr; | ||
} | ||
|
||
static inline void kvmppc_set_xer(struct kvm_vcpu *vcpu, u32 val) | ||
{ | ||
vcpu->arch.xer = val; | ||
} | ||
|
||
static inline u32 kvmppc_get_xer(struct kvm_vcpu *vcpu) | ||
{ | ||
return vcpu->arch.xer; | ||
} | ||
|
||
static inline u32 kvmppc_get_last_inst(struct kvm_vcpu *vcpu) | ||
{ | ||
return vcpu->arch.last_inst; | ||
} | ||
|
||
static inline void kvmppc_set_ctr(struct kvm_vcpu *vcpu, ulong val) | ||
{ | ||
vcpu->arch.ctr = val; | ||
} | ||
|
||
static inline ulong kvmppc_get_ctr(struct kvm_vcpu *vcpu) | ||
{ | ||
return vcpu->arch.ctr; | ||
} | ||
|
||
static inline void kvmppc_set_lr(struct kvm_vcpu *vcpu, ulong val) | ||
{ | ||
vcpu->arch.lr = val; | ||
} | ||
|
||
static inline ulong kvmppc_get_lr(struct kvm_vcpu *vcpu) | ||
{ | ||
return vcpu->arch.lr; | ||
} | ||
|
||
static inline void kvmppc_set_pc(struct kvm_vcpu *vcpu, ulong val) | ||
{ | ||
vcpu->arch.pc = val; | ||
} | ||
|
||
static inline ulong kvmppc_get_pc(struct kvm_vcpu *vcpu) | ||
{ | ||
return vcpu->arch.pc; | ||
} | ||
|
||
static inline ulong kvmppc_get_fault_dar(struct kvm_vcpu *vcpu) | ||
{ | ||
return vcpu->arch.fault_dear; | ||
} | ||
|
||
#endif /* __ASM_KVM_BOOKE_H__ */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.