mirror of https://github.com/xemu-project/xemu.git
intc/openpic: QOM'ify
Introduce type constant and cast macro. Signed-off-by: Andreas Färber <afaerber@suse.de> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
d85937e683
commit
e1766344fd
|
@ -251,8 +251,13 @@ typedef struct IRQDest {
|
||||||
uint32_t outputs_active[OPENPIC_OUTPUT_NB];
|
uint32_t outputs_active[OPENPIC_OUTPUT_NB];
|
||||||
} IRQDest;
|
} IRQDest;
|
||||||
|
|
||||||
|
#define OPENPIC(obj) OBJECT_CHECK(OpenPICState, (obj), TYPE_OPENPIC)
|
||||||
|
|
||||||
typedef struct OpenPICState {
|
typedef struct OpenPICState {
|
||||||
SysBusDevice busdev;
|
/*< private >*/
|
||||||
|
SysBusDevice parent_obj;
|
||||||
|
/*< public >*/
|
||||||
|
|
||||||
MemoryRegion mem;
|
MemoryRegion mem;
|
||||||
|
|
||||||
/* Behavior control */
|
/* Behavior control */
|
||||||
|
@ -533,7 +538,7 @@ static void openpic_set_irq(void *opaque, int n_IRQ, int level)
|
||||||
|
|
||||||
static void openpic_reset(DeviceState *d)
|
static void openpic_reset(DeviceState *d)
|
||||||
{
|
{
|
||||||
OpenPICState *opp = FROM_SYSBUS(typeof(*opp), SYS_BUS_DEVICE(d));
|
OpenPICState *opp = OPENPIC(d);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
opp->gcr = GCR_RESET;
|
opp->gcr = GCR_RESET;
|
||||||
|
@ -699,7 +704,7 @@ static void openpic_gcr_write(OpenPICState *opp, uint64_t val)
|
||||||
bool mpic_proxy = false;
|
bool mpic_proxy = false;
|
||||||
|
|
||||||
if (val & GCR_RESET) {
|
if (val & GCR_RESET) {
|
||||||
openpic_reset(&opp->busdev.qdev);
|
openpic_reset(DEVICE(opp));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1524,7 +1529,7 @@ static void map_list(OpenPICState *opp, const MemReg *list, int *count)
|
||||||
|
|
||||||
static int openpic_init(SysBusDevice *dev)
|
static int openpic_init(SysBusDevice *dev)
|
||||||
{
|
{
|
||||||
OpenPICState *opp = FROM_SYSBUS(typeof (*opp), dev);
|
OpenPICState *opp = OPENPIC(dev);
|
||||||
int i, j;
|
int i, j;
|
||||||
int list_count = 0;
|
int list_count = 0;
|
||||||
static const MemReg list_le[] = {
|
static const MemReg list_le[] = {
|
||||||
|
@ -1617,7 +1622,7 @@ static int openpic_init(SysBusDevice *dev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
register_savevm(&opp->busdev.qdev, "openpic", 0, 2,
|
register_savevm(DEVICE(opp), "openpic", 0, 2,
|
||||||
openpic_save, openpic_load, opp);
|
openpic_save, openpic_load, opp);
|
||||||
|
|
||||||
sysbus_init_mmio(dev, &opp->mem);
|
sysbus_init_mmio(dev, &opp->mem);
|
||||||
|
@ -1643,7 +1648,7 @@ static void openpic_class_init(ObjectClass *klass, void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo openpic_info = {
|
static const TypeInfo openpic_info = {
|
||||||
.name = "openpic",
|
.name = TYPE_OPENPIC,
|
||||||
.parent = TYPE_SYS_BUS_DEVICE,
|
.parent = TYPE_SYS_BUS_DEVICE,
|
||||||
.instance_size = sizeof(OpenPICState),
|
.instance_size = sizeof(OpenPICState),
|
||||||
.class_init = openpic_class_init,
|
.class_init = openpic_class_init,
|
||||||
|
|
|
@ -479,7 +479,7 @@ static DeviceState *ppce500_init_mpic_qemu(PPCE500Params *params,
|
||||||
SysBusDevice *s;
|
SysBusDevice *s;
|
||||||
int i, j, k;
|
int i, j, k;
|
||||||
|
|
||||||
dev = qdev_create(NULL, "openpic");
|
dev = qdev_create(NULL, TYPE_OPENPIC);
|
||||||
qdev_prop_set_uint32(dev, "model", params->mpic_version);
|
qdev_prop_set_uint32(dev, "model", params->mpic_version);
|
||||||
qdev_prop_set_uint32(dev, "nb_cpus", smp_cpus);
|
qdev_prop_set_uint32(dev, "nb_cpus", smp_cpus);
|
||||||
|
|
||||||
|
|
|
@ -329,7 +329,7 @@ static void ppc_core99_init(QEMUMachineInitArgs *args)
|
||||||
|
|
||||||
pic = g_new(qemu_irq, 64);
|
pic = g_new(qemu_irq, 64);
|
||||||
|
|
||||||
dev = qdev_create(NULL, "openpic");
|
dev = qdev_create(NULL, TYPE_OPENPIC);
|
||||||
qdev_prop_set_uint32(dev, "model", OPENPIC_MODEL_RAVEN);
|
qdev_prop_set_uint32(dev, "model", OPENPIC_MODEL_RAVEN);
|
||||||
qdev_init_nofail(dev);
|
qdev_init_nofail(dev);
|
||||||
s = SYS_BUS_DEVICE(dev);
|
s = SYS_BUS_DEVICE(dev);
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
#include "qemu-common.h"
|
#include "qemu-common.h"
|
||||||
#include "hw/qdev.h"
|
#include "hw/qdev.h"
|
||||||
|
|
||||||
|
#define TYPE_OPENPIC "openpic"
|
||||||
|
|
||||||
/* OpenPIC have 5 outputs per CPU connected and one IRQ out single output */
|
/* OpenPIC have 5 outputs per CPU connected and one IRQ out single output */
|
||||||
enum {
|
enum {
|
||||||
OPENPIC_OUTPUT_INT = 0, /* IRQ */
|
OPENPIC_OUTPUT_INT = 0, /* IRQ */
|
||||||
|
|
Loading…
Reference in New Issue