Revision 371a4468

b/hw/tmp105.c
173 173
    s->len = 0;
174 174
}
175 175

  
176
static void tmp105_save(QEMUFile *f, void *opaque)
176
static void tmp105_post_save(void *opaque)
177 177
{
178
    TMP105State *s = (TMP105State *) opaque;
179

  
180
    qemu_put_byte(f, s->len);
181
    qemu_put_8s(f, &s->buf[0]);
182
    qemu_put_8s(f, &s->buf[1]);
183

  
184
    qemu_put_8s(f, &s->pointer);
185
    qemu_put_8s(f, &s->config);
186
    qemu_put_sbe16s(f, &s->temperature);
187
    qemu_put_sbe16s(f, &s->limit[0]);
188
    qemu_put_sbe16s(f, &s->limit[1]);
189
    qemu_put_byte(f, s->alarm);
178
    TMP105State *s = opaque;
190 179
    s->faults = tmp105_faultq[(s->config >> 3) & 3];		/* F */
191

  
192
    i2c_slave_save(f, &s->i2c);
193 180
}
194 181

  
195
static int tmp105_load(QEMUFile *f, void *opaque, int version_id)
182
static int tmp105_post_load(void *opaque, int version_id)
196 183
{
197
    TMP105State *s = (TMP105State *) opaque;
198

  
199
    s->len = qemu_get_byte(f);
200
    qemu_get_8s(f, &s->buf[0]);
201
    qemu_get_8s(f, &s->buf[1]);
202

  
203
    qemu_get_8s(f, &s->pointer);
204
    qemu_get_8s(f, &s->config);
205
    qemu_get_sbe16s(f, &s->temperature);
206
    qemu_get_sbe16s(f, &s->limit[0]);
207
    qemu_get_sbe16s(f, &s->limit[1]);
208
    s->alarm = qemu_get_byte(f);
184
    TMP105State *s = opaque;
209 185

  
210 186
    tmp105_interrupt_update(s);
211

  
212
    i2c_slave_load(f, &s->i2c);
213 187
    return 0;
214 188
}
215 189

  
190
static const VMStateDescription vmstate_tmp105 = {
191
    .name = "TMP105",
192
    .version_id = 0,
193
    .minimum_version_id = 0,
194
    .minimum_version_id_old = 0,
195
    .post_save = tmp105_post_save,
196
    .post_load = tmp105_post_load,
197
    .fields      = (VMStateField []) {
198
        VMSTATE_UINT8(len, TMP105State),
199
        VMSTATE_UINT8_ARRAY(buf, TMP105State, 2),
200
        VMSTATE_UINT8(pointer, TMP105State),
201
        VMSTATE_UINT8(config, TMP105State),
202
        VMSTATE_INT16(temperature, TMP105State),
203
        VMSTATE_INT16_ARRAY(limit, TMP105State, 2),
204
        VMSTATE_UINT8(alarm, TMP105State),
205
        VMSTATE_I2C_SLAVE(i2c, TMP105State),
206
        VMSTATE_END_OF_LIST()
207
    }
208
};
209

  
216 210
static void tmp105_reset(i2c_slave *i2c)
217 211
{
218 212
    TMP105State *s = (TMP105State *) i2c;
......
234 228

  
235 229
    tmp105_reset(&s->i2c);
236 230

  
237
    register_savevm("TMP105", -1, 0, tmp105_save, tmp105_load, s);
231
    vmstate_register(-1, &vmstate_tmp105, s);
238 232
    return 0;
239 233
}
240 234

  

Also available in: Unified diff