[libvirt] [PATCH v2 41/73] qemu: Generalize macro for getting VIR_MIGRATE_* typed params

Ján Tomko jtomko at redhat.com
Fri Apr 13 14:22:00 UTC 2018


On Wed, Apr 11, 2018 at 04:41:31PM +0200, Jiri Denemark wrote:
>So far it's used only for CPU throttling parameters which are all ints,
>but we'll soon want to use it for more parameters with different types.
>
>Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
>---
> src/qemu/qemu_migration_params.c | 31 +++++++++++++++----------------
> 1 file changed, 15 insertions(+), 16 deletions(-)
>
>diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_params.c
>index 369e560990..e0cbdb1a38 100644
>--- a/src/qemu/qemu_migration_params.c
>+++ b/src/qemu/qemu_migration_params.c
>@@ -112,6 +112,17 @@ qemuMigrationParamsFree(qemuMigrationParamsPtr migParams)
> }
>
>
>+#define GET(API, PARAM, VAR) \
>+    do { \
>+        int rc; \
>+        if ((rc = API(params, nparams, VIR_MIGRATE_PARAM_ ## PARAM, \
>+                      &migParams->params.VAR)) < 0) \
>+            goto error; \
>+ \
>+        if (rc == 1) \
>+            migParams->params.VAR ## _set = true; \
>+    } while (0)
>+
> qemuMigrationParamsPtr
> qemuMigrationParamsFromFlags(virTypedParameterPtr params,
>                              int nparams,
>@@ -135,27 +146,13 @@ qemuMigrationParamsFromFlags(virTypedParameterPtr params,
>         }
>     }
>
>-#define GET(PARAM, VAR) \
>-    do { \
>-        int rc; \
>-        if ((rc = virTypedParamsGetInt(params, nparams, \
>-                                       VIR_MIGRATE_PARAM_ ## PARAM, \
>-                                       &migParams->params.VAR)) < 0) \
>-            goto error; \
>- \
>-        if (rc == 1) \
>-            migParams->params.VAR ## _set = true; \
>-    } while (0)
>-
>     if (params) {
>         if (party == QEMU_MIGRATION_SOURCE) {
>-            GET(AUTO_CONVERGE_INITIAL, cpuThrottleInitial);
>-            GET(AUTO_CONVERGE_INCREMENT, cpuThrottleIncrement);
>+            GET(virTypedParamsGetInt, AUTO_CONVERGE_INITIAL, cpuThrottleInitial);
>+            GET(virTypedParamsGetInt, AUTO_CONVERGE_INCREMENT, cpuThrottleIncrement);

If all the getter APIs start with virTypedParamsGet, you can hide the
prefix inside the macro definition to save columns.

Regardless:

Reviewed-by: Ján Tomko <jtomko at redhat.com>

Jano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180413/7c9c80c0/attachment-0001.sig>


More information about the libvir-list mailing list