From 6680f01c8c3b7dd87e16d51d93df3ae72c237b42 Mon Sep 17 00:00:00 2001 From: Juan Quintela Date: Tue, 29 Sep 2009 22:48:24 +0200 Subject: vmstate: Add support for sending partial arrays This one is needed for changees happening on fdc. It allows you to send arrays of structs whose size we want to send it is another field with type uint8_t. (If you have been able to read the whole sentence without stoping for breathing, you can use it. Signed-off-by: Juan Quintela Signed-off-by: Anthony Liguori --- hw/hw.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'hw') diff --git a/hw/hw.h b/hw/hw.h index b9ae33a..9afe50a 100644 --- a/hw/hw.h +++ b/hw/hw.h @@ -398,6 +398,18 @@ extern const VMStateInfo vmstate_info_buffer; + type_check_array(_type,typeof_field(_state, _field),_num) \ } +#define VMSTATE_STRUCT_ARRAY_SIZE_UINT8(_field, _state, _field__num, _version, _vmsd, _type) { \ + .name = (stringify(_field)), \ + .num_offset = offsetof(_state, _field_num) \ + + type_check(uint8_t,typeof_field(_state, _field_num)), \ + .version_id = (_version), \ + .vmsd = &(_vmsd), \ + .size = sizeof(_type), \ + .flags = VMS_STRUCT|VMS_ARRAY, \ + .offset = offsetof(_state, _field) \ + + type_check_array(_type,typeof_field(_state, _field),_num) \ +} + #define VMSTATE_STATIC_BUFFER(_field, _state, _version) { \ .name = (stringify(_field)), \ .version_id = (_version), \ -- cgit v1.1