qemu_put_byte(f, s->kbd.len);
qemu_put_buffer(f, s->kbd.fifo, sizeof(s->kbd.fifo));
- for (i = 0; i < sizeof(s->pwm.file); i ++)
+ for (i = 0; i < ARRAY_SIZE(s->pwm.file); i ++)
qemu_put_be16s(f, &s->pwm.file[i]);
+ /* Padding for compatibility with older records. */
+ for ( ; i < sizeof(s->pwm.file); i++)
+ qemu_put_be16s(f, 0);
qemu_put_8s(f, &s->pwm.faddr);
qemu_put_buffer(f, s->pwm.addr, sizeof(s->pwm.addr));
qemu_put_timer(f, s->pwm.tm[0]);
static int lm_kbd_load(QEMUFile *f, void *opaque, int version_id)
{
struct lm_kbd_s *s = (struct lm_kbd_s *) opaque;
+ uint16_t pad;
int i;
i2c_slave_load(f, &s->i2c);
s->kbd.len = qemu_get_byte(f);
qemu_get_buffer(f, s->kbd.fifo, sizeof(s->kbd.fifo));
- for (i = 0; i < sizeof(s->pwm.file); i ++)
+ for (i = 0; i < ARRAY_SIZE(s->pwm.file); i ++)
qemu_get_be16s(f, &s->pwm.file[i]);
+ /* Skip padding. */
+ for ( ; i < sizeof(s->pwm.file); i++)
+ qemu_get_be16(f);
qemu_get_8s(f, &s->pwm.faddr);
qemu_get_buffer(f, s->pwm.addr, sizeof(s->pwm.addr));
qemu_get_timer(f, s->pwm.tm[0]);