vmstate: add VMSTATE_UINT32_EQUAL
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
23bfe28fff
commit
9122a8fed7
4
hw/hw.h
4
hw/hw.h
@ -343,6 +343,7 @@ extern const VMStateInfo vmstate_info_int64;
|
||||
extern const VMStateInfo vmstate_info_uint8_equal;
|
||||
extern const VMStateInfo vmstate_info_uint16_equal;
|
||||
extern const VMStateInfo vmstate_info_int32_equal;
|
||||
extern const VMStateInfo vmstate_info_uint32_equal;
|
||||
extern const VMStateInfo vmstate_info_int32_le;
|
||||
|
||||
extern const VMStateInfo vmstate_info_uint8;
|
||||
@ -704,6 +705,9 @@ extern const VMStateDescription vmstate_usb_device;
|
||||
#define VMSTATE_INT32_EQUAL(_f, _s) \
|
||||
VMSTATE_SINGLE(_f, _s, 0, vmstate_info_int32_equal, int32_t)
|
||||
|
||||
#define VMSTATE_UINT32_EQUAL(_f, _s) \
|
||||
VMSTATE_SINGLE(_f, _s, 0, vmstate_info_uint32_equal, uint32_t)
|
||||
|
||||
#define VMSTATE_INT32_LE(_f, _s) \
|
||||
VMSTATE_SINGLE(_f, _s, 0, vmstate_info_int32_le, int32_t)
|
||||
|
||||
|
21
savevm.c
21
savevm.c
@ -882,6 +882,27 @@ const VMStateInfo vmstate_info_uint32 = {
|
||||
.put = put_uint32,
|
||||
};
|
||||
|
||||
/* 32 bit uint. See that the received value is the same than the one
|
||||
in the field */
|
||||
|
||||
static int get_uint32_equal(QEMUFile *f, void *pv, size_t size)
|
||||
{
|
||||
uint32_t *v = pv;
|
||||
uint32_t v2;
|
||||
qemu_get_be32s(f, &v2);
|
||||
|
||||
if (*v == v2) {
|
||||
return 0;
|
||||
}
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
const VMStateInfo vmstate_info_uint32_equal = {
|
||||
.name = "uint32 equal",
|
||||
.get = get_uint32_equal,
|
||||
.put = put_uint32,
|
||||
};
|
||||
|
||||
/* 64 bit unsigned int */
|
||||
|
||||
static int get_uint64(QEMUFile *f, void *pv, size_t size)
|
||||
|
Loading…
Reference in New Issue
Block a user