target/arm/kvm: Have kvm_arm_vcpu_init take a ARMCPU argument

Unify the "kvm_arm.h" API: All functions related to ARM vCPUs
take a ARMCPU* argument. Use the CPU() QOM cast macro When
calling the generic vCPU API from "sysemu/kvm.h".

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Gavin Shan <gshan@redhat.com>
Message-id: 20231123183518.64569-11-philmd@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Philippe Mathieu-Daudé 2023-12-19 17:57:46 +00:00 committed by Peter Maydell
parent 5ed84f3bf7
commit bbb22d5865

View file

@ -62,7 +62,7 @@ static ARMHostCPUFeatures arm_host_cpu_features;
/** /**
* kvm_arm_vcpu_init: * kvm_arm_vcpu_init:
* @cs: CPUState * @cpu: ARMCPU
* *
* Initialize (or reinitialize) the VCPU by invoking the * Initialize (or reinitialize) the VCPU by invoking the
* KVM_ARM_VCPU_INIT ioctl with the CPU type and feature * KVM_ARM_VCPU_INIT ioctl with the CPU type and feature
@ -70,15 +70,14 @@ static ARMHostCPUFeatures arm_host_cpu_features;
* *
* Returns: 0 if success else < 0 error code * Returns: 0 if success else < 0 error code
*/ */
static int kvm_arm_vcpu_init(CPUState *cs) static int kvm_arm_vcpu_init(ARMCPU *cpu)
{ {
ARMCPU *cpu = ARM_CPU(cs);
struct kvm_vcpu_init init; struct kvm_vcpu_init init;
init.target = cpu->kvm_target; init.target = cpu->kvm_target;
memcpy(init.features, cpu->kvm_init_features, sizeof(init.features)); memcpy(init.features, cpu->kvm_init_features, sizeof(init.features));
return kvm_vcpu_ioctl(cs, KVM_ARM_VCPU_INIT, &init); return kvm_vcpu_ioctl(CPU(cpu), KVM_ARM_VCPU_INIT, &init);
} }
/** /**
@ -982,7 +981,7 @@ void kvm_arm_reset_vcpu(ARMCPU *cpu)
/* Re-init VCPU so that all registers are set to /* Re-init VCPU so that all registers are set to
* their respective reset values. * their respective reset values.
*/ */
ret = kvm_arm_vcpu_init(CPU(cpu)); ret = kvm_arm_vcpu_init(cpu);
if (ret < 0) { if (ret < 0) {
fprintf(stderr, "kvm_arm_vcpu_init failed: %s\n", strerror(-ret)); fprintf(stderr, "kvm_arm_vcpu_init failed: %s\n", strerror(-ret));
abort(); abort();
@ -1912,7 +1911,7 @@ int kvm_arch_init_vcpu(CPUState *cs)
} }
/* Do KVM_ARM_VCPU_INIT ioctl */ /* Do KVM_ARM_VCPU_INIT ioctl */
ret = kvm_arm_vcpu_init(cs); ret = kvm_arm_vcpu_init(cpu);
if (ret) { if (ret) {
return ret; return ret;
} }