Revision e325e1f8

b/hw/i2c.c
48 48
    return bus;
49 49
}
50 50

  
51
/* Create a new slave device.  */
52
i2c_slave *i2c_slave_init(i2c_bus *bus, int address, int size)
53
{
54
    i2c_slave *dev;
55

  
56
    if (size < sizeof(i2c_slave))
57
        hw_error("I2C struct too small");
58

  
59
    dev = (i2c_slave *)qemu_mallocz(size);
60
    dev->address = address;
61
    dev->next = bus->dev;
62
    bus->dev = dev;
63
    dev->qdev.bus = bus;
64

  
65
    return dev;
66
}
67

  
68 51
void i2c_set_slave_address(i2c_slave *dev, int address)
69 52
{
70 53
    dev->address = address;
......
165 148
    s->next = s->bus->dev;
166 149
    s->bus->dev = s;
167 150

  
168
    s->event = info->event;
169
    s->recv = info->recv;
170
    s->send = info->send;
171

  
172 151
    info->init(s);
173 152
}
174 153

  
b/hw/i2c.h
36 36
{
37 37
    DeviceState qdev;
38 38
    I2CSlaveInfo *info;
39
    /* FIXME: These 3 should go away once all devices have been converted.  */
40
    i2c_event_cb event;
41
    i2c_recv_cb recv;
42
    i2c_send_cb send;
43 39

  
44 40
    /* Remaining fields for internal use by the I2C code.  */
45 41
    int address;
......
48 44
};
49 45

  
50 46
i2c_bus *i2c_init_bus(void);
51
i2c_slave *i2c_slave_init(i2c_bus *bus, int address, int size);
52 47
void i2c_set_slave_address(i2c_slave *dev, int address);
53 48
int i2c_bus_busy(i2c_bus *bus);
54 49
int i2c_start_transfer(i2c_bus *bus, int address, int recv);

Also available in: Unified diff