macio: QOM'ify some more
Move bar MemoryRegion initialization to an instance_init. Signed-off-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
baec19105b
commit
fcf1bbabf4
25
hw/macio.c
25
hw/macio.c
|
@ -27,9 +27,15 @@
|
||||||
#include "pci/pci.h"
|
#include "pci/pci.h"
|
||||||
#include "escc.h"
|
#include "escc.h"
|
||||||
|
|
||||||
|
#define TYPE_MACIO "macio"
|
||||||
|
#define MACIO(obj) OBJECT_CHECK(MacIOState, (obj), TYPE_MACIO)
|
||||||
|
|
||||||
typedef struct MacIOState
|
typedef struct MacIOState
|
||||||
{
|
{
|
||||||
|
/*< private >*/
|
||||||
PCIDevice parent;
|
PCIDevice parent;
|
||||||
|
/*< public >*/
|
||||||
|
|
||||||
int is_oldworld;
|
int is_oldworld;
|
||||||
MemoryRegion bar;
|
MemoryRegion bar;
|
||||||
MemoryRegion *pic_mem;
|
MemoryRegion *pic_mem;
|
||||||
|
@ -46,7 +52,6 @@ static void macio_bar_setup(MacIOState *macio_state)
|
||||||
int i;
|
int i;
|
||||||
MemoryRegion *bar = &macio_state->bar;
|
MemoryRegion *bar = &macio_state->bar;
|
||||||
|
|
||||||
memory_region_init(bar, "macio", 0x80000);
|
|
||||||
if (macio_state->pic_mem) {
|
if (macio_state->pic_mem) {
|
||||||
if (macio_state->is_oldworld) {
|
if (macio_state->is_oldworld) {
|
||||||
/* Heathrow PIC */
|
/* Heathrow PIC */
|
||||||
|
@ -81,6 +86,13 @@ static int macio_initfn(PCIDevice *d)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void macio_instance_init(Object *obj)
|
||||||
|
{
|
||||||
|
MacIOState *s = MACIO(obj);
|
||||||
|
|
||||||
|
memory_region_init(&s->bar, "macio", 0x80000);
|
||||||
|
}
|
||||||
|
|
||||||
static void macio_class_init(ObjectClass *klass, void *data)
|
static void macio_class_init(ObjectClass *klass, void *data)
|
||||||
{
|
{
|
||||||
PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
|
PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
|
||||||
|
@ -90,16 +102,17 @@ static void macio_class_init(ObjectClass *klass, void *data)
|
||||||
k->class_id = PCI_CLASS_OTHERS << 8;
|
k->class_id = PCI_CLASS_OTHERS << 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo macio_info = {
|
static const TypeInfo macio_type_info = {
|
||||||
.name = "macio",
|
.name = TYPE_MACIO,
|
||||||
.parent = TYPE_PCI_DEVICE,
|
.parent = TYPE_PCI_DEVICE,
|
||||||
.instance_size = sizeof(MacIOState),
|
.instance_size = sizeof(MacIOState),
|
||||||
|
.instance_init = macio_instance_init,
|
||||||
.class_init = macio_class_init,
|
.class_init = macio_class_init,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void macio_register_types(void)
|
static void macio_register_types(void)
|
||||||
{
|
{
|
||||||
type_register_static(&macio_info);
|
type_register_static(&macio_type_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
type_init(macio_register_types)
|
type_init(macio_register_types)
|
||||||
|
@ -114,9 +127,9 @@ void macio_init (PCIBus *bus, int device_id, int is_oldworld,
|
||||||
MacIOState *macio_state;
|
MacIOState *macio_state;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
d = pci_create_simple(bus, -1, "macio");
|
d = pci_create_simple(bus, -1, TYPE_MACIO);
|
||||||
|
|
||||||
macio_state = DO_UPCAST(MacIOState, parent, d);
|
macio_state = MACIO(d);
|
||||||
macio_state->is_oldworld = is_oldworld;
|
macio_state->is_oldworld = is_oldworld;
|
||||||
macio_state->pic_mem = pic_mem;
|
macio_state->pic_mem = pic_mem;
|
||||||
macio_state->dbdma_mem = dbdma_mem;
|
macio_state->dbdma_mem = dbdma_mem;
|
||||||
|
|
Loading…
Reference in New Issue