On 26/11/18 21:04, miny...@acm.org wrote: > From: Corey Minyard <cminy...@mvista.com> > > Create a type name and a cast macro and use those through the > code. > > Signed-off-by: Corey Minyard <cminy...@mvista.com> > Reviewed-by: Peter Maydell <peter.mayd...@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> > --- > hw/i2c/smbus_eeprom.c | 15 ++++++++++----- > 1 file changed, 10 insertions(+), 5 deletions(-) > > diff --git a/hw/i2c/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c > index 4d25222e23..8d4eed129f 100644 > --- a/hw/i2c/smbus_eeprom.c > +++ b/hw/i2c/smbus_eeprom.c > @@ -30,6 +30,11 @@ > > //#define DEBUG > > +#define TYPE_SMBUS_EEPROM "smbus-eeprom" > + > +#define SMBUS_EEPROM(obj) \ > + OBJECT_CHECK(SMBusEEPROMDevice, (obj), TYPE_SMBUS_EEPROM) > + > typedef struct SMBusEEPROMDevice { > SMBusDevice smbusdev; > void *data; > @@ -38,7 +43,7 @@ typedef struct SMBusEEPROMDevice { > > static uint8_t eeprom_receive_byte(SMBusDevice *dev) > { > - SMBusEEPROMDevice *eeprom = (SMBusEEPROMDevice *) dev; > + SMBusEEPROMDevice *eeprom = SMBUS_EEPROM(dev); > uint8_t *data = eeprom->data; > uint8_t val = data[eeprom->offset++]; > > @@ -51,7 +56,7 @@ static uint8_t eeprom_receive_byte(SMBusDevice *dev) > > static int eeprom_write_data(SMBusDevice *dev, uint8_t *buf, uint8_t len) > { > - SMBusEEPROMDevice *eeprom = (SMBusEEPROMDevice *) dev; > + SMBusEEPROMDevice *eeprom = SMBUS_EEPROM(dev); > uint8_t *data = eeprom->data; > > #ifdef DEBUG > @@ -73,7 +78,7 @@ static int eeprom_write_data(SMBusDevice *dev, uint8_t > *buf, uint8_t len) > > static void smbus_eeprom_realize(DeviceState *dev, Error **errp) > { > - SMBusEEPROMDevice *eeprom = (SMBusEEPROMDevice *)dev; > + SMBusEEPROMDevice *eeprom = SMBUS_EEPROM(dev); > > eeprom->offset = 0; > } > @@ -97,7 +102,7 @@ static void smbus_eeprom_class_initfn(ObjectClass *klass, > void *data) > } > > static const TypeInfo smbus_eeprom_info = { > - .name = "smbus-eeprom", > + .name = TYPE_SMBUS_EEPROM, > .parent = TYPE_SMBUS_DEVICE, > .instance_size = sizeof(SMBusEEPROMDevice), > .class_init = smbus_eeprom_class_initfn, > @@ -114,7 +119,7 @@ void smbus_eeprom_init_one(I2CBus *smbus, uint8_t > address, uint8_t *eeprom_buf) > { > DeviceState *dev; > > - dev = qdev_create((BusState *) smbus, "smbus-eeprom"); > + dev = qdev_create((BusState *) smbus, TYPE_SMBUS_EEPROM); > qdev_prop_set_uint8(dev, "address", address); > qdev_prop_set_ptr(dev, "data", eeprom_buf); > qdev_init_nofail(dev); >