mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
arm/kvm: convert to kvm_get_one_reg
We can neaten the code by switching the callers that work on a CPUstate to the kvm_get_one_reg function. Reviewed-by: Gavin Shan <gshan@redhat.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-id: 20231010142453.224369-3-cohuck@redhat.com Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
6c8b9a74bf
commit
40d45b85e0
2 changed files with 18 additions and 54 deletions
|
@ -553,24 +553,19 @@ bool write_kvmstate_to_list(ARMCPU *cpu)
|
|||
bool ok = true;
|
||||
|
||||
for (i = 0; i < cpu->cpreg_array_len; i++) {
|
||||
struct kvm_one_reg r;
|
||||
uint64_t regidx = cpu->cpreg_indexes[i];
|
||||
uint32_t v32;
|
||||
int ret;
|
||||
|
||||
r.id = regidx;
|
||||
|
||||
switch (regidx & KVM_REG_SIZE_MASK) {
|
||||
case KVM_REG_SIZE_U32:
|
||||
r.addr = (uintptr_t)&v32;
|
||||
ret = kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, &r);
|
||||
ret = kvm_get_one_reg(cs, regidx, &v32);
|
||||
if (!ret) {
|
||||
cpu->cpreg_values[i] = v32;
|
||||
}
|
||||
break;
|
||||
case KVM_REG_SIZE_U64:
|
||||
r.addr = (uintptr_t)(cpu->cpreg_values + i);
|
||||
ret = kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, &r);
|
||||
ret = kvm_get_one_reg(cs, regidx, cpu->cpreg_values + i);
|
||||
break;
|
||||
default:
|
||||
g_assert_not_reached();
|
||||
|
@ -706,17 +701,13 @@ int kvm_arm_sync_mpstate_to_qemu(ARMCPU *cpu)
|
|||
void kvm_arm_get_virtual_time(CPUState *cs)
|
||||
{
|
||||
ARMCPU *cpu = ARM_CPU(cs);
|
||||
struct kvm_one_reg reg = {
|
||||
.id = KVM_REG_ARM_TIMER_CNT,
|
||||
.addr = (uintptr_t)&cpu->kvm_vtime,
|
||||
};
|
||||
int ret;
|
||||
|
||||
if (cpu->kvm_vtime_dirty) {
|
||||
return;
|
||||
}
|
||||
|
||||
ret = kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, ®);
|
||||
ret = kvm_get_one_reg(cs, KVM_REG_ARM_TIMER_CNT, &cpu->kvm_vtime);
|
||||
if (ret) {
|
||||
error_report("Failed to get KVM_REG_ARM_TIMER_CNT");
|
||||
abort();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue