mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:17 +00:00
target/arm/arm-qmp-cmds.c: make compilation unit common
Move gic_cap_kvm_probe to target/arm/kvm.c to remove #ifdef CONFIG_KVM. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Message-ID: <20260206042150.912578-2-pierrick.bouvier@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
committed by
Philippe Mathieu-Daudé
parent
e9c3aafb5f
commit
3ca2cadd39
@@ -43,29 +43,6 @@ static GICCapability *gic_cap_new(int version)
|
||||
return cap;
|
||||
}
|
||||
|
||||
static inline void gic_cap_kvm_probe(GICCapability *v2, GICCapability *v3)
|
||||
{
|
||||
#ifdef CONFIG_KVM
|
||||
int fdarray[3];
|
||||
|
||||
if (!kvm_arm_create_scratch_host_vcpu(fdarray, NULL)) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Test KVM GICv2 */
|
||||
if (kvm_device_supported(fdarray[1], KVM_DEV_TYPE_ARM_VGIC_V2)) {
|
||||
v2->kernel = true;
|
||||
}
|
||||
|
||||
/* Test KVM GICv3 */
|
||||
if (kvm_device_supported(fdarray[1], KVM_DEV_TYPE_ARM_VGIC_V3)) {
|
||||
v3->kernel = true;
|
||||
}
|
||||
|
||||
kvm_arm_destroy_scratch_host_vcpu(fdarray);
|
||||
#endif
|
||||
}
|
||||
|
||||
GICCapabilityList *qmp_query_gic_capabilities(Error **errp)
|
||||
{
|
||||
GICCapabilityList *head = NULL;
|
||||
@@ -74,7 +51,9 @@ GICCapabilityList *qmp_query_gic_capabilities(Error **errp)
|
||||
v2->emulated = true;
|
||||
v3->emulated = true;
|
||||
|
||||
gic_cap_kvm_probe(v2, v3);
|
||||
if (kvm_enabled()) {
|
||||
arm_gic_cap_kvm_probe(v2, v3);
|
||||
}
|
||||
|
||||
QAPI_LIST_PREPEND(head, v2);
|
||||
QAPI_LIST_PREPEND(head, v3);
|
||||
|
||||
@@ -124,3 +124,8 @@ bool kvm_arm_cpu_post_load(ARMCPU *cpu)
|
||||
{
|
||||
g_assert_not_reached();
|
||||
}
|
||||
|
||||
void arm_gic_cap_kvm_probe(GICCapability *v2, GICCapability *v3)
|
||||
{
|
||||
g_assert_not_reached();
|
||||
}
|
||||
|
||||
@@ -2580,3 +2580,24 @@ void arm_cpu_kvm_set_irq(void *arm_cpu, int irq, int level)
|
||||
}
|
||||
kvm_arm_set_irq(cs->cpu_index, KVM_ARM_IRQ_TYPE_CPU, irq_id, !!level);
|
||||
}
|
||||
|
||||
void arm_gic_cap_kvm_probe(GICCapability *v2, GICCapability *v3)
|
||||
{
|
||||
int fdarray[3];
|
||||
|
||||
if (!kvm_arm_create_scratch_host_vcpu(fdarray, NULL)) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Test KVM GICv2 */
|
||||
if (kvm_device_supported(fdarray[1], KVM_DEV_TYPE_ARM_VGIC_V2)) {
|
||||
v2->kernel = true;
|
||||
}
|
||||
|
||||
/* Test KVM GICv3 */
|
||||
if (kvm_device_supported(fdarray[1], KVM_DEV_TYPE_ARM_VGIC_V3)) {
|
||||
v3->kernel = true;
|
||||
}
|
||||
|
||||
kvm_arm_destroy_scratch_host_vcpu(fdarray);
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#ifndef QEMU_KVM_ARM_H
|
||||
#define QEMU_KVM_ARM_H
|
||||
|
||||
#include "qapi/qapi-types-misc-arm.h"
|
||||
#include "system/kvm.h"
|
||||
#include "target/arm/cpu-qom.h"
|
||||
|
||||
@@ -263,4 +264,6 @@ void kvm_arm_enable_mte(Object *cpuobj, Error **errp);
|
||||
|
||||
void arm_cpu_kvm_set_irq(void *arm_cpu, int irq, int level);
|
||||
|
||||
void arm_gic_cap_kvm_probe(GICCapability *v2, GICCapability *v3);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -16,7 +16,7 @@ arm_common_ss.add(files(
|
||||
'mmuidx.c',
|
||||
))
|
||||
|
||||
arm_system_ss.add(files(
|
||||
arm_common_system_ss.add(files(
|
||||
'arm-qmp-cmds.c',
|
||||
))
|
||||
arm_system_ss.add(when: 'CONFIG_KVM', if_true: files('hyp_gdbstub.c', 'kvm.c'))
|
||||
|
||||
Reference in New Issue
Block a user