Revision 0211364d
b/hw/pxa2xx.c | ||
---|---|---|
1452 | 1452 |
pxa2xx_i2c_write, |
1453 | 1453 |
}; |
1454 | 1454 |
|
1455 |
static void pxa2xx_i2c_save(QEMUFile *f, void *opaque) |
|
1456 |
{ |
|
1457 |
PXA2xxI2CState *s = (PXA2xxI2CState *) opaque; |
|
1458 |
|
|
1459 |
qemu_put_be16s(f, &s->control); |
|
1460 |
qemu_put_be16s(f, &s->status); |
|
1461 |
qemu_put_8s(f, &s->ibmr); |
|
1462 |
qemu_put_8s(f, &s->data); |
|
1463 |
|
|
1464 |
i2c_slave_save(f, &s->slave->i2c); |
|
1465 |
} |
|
1466 |
|
|
1467 |
static int pxa2xx_i2c_load(QEMUFile *f, void *opaque, int version_id) |
|
1468 |
{ |
|
1469 |
PXA2xxI2CState *s = (PXA2xxI2CState *) opaque; |
|
1470 |
|
|
1471 |
if (version_id != 1) |
|
1472 |
return -EINVAL; |
|
1473 |
|
|
1474 |
qemu_get_be16s(f, &s->control); |
|
1475 |
qemu_get_be16s(f, &s->status); |
|
1476 |
qemu_get_8s(f, &s->ibmr); |
|
1477 |
qemu_get_8s(f, &s->data); |
|
1455 |
static const VMStateDescription vmstate_pxa2xx_i2c_slave = { |
|
1456 |
.name = "pxa2xx_i2c_slave", |
|
1457 |
.version_id = 1, |
|
1458 |
.minimum_version_id = 1, |
|
1459 |
.minimum_version_id_old = 1, |
|
1460 |
.fields = (VMStateField []) { |
|
1461 |
VMSTATE_I2C_SLAVE(i2c, PXA2xxI2CSlaveState), |
|
1462 |
VMSTATE_END_OF_LIST() |
|
1463 |
} |
|
1464 |
}; |
|
1478 | 1465 |
|
1479 |
i2c_slave_load(f, &s->slave->i2c); |
|
1480 |
return 0; |
|
1481 |
} |
|
1466 |
static const VMStateDescription vmstate_pxa2xx_i2c = { |
|
1467 |
.name = "pxa2xx_i2c", |
|
1468 |
.version_id = 1, |
|
1469 |
.minimum_version_id = 1, |
|
1470 |
.minimum_version_id_old = 1, |
|
1471 |
.fields = (VMStateField []) { |
|
1472 |
VMSTATE_UINT16(control, PXA2xxI2CState), |
|
1473 |
VMSTATE_UINT16(status, PXA2xxI2CState), |
|
1474 |
VMSTATE_UINT8(ibmr, PXA2xxI2CState), |
|
1475 |
VMSTATE_UINT8(data, PXA2xxI2CState), |
|
1476 |
VMSTATE_STRUCT_POINTER(slave, PXA2xxI2CState, |
|
1477 |
vmstate_pxa2xx_i2c, PXA2xxI2CSlaveState *), |
|
1478 |
VMSTATE_END_OF_LIST() |
|
1479 |
} |
|
1480 |
}; |
|
1482 | 1481 |
|
1483 | 1482 |
static int pxa2xx_i2c_slave_init(i2c_slave *i2c) |
1484 | 1483 |
{ |
... | ... | |
1516 | 1515 |
cpu_register_physical_memory(base & ~region_size, |
1517 | 1516 |
region_size + 1, iomemtype); |
1518 | 1517 |
|
1519 |
register_savevm("pxa2xx_i2c", base, 1, |
|
1520 |
pxa2xx_i2c_save, pxa2xx_i2c_load, s); |
|
1518 |
vmstate_register(base, &vmstate_pxa2xx_i2c, s); |
|
1521 | 1519 |
|
1522 | 1520 |
return s; |
1523 | 1521 |
} |
Also available in: Unified diff