From d9a099a4c572b45c1f8f3d2847cc64ebd039f5ad Mon Sep 17 00:00:00 2001 From: Jim Fehlig Date: Wed, 4 Jun 2014 14:02:27 -0600 Subject: [PATCH] libxl: introduce libxlDomainDefCheckABIStability Introduce a simple libxlDomainDefCheckABIStability() function that can be used check ABI stability between two virDomainDef objects. Signed-off-by: Jim Fehlig --- src/libxl/libxl_domain.c | 23 +++++++++++++++++++++++ src/libxl/libxl_domain.h | 5 +++++ 2 files changed, 28 insertions(+) diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index eab789ac7f..73242ac023 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -1256,3 +1256,26 @@ libxlDomainStart(libxlDriverPrivatePtr driver, virDomainObjPtr vm, virObjectUnref(cfg); return ret; } + +bool +libxlDomainDefCheckABIStability(libxlDriverPrivatePtr driver, + virDomainDefPtr src, + virDomainDefPtr dst) +{ + virDomainDefPtr migratableDefSrc = NULL; + virDomainDefPtr migratableDefDst = NULL; + libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver); + bool ret = false; + + if (!(migratableDefSrc = virDomainDefCopy(src, cfg->caps, driver->xmlopt, true)) || + !(migratableDefDst = virDomainDefCopy(dst, cfg->caps, driver->xmlopt, true))) + goto cleanup; + + ret = virDomainDefCheckABIStability(migratableDefSrc, migratableDefDst); + + cleanup: + virDomainDefFree(migratableDefSrc); + virDomainDefFree(migratableDefDst); + virObjectUnref(cfg); + return ret; +} diff --git a/src/libxl/libxl_domain.h b/src/libxl/libxl_domain.h index 979ce2afd9..693900895b 100644 --- a/src/libxl/libxl_domain.h +++ b/src/libxl/libxl_domain.h @@ -139,4 +139,9 @@ libxlDomainStart(libxlDriverPrivatePtr driver, bool start_paused, int restore_fd); +bool +libxlDomainDefCheckABIStability(libxlDriverPrivatePtr driver, + virDomainDefPtr src, + virDomainDefPtr dst); + #endif /* LIBXL_DOMAIN_H */ -- GitLab