diff mbox

migration: add version supporting macros for struct pointer

Message ID 1378269326-23512-1-git-send-email-aik@ozlabs.ru
State New
Headers show

Commit Message

Alexey Kardashevskiy Sept. 4, 2013, 4:35 a.m. UTC
This adds version supporting macros VMSTATE_STRUCT_POINTER_TEST_V
and VMSTATE_STRUCT_POINTER_V in addition to the already existing
VMSTATE_STRUCT_POINTER and VMSTATE_STRUCT_POINTER_TEST macros.

Cc: Andreas Färber <afaerber@suse.de>
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
---
 include/migration/vmstate.h | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

Comments

Alexey Kardashevskiy Sept. 24, 2013, 5:58 a.m. UTC | #1
On 09/04/2013 02:35 PM, Alexey Kardashevskiy wrote:
> This adds version supporting macros VMSTATE_STRUCT_POINTER_TEST_V
> and VMSTATE_STRUCT_POINTER_V in addition to the already existing
> VMSTATE_STRUCT_POINTER and VMSTATE_STRUCT_POINTER_TEST macros.

Ping?


> 
> Cc: Andreas Färber <afaerber@suse.de>
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> ---
>  include/migration/vmstate.h | 17 +++++++++++++++--
>  1 file changed, 15 insertions(+), 2 deletions(-)
> 
> diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
> index 1c31b5d..9d09e60 100644
> --- a/include/migration/vmstate.h
> +++ b/include/migration/vmstate.h
> @@ -310,8 +310,18 @@ extern const VMStateInfo vmstate_info_bitmap;
>      .offset       = vmstate_offset_value(_state, _field, _type),     \
>  }
>  
> -#define VMSTATE_STRUCT_POINTER_TEST(_field, _state, _test, _vmsd, _type) { \
> +#define VMSTATE_STRUCT_POINTER_V(_field, _state, _version, _vmsd, _type) { \
>      .name         = (stringify(_field)),                             \
> +    .version_id   = (_version),                                        \
> +    .vmsd         = &(_vmsd),                                        \
> +    .size         = sizeof(_type),                                   \
> +    .flags        = VMS_STRUCT|VMS_POINTER,                          \
> +    .offset       = vmstate_offset_value(_state, _field, _type),     \
> +}
> +
> +#define VMSTATE_STRUCT_POINTER_TEST_V(_field, _state, _test, _version, _vmsd, _type) { \
> +    .name         = (stringify(_field)),                             \
> +    .version_id   = (_version),                                        \
>      .field_exists = (_test),                                         \
>      .vmsd         = &(_vmsd),                                        \
>      .size         = sizeof(_type),                                   \
> @@ -497,7 +507,10 @@ extern const VMStateInfo vmstate_info_bitmap;
>      VMSTATE_STRUCT_TEST(_field, _state, NULL, _version, _vmsd, _type)
>  
>  #define VMSTATE_STRUCT_POINTER(_field, _state, _vmsd, _type)          \
> -    VMSTATE_STRUCT_POINTER_TEST(_field, _state, NULL, _vmsd, _type)
> +    VMSTATE_STRUCT_POINTER_V(_field, _state, 0, _vmsd, _type)
> +
> +#define VMSTATE_STRUCT_POINTER_TEST(_field, _state, _test, _vmsd, _type)     \
> +    VMSTATE_STRUCT_POINTER_TEST_V(_field, _state, _test, 0, _vmsd, _type)
>  
>  #define VMSTATE_STRUCT_ARRAY(_field, _state, _num, _version, _vmsd, _type) \
>      VMSTATE_STRUCT_ARRAY_TEST(_field, _state, _num, NULL, _version,   \
>
Juan Quintela Sept. 24, 2013, 8:24 a.m. UTC | #2
Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
> This adds version supporting macros VMSTATE_STRUCT_POINTER_TEST_V
> and VMSTATE_STRUCT_POINTER_V in addition to the already existing
> VMSTATE_STRUCT_POINTER and VMSTATE_STRUCT_POINTER_TEST macros.
>
> Cc: Andreas Färber <afaerber@suse.de>
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>

Reviewed-by: Juan Quintela <quintela@redhat.com>
diff mbox

Patch

diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
index 1c31b5d..9d09e60 100644
--- a/include/migration/vmstate.h
+++ b/include/migration/vmstate.h
@@ -310,8 +310,18 @@  extern const VMStateInfo vmstate_info_bitmap;
     .offset       = vmstate_offset_value(_state, _field, _type),     \
 }
 
-#define VMSTATE_STRUCT_POINTER_TEST(_field, _state, _test, _vmsd, _type) { \
+#define VMSTATE_STRUCT_POINTER_V(_field, _state, _version, _vmsd, _type) { \
     .name         = (stringify(_field)),                             \
+    .version_id   = (_version),                                        \
+    .vmsd         = &(_vmsd),                                        \
+    .size         = sizeof(_type),                                   \
+    .flags        = VMS_STRUCT|VMS_POINTER,                          \
+    .offset       = vmstate_offset_value(_state, _field, _type),     \
+}
+
+#define VMSTATE_STRUCT_POINTER_TEST_V(_field, _state, _test, _version, _vmsd, _type) { \
+    .name         = (stringify(_field)),                             \
+    .version_id   = (_version),                                        \
     .field_exists = (_test),                                         \
     .vmsd         = &(_vmsd),                                        \
     .size         = sizeof(_type),                                   \
@@ -497,7 +507,10 @@  extern const VMStateInfo vmstate_info_bitmap;
     VMSTATE_STRUCT_TEST(_field, _state, NULL, _version, _vmsd, _type)
 
 #define VMSTATE_STRUCT_POINTER(_field, _state, _vmsd, _type)          \
-    VMSTATE_STRUCT_POINTER_TEST(_field, _state, NULL, _vmsd, _type)
+    VMSTATE_STRUCT_POINTER_V(_field, _state, 0, _vmsd, _type)
+
+#define VMSTATE_STRUCT_POINTER_TEST(_field, _state, _test, _vmsd, _type)     \
+    VMSTATE_STRUCT_POINTER_TEST_V(_field, _state, _test, 0, _vmsd, _type)
 
 #define VMSTATE_STRUCT_ARRAY(_field, _state, _num, _version, _vmsd, _type) \
     VMSTATE_STRUCT_ARRAY_TEST(_field, _state, _num, NULL, _version,   \