diff mbox series

[01/13] migration: Create vmstate_register_any()

Message ID 20231019190831.20363-2-quintela@redhat.com
State New
Headers show
Series migration: Check for duplicates on vmstate_register() | expand

Commit Message

Juan Quintela Oct. 19, 2023, 7:08 p.m. UTC
We have lots of cases where we are using an instance_id==0 when we
should be using VMSTATE_INSTANCE_ID_ANY (-1).  Basically everything
that can have more than one needs to have a proper instance_id or -1
and the system will take one for it.

vmstate_register_any(): We register with -1.

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 include/migration/vmstate.h | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

Comments

Stefan Berger Oct. 19, 2023, 8:18 p.m. UTC | #1
On 10/19/23 15:08, Juan Quintela wrote:
> We have lots of cases where we are using an instance_id==0 when we
> should be using VMSTATE_INSTANCE_ID_ANY (-1).  Basically everything
> that can have more than one needs to have a proper instance_id or -1
> and the system will take one for it.
>
> vmstate_register_any(): We register with -1.
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>


Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>

> ---
>   include/migration/vmstate.h | 17 +++++++++++++++++
>   1 file changed, 17 insertions(+)
>
> diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
> index 1a31fb7293..9ca7e9cc48 100644
> --- a/include/migration/vmstate.h
> +++ b/include/migration/vmstate.h
> @@ -1230,6 +1230,23 @@ static inline int vmstate_register(VMStateIf *obj, int instance_id,
>                                             opaque, -1, 0, NULL);
>   }
>
> +/**
> + * vmstate_register_any() - legacy function to register state
> + * serialisation description and let the function choose the id
> + *
> + * New code shouldn't be using this function as QOM-ified devices have
> + * dc->vmsd to store the serialisation description.
> + *
> + * Returns: 0 on success, -1 on failure
> + */
> +static inline int vmstate_register_any(VMStateIf *obj,
> +                                       const VMStateDescription *vmsd,
> +                                       void *opaque)
> +{
> +    return vmstate_register_with_alias_id(obj, VMSTATE_INSTANCE_ID_ANY, vmsd,
> +                                          opaque, -1, 0, NULL);
> +}
> +
>   void vmstate_unregister(VMStateIf *obj, const VMStateDescription *vmsd,
>                           void *opaque);
>
diff mbox series

Patch

diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
index 1a31fb7293..9ca7e9cc48 100644
--- a/include/migration/vmstate.h
+++ b/include/migration/vmstate.h
@@ -1230,6 +1230,23 @@  static inline int vmstate_register(VMStateIf *obj, int instance_id,
                                           opaque, -1, 0, NULL);
 }
 
+/**
+ * vmstate_register_any() - legacy function to register state
+ * serialisation description and let the function choose the id
+ *
+ * New code shouldn't be using this function as QOM-ified devices have
+ * dc->vmsd to store the serialisation description.
+ *
+ * Returns: 0 on success, -1 on failure
+ */
+static inline int vmstate_register_any(VMStateIf *obj,
+                                       const VMStateDescription *vmsd,
+                                       void *opaque)
+{
+    return vmstate_register_with_alias_id(obj, VMSTATE_INSTANCE_ID_ANY, vmsd,
+                                          opaque, -1, 0, NULL);
+}
+
 void vmstate_unregister(VMStateIf *obj, const VMStateDescription *vmsd,
                         void *opaque);