qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 07/11] max7310: QOM'ify


From: Peter Crosthwaite
Subject: Re: [Qemu-devel] [PATCH 07/11] max7310: QOM'ify
Date: Sun, 9 Feb 2014 11:43:24 +1000

On Sat, Feb 1, 2014 at 12:34 AM, Andreas Färber <address@hidden> wrote:
> Replace FROM_I2C_SLAVE() usages with QOM cast macro.
> Rename parent field.
>
> Signed-off-by: Andreas Färber <address@hidden>

Reviewed-by: Peter Crosthwaite <address@hidden>

> ---
>  hw/gpio/max7310.c | 23 ++++++++++++++---------
>  1 file changed, 14 insertions(+), 9 deletions(-)
>
> diff --git a/hw/gpio/max7310.c b/hw/gpio/max7310.c
> index 59b2877..cfcd89c 100644
> --- a/hw/gpio/max7310.c
> +++ b/hw/gpio/max7310.c
> @@ -9,8 +9,12 @@
>
>  #include "hw/i2c/i2c.h"
>
> -typedef struct {
> -    I2CSlave i2c;
> +#define TYPE_MAX7310 "max7310"
> +#define MAX7310(obj) OBJECT_CHECK(MAX7310State, (obj), TYPE_MAX7310)
> +
> +typedef struct MAX7310State {
> +    I2CSlave parent_obj;
> +
>      int i2c_command_byte;
>      int len;
>
> @@ -25,7 +29,8 @@ typedef struct {
>
>  static void max7310_reset(DeviceState *dev)
>  {
> -    MAX7310State *s = FROM_I2C_SLAVE(MAX7310State, I2C_SLAVE(dev));
> +    MAX7310State *s = MAX7310(dev);
> +
>      s->level &= s->direction;
>      s->direction = 0xff;
>      s->polarity = 0xf0;
> @@ -35,7 +40,7 @@ static void max7310_reset(DeviceState *dev)
>
>  static int max7310_rx(I2CSlave *i2c)
>  {
> -    MAX7310State *s = (MAX7310State *) i2c;
> +    MAX7310State *s = MAX7310(i2c);
>
>      switch (s->command) {
>      case 0x00: /* Input port */
> @@ -70,7 +75,7 @@ static int max7310_rx(I2CSlave *i2c)
>
>  static int max7310_tx(I2CSlave *i2c, uint8_t data)
>  {
> -    MAX7310State *s = (MAX7310State *) i2c;
> +    MAX7310State *s = MAX7310(i2c);
>      uint8_t diff;
>      int line;
>
> @@ -125,7 +130,7 @@ static int max7310_tx(I2CSlave *i2c, uint8_t data)
>
>  static void max7310_event(I2CSlave *i2c, enum i2c_event event)
>  {
> -    MAX7310State *s = (MAX7310State *) i2c;
> +    MAX7310State *s = MAX7310(i2c);
>      s->len = 0;
>
>      switch (event) {
> @@ -156,7 +161,7 @@ static const VMStateDescription vmstate_max7310 = {
>          VMSTATE_UINT8(polarity, MAX7310State),
>          VMSTATE_UINT8(status, MAX7310State),
>          VMSTATE_UINT8(command, MAX7310State),
> -        VMSTATE_I2C_SLAVE(i2c, MAX7310State),
> +        VMSTATE_I2C_SLAVE(parent_obj, MAX7310State),
>          VMSTATE_END_OF_LIST()
>      }
>  };
> @@ -177,7 +182,7 @@ static void max7310_gpio_set(void *opaque, int line, int 
> level)
>   * but also accepts sequences that are not SMBus so return an I2C device.  */
>  static int max7310_init(I2CSlave *i2c)
>  {
> -    MAX7310State *s = FROM_I2C_SLAVE(MAX7310State, i2c);
> +    MAX7310State *s = MAX7310(i2c);
>
>      qdev_init_gpio_in(&i2c->qdev, max7310_gpio_set, 8);
>      qdev_init_gpio_out(&i2c->qdev, s->handler, 8);
> @@ -199,7 +204,7 @@ static void max7310_class_init(ObjectClass *klass, void 
> *data)
>  }
>
>  static const TypeInfo max7310_info = {
> -    .name          = "max7310",
> +    .name          = TYPE_MAX7310,
>      .parent        = TYPE_I2C_SLAVE,
>      .instance_size = sizeof(MAX7310State),
>      .class_init    = max7310_class_init,
> --
> 1.8.4.5
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]