Introduce kvm_arm_get_host_isar() to provide scratch vCPU probed host isar. Will be used in future commits.
Signed-off-by: Khushit Shah <[email protected]> --- target/arm/kvm-stub.c | 5 +++++ target/arm/kvm.c | 8 ++++++++ target/arm/kvm_arm.h | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/target/arm/kvm-stub.c b/target/arm/kvm-stub.c index 88cbe8d85c..dd683beaaf 100644 --- a/target/arm/kvm-stub.c +++ b/target/arm/kvm-stub.c @@ -119,3 +119,8 @@ char *kvm_print_register_name(uint64_t regidx) { g_assert_not_reached(); } + +const ARMISARegisters *kvm_arm_get_host_isar(void) +{ + return NULL; +} diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 8f452f9570..042d5fe804 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -650,6 +650,14 @@ void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu) env->features = arm_host_cpu_features.features; } +const ARMISARegisters *kvm_arm_get_host_isar(void) +{ + if (!arm_host_cpu_features.dtb_compatible) { + kvm_arm_get_host_cpu_features(&arm_host_cpu_features); + } + return &arm_host_cpu_features.isar; +} + static bool kvm_no_adjvtime_get(Object *obj, Error **errp) { return !ARM_CPU(obj)->kvm_adjvtime; diff --git a/target/arm/kvm_arm.h b/target/arm/kvm_arm.h index 9f15c91c4e..4a04d72e39 100644 --- a/target/arm/kvm_arm.h +++ b/target/arm/kvm_arm.h @@ -15,6 +15,8 @@ #include "system/kvm.h" #include "target/arm/cpu-qom.h" +typedef struct ARMISARegisters ARMISARegisters; + #define KVM_ARM_VGIC_V2 (1 << 0) #define KVM_ARM_VGIC_V3 (1 << 1) @@ -257,6 +259,8 @@ void kvm_arm_enable_mte(Object *cpuobj, Error **errp); void arm_cpu_kvm_set_irq(void *arm_cpu, int irq, int level); +const ARMISARegisters *kvm_arm_get_host_isar(void); + void arm_gic_cap_kvm_probe(GICCapability *v2, GICCapability *v3); /* -- 2.52.0
