Am 12.02.2014 01:29, schrieb Peter Crosthwaite: > Define and use QOM cast macro. Removes some usages of legacy casting > systems. > > Signed-off-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com> > --- > > hw/misc/max111x.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/hw/misc/max111x.c b/hw/misc/max111x.c > index 9e50e7e..8c78979 100644 > --- a/hw/misc/max111x.c > +++ b/hw/misc/max111x.c > @@ -24,6 +24,9 @@ typedef struct { > > #define TYPE_MAX_111X "max111x" > > +#define MAX_111X(obj) \ > + OBJECT_CHECK(MAX111xState, (obj), TYPE_MAX_111X) > + > #define TYPE_MAX_1110 "max1110" > #define TYPE_MAX_1111 "max1111" > > @@ -97,7 +100,7 @@ static void max111x_write(MAX111xState *s, uint32_t value) > > static uint32_t max111x_transfer(SSISlave *dev, uint32_t value) > { > - MAX111xState *s = FROM_SSI_SLAVE(MAX111xState, dev); > + MAX111xState *s = MAX_111X(dev); > max111x_write(s, value); > return max111x_read(s); > } > @@ -122,7 +125,7 @@ static const VMStateDescription vmstate_max111x = { > > static int max111x_init(SSISlave *dev, int inputs) > { > - MAX111xState *s = FROM_SSI_SLAVE(MAX111xState, dev); > + MAX111xState *s = MAX_111X(dev); > > qdev_init_gpio_out(DEVICE(dev), &s->interrupt, 1); > > @@ -154,7 +157,7 @@ static int max1111_init(SSISlave *dev) > > void max111x_set_input(DeviceState *dev, int line, uint8_t value) > { > - MAX111xState *s = FROM_SSI_SLAVE(MAX111xState, SSI_SLAVE_FROM_QDEV(dev)); > + MAX111xState *s = MAX_111X(dev); > assert(line >= 0 && line < s->inputs); > s->input[line] = value; > }
Adding: diff --git a/hw/misc/max111x.c b/hw/misc/max111x.c index 8c78979..7aacfff 100644 --- a/hw/misc/max111x.c +++ b/hw/misc/max111x.c @@ -13,7 +13,8 @@ #include "hw/ssi.h" typedef struct { - SSISlave ssidev; + SSISlave parent_obj; + qemu_irq interrupt; uint8_t tb1, rb2, rb3; int cycle; @@ -111,7 +112,7 @@ static const VMStateDescription vmstate_max111x = { .minimum_version_id = 1, .minimum_version_id_old = 1, .fields = (VMStateField[]) { - VMSTATE_SSI_SLAVE(ssidev, MAX111xState), + VMSTATE_SSI_SLAVE(parent_obj, MAX111xState), VMSTATE_UINT8(tb1, MAX111xState), VMSTATE_UINT8(rb2, MAX111xState), VMSTATE_UINT8(rb3, MAX111xState), Andreas -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg