Commit 074f2fff authored by Gerd Hoffmann's avatar Gerd Hoffmann Committed by Paul Brook
Browse files

qdev: move name+size into DeviceInfo (v2)



Rationale: move device information from code to data structures.

v2: Adapt the drivers missed in the first version.

Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent 57b452a8
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -155,13 +155,15 @@ static void ads7846_init(SSISlave *dev)
}

static SSISlaveInfo ads7846_info = {
    .qdev.name ="ads7846",
    .qdev.size = sizeof(ADS7846State),
    .init = ads7846_init,
    .transfer = ads7846_transfer
};

static void ads7846_register_devices(void)
{
    ssi_register_slave("ads7846", sizeof(ADS7846State), &ads7846_info);
    ssi_register_slave(&ads7846_info);
}

device_init(ads7846_register_devices)
+3 −3
Original line number Diff line number Diff line
@@ -152,12 +152,12 @@ static void i2c_slave_qdev_init(DeviceState *dev, DeviceInfo *base)
    info->init(s);
}

void i2c_register_slave(const char *name, int size, I2CSlaveInfo *info)
void i2c_register_slave(I2CSlaveInfo *info)
{
    assert(size >= sizeof(i2c_slave));
    assert(info->qdev.size >= sizeof(i2c_slave));
    info->qdev.init = i2c_slave_qdev_init;
    info->qdev.bus_type = BUS_TYPE_I2C;
    qdev_register(name, size, &info->qdev);
    qdev_register(&info->qdev);
}

DeviceState *i2c_create_slave(i2c_bus *bus, const char *name, int addr)
+1 −1
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ void i2c_slave_load(QEMUFile *f, i2c_slave *dev);
#define I2C_SLAVE_FROM_QDEV(dev) DO_UPCAST(i2c_slave, qdev, dev)
#define FROM_I2C_SLAVE(type, dev) DO_UPCAST(type, i2c, dev)

void i2c_register_slave(const char *name, int size, I2CSlaveInfo *type);
void i2c_register_slave(I2CSlaveInfo *type);

DeviceState *i2c_create_slave(i2c_bus *bus, const char *name, int addr);

+3 −1
Original line number Diff line number Diff line
@@ -526,6 +526,8 @@ void lm832x_key_event(struct i2c_slave *i2c, int key, int state)
}

static I2CSlaveInfo lm8323_info = {
    .qdev.name = "lm8323",
    .qdev.size = sizeof(LM823KbdState),
    .init = lm8323_init,
    .event = lm_i2c_event,
    .recv = lm_i2c_rx,
@@ -534,7 +536,7 @@ static I2CSlaveInfo lm8323_info = {

static void lm832x_register_devices(void)
{
    i2c_register_slave("lm8323", sizeof(LM823KbdState), &lm8323_info);
    i2c_register_slave(&lm8323_info);
}

device_init(lm832x_register_devices)
+6 −2
Original line number Diff line number Diff line
@@ -164,19 +164,23 @@ void max111x_set_input(DeviceState *dev, int line, uint8_t value)
}

static SSISlaveInfo max1110_info = {
    .qdev.name = "max1110",
    .qdev.size = sizeof(MAX111xState),
    .init = max1110_init,
    .transfer = max111x_transfer
};

static SSISlaveInfo max1111_info = {
    .qdev.name = "max1111",
    .qdev.size = sizeof(MAX111xState),
    .init = max1111_init,
    .transfer = max111x_transfer
};

static void max111x_register_devices(void)
{
    ssi_register_slave("max1110", sizeof(MAX111xState), &max1110_info);
    ssi_register_slave("max1111", sizeof(MAX111xState), &max1111_info);
    ssi_register_slave(&max1110_info);
    ssi_register_slave(&max1111_info);
}

device_init(max111x_register_devices)
Loading