Revision bd7f92e5 include/migration/vmstate.h
b/include/migration/vmstate.h | ||
---|---|---|
164 | 164 |
extern const VMStateInfo vmstate_info_unused_buffer; |
165 | 165 |
extern const VMStateInfo vmstate_info_bitmap; |
166 | 166 |
|
167 |
#define type_check_2darray(t1,t2,n,m) ((t1(*)[n][m])0 - (t2*)0) |
|
167 | 168 |
#define type_check_array(t1,t2,n) ((t1(*)[n])0 - (t2*)0) |
168 | 169 |
#define type_check_pointer(t1,t2) ((t1**)0 - (t2*)0) |
169 | 170 |
|
... | ... | |
179 | 180 |
(offsetof(_state, _field) + \ |
180 | 181 |
type_check_array(_type, typeof_field(_state, _field), _num)) |
181 | 182 |
|
183 |
#define vmstate_offset_2darray(_state, _field, _type, _n1, _n2) \ |
|
184 |
(offsetof(_state, _field) + \ |
|
185 |
type_check_2darray(_type, typeof_field(_state, _field), _n1, _n2)) |
|
186 |
|
|
182 | 187 |
#define vmstate_offset_sub_array(_state, _field, _type, _start) \ |
183 | 188 |
(offsetof(_state, _field[_start])) |
184 | 189 |
|
... | ... | |
224 | 229 |
.offset = vmstate_offset_array(_state, _field, _type, _num), \ |
225 | 230 |
} |
226 | 231 |
|
232 |
#define VMSTATE_2DARRAY(_field, _state, _n1, _n2, _version, _info, _type) { \ |
|
233 |
.name = (stringify(_field)), \ |
|
234 |
.version_id = (_version), \ |
|
235 |
.num = (_n1) * (_n2), \ |
|
236 |
.info = &(_info), \ |
|
237 |
.size = sizeof(_type), \ |
|
238 |
.flags = VMS_ARRAY, \ |
|
239 |
.offset = vmstate_offset_2darray(_state, _field, _type, _n1, _n2), \ |
|
240 |
} |
|
241 |
|
|
227 | 242 |
#define VMSTATE_ARRAY_TEST(_field, _state, _num, _test, _info, _type) {\ |
228 | 243 |
.name = (stringify(_field)), \ |
229 | 244 |
.field_exists = (_test), \ |
... | ... | |
592 | 607 |
#define VMSTATE_UINT16_ARRAY_V(_f, _s, _n, _v) \ |
593 | 608 |
VMSTATE_ARRAY(_f, _s, _n, _v, vmstate_info_uint16, uint16_t) |
594 | 609 |
|
610 |
#define VMSTATE_UINT16_2DARRAY_V(_f, _s, _n1, _n2, _v) \ |
|
611 |
VMSTATE_2DARRAY(_f, _s, _n1, _n2, _v, vmstate_info_uint16, uint16_t) |
|
612 |
|
|
595 | 613 |
#define VMSTATE_UINT16_ARRAY(_f, _s, _n) \ |
596 | 614 |
VMSTATE_UINT16_ARRAY_V(_f, _s, _n, 0) |
597 | 615 |
|
616 |
#define VMSTATE_UINT16_2DARRAY(_f, _s, _n1, _n2) \ |
|
617 |
VMSTATE_UINT16_2DARRAY_V(_f, _s, _n1, _n2, 0) |
|
618 |
|
|
619 |
#define VMSTATE_UINT8_2DARRAY_V(_f, _s, _n1, _n2, _v) \ |
|
620 |
VMSTATE_2DARRAY(_f, _s, _n1, _n2, _v, vmstate_info_uint8, uint8_t) |
|
621 |
|
|
598 | 622 |
#define VMSTATE_UINT8_ARRAY_V(_f, _s, _n, _v) \ |
599 | 623 |
VMSTATE_ARRAY(_f, _s, _n, _v, vmstate_info_uint8, uint8_t) |
600 | 624 |
|
601 | 625 |
#define VMSTATE_UINT8_ARRAY(_f, _s, _n) \ |
602 | 626 |
VMSTATE_UINT8_ARRAY_V(_f, _s, _n, 0) |
603 | 627 |
|
628 |
#define VMSTATE_UINT8_2DARRAY(_f, _s, _n1, _n2) \ |
|
629 |
VMSTATE_UINT8_2DARRAY_V(_f, _s, _n1, _n2, 0) |
|
630 |
|
|
604 | 631 |
#define VMSTATE_UINT32_ARRAY_V(_f, _s, _n, _v) \ |
605 | 632 |
VMSTATE_ARRAY(_f, _s, _n, _v, vmstate_info_uint32, uint32_t) |
606 | 633 |
|
Also available in: Unified diff