mirror of https://gitee.com/openkylin/qemu.git
Introduce gic_class_name() instead of repeating condition
This small inline returns correct GIC class name depending on whether we use KVM acceleration or not. Avoids duplicating the condition everywhere. Signed-off-by: Pavel Fedin <p.fedin@samsung.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 4f26901be9b844b563673ce3ad08eeedbb7a7132.1438758065.git.p.fedin@samsung.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
7926c210ab
commit
e6fbcbc4e5
|
@ -49,6 +49,7 @@
|
|||
#include "hw/platform-bus.h"
|
||||
#include "hw/arm/fdt.h"
|
||||
#include "hw/intc/arm_gic_common.h"
|
||||
#include "kvm_arm.h"
|
||||
|
||||
/* Number of external interrupt lines to configure the GIC with */
|
||||
#define NUM_IRQS 256
|
||||
|
@ -366,12 +367,10 @@ static void create_gic(VirtBoardInfo *vbi, qemu_irq *pic)
|
|||
/* We create a standalone GIC v2 */
|
||||
DeviceState *gicdev;
|
||||
SysBusDevice *gicbusdev;
|
||||
const char *gictype = "arm_gic";
|
||||
const char *gictype;
|
||||
int i;
|
||||
|
||||
if (kvm_irqchip_in_kernel()) {
|
||||
gictype = "kvm-arm-gic";
|
||||
}
|
||||
gictype = gic_class_name();
|
||||
|
||||
gicdev = qdev_create(NULL, gictype);
|
||||
qdev_prop_set_uint32(gicdev, "revision", 2);
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include "hw/cpu/a15mpcore.h"
|
||||
#include "sysemu/kvm.h"
|
||||
#include "kvm_arm.h"
|
||||
|
||||
static void a15mp_priv_set_irq(void *opaque, int irq, int level)
|
||||
{
|
||||
|
@ -33,16 +34,11 @@ static void a15mp_priv_initfn(Object *obj)
|
|||
SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
|
||||
A15MPPrivState *s = A15MPCORE_PRIV(obj);
|
||||
DeviceState *gicdev;
|
||||
const char *gictype = "arm_gic";
|
||||
|
||||
if (kvm_irqchip_in_kernel()) {
|
||||
gictype = "kvm-arm-gic";
|
||||
}
|
||||
|
||||
memory_region_init(&s->container, obj, "a15mp-priv-container", 0x8000);
|
||||
sysbus_init_mmio(sbd, &s->container);
|
||||
|
||||
object_initialize(&s->gic, sizeof(s->gic), gictype);
|
||||
object_initialize(&s->gic, sizeof(s->gic), gic_class_name());
|
||||
gicdev = DEVICE(&s->gic);
|
||||
qdev_set_parent_bus(gicdev, sysbus_get_default());
|
||||
qdev_prop_set_uint32(gicdev, "revision", 2);
|
||||
|
|
|
@ -191,4 +191,9 @@ int kvm_arm_sync_mpstate_to_qemu(ARMCPU *cpu);
|
|||
|
||||
#endif
|
||||
|
||||
static inline const char *gic_class_name(void)
|
||||
{
|
||||
return kvm_irqchip_in_kernel() ? "kvm-arm-gic" : "arm_gic";
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue