Revision c7298ab2 hw/mipsnet.c
b/hw/mipsnet.c | ||
---|---|---|
202 | 202 |
} |
203 | 203 |
} |
204 | 204 |
|
205 |
static void mipsnet_save(QEMUFile *f, void *opaque) |
|
206 |
{ |
|
207 |
MIPSnetState *s = opaque; |
|
208 |
|
|
209 |
qemu_put_be32s(f, &s->busy); |
|
210 |
qemu_put_be32s(f, &s->rx_count); |
|
211 |
qemu_put_be32s(f, &s->rx_read); |
|
212 |
qemu_put_be32s(f, &s->tx_count); |
|
213 |
qemu_put_be32s(f, &s->tx_written); |
|
214 |
qemu_put_be32s(f, &s->intctl); |
|
215 |
qemu_put_buffer(f, s->rx_buffer, MAX_ETH_FRAME_SIZE); |
|
216 |
qemu_put_buffer(f, s->tx_buffer, MAX_ETH_FRAME_SIZE); |
|
217 |
} |
|
218 |
|
|
219 |
static int mipsnet_load(QEMUFile *f, void *opaque, int version_id) |
|
220 |
{ |
|
221 |
MIPSnetState *s = opaque; |
|
222 |
|
|
223 |
if (version_id > 0) |
|
224 |
return -EINVAL; |
|
225 |
|
|
226 |
qemu_get_be32s(f, &s->busy); |
|
227 |
qemu_get_be32s(f, &s->rx_count); |
|
228 |
qemu_get_be32s(f, &s->rx_read); |
|
229 |
qemu_get_be32s(f, &s->tx_count); |
|
230 |
qemu_get_be32s(f, &s->tx_written); |
|
231 |
qemu_get_be32s(f, &s->intctl); |
|
232 |
qemu_get_buffer(f, s->rx_buffer, MAX_ETH_FRAME_SIZE); |
|
233 |
qemu_get_buffer(f, s->tx_buffer, MAX_ETH_FRAME_SIZE); |
|
234 |
|
|
235 |
return 0; |
|
236 |
} |
|
205 |
static const VMStateDescription vmstate_mipsnet = { |
|
206 |
.name = "mipsnet", |
|
207 |
.version_id = 0, |
|
208 |
.minimum_version_id = 0, |
|
209 |
.minimum_version_id_old = 0, |
|
210 |
.fields = (VMStateField[]) { |
|
211 |
VMSTATE_UINT32(busy, MIPSnetState), |
|
212 |
VMSTATE_UINT32(rx_count, MIPSnetState), |
|
213 |
VMSTATE_UINT32(rx_read, MIPSnetState), |
|
214 |
VMSTATE_UINT32(tx_count, MIPSnetState), |
|
215 |
VMSTATE_UINT32(tx_written, MIPSnetState), |
|
216 |
VMSTATE_UINT32(intctl, MIPSnetState), |
|
217 |
VMSTATE_BUFFER(rx_buffer, MIPSnetState), |
|
218 |
VMSTATE_BUFFER(tx_buffer, MIPSnetState), |
|
219 |
VMSTATE_END_OF_LIST() |
|
220 |
} |
|
221 |
}; |
|
237 | 222 |
|
238 | 223 |
static void mipsnet_cleanup(VLANClientState *nc) |
239 | 224 |
{ |
240 | 225 |
MIPSnetState *s = DO_UPCAST(NICState, nc, nc)->opaque; |
241 | 226 |
|
242 |
unregister_savevm(NULL, "mipsnet", s);
|
|
227 |
vmstate_unregister(NULL, &vmstate_mipsnet, s);
|
|
243 | 228 |
|
244 | 229 |
isa_unassign_ioport(s->io_base, 36); |
245 | 230 |
|
... | ... | |
284 | 269 |
} |
285 | 270 |
|
286 | 271 |
mipsnet_reset(s); |
287 |
register_savevm(NULL, "mipsnet", 0, 0, mipsnet_save, mipsnet_load, s);
|
|
272 |
vmstate_register(NULL, 0, &vmstate_mipsnet, s);
|
|
288 | 273 |
} |
Also available in: Unified diff