Upcoming changes will use different LIBXL_API_VERSION variants. Prepare libxl_domain_create_restore, which got a new parameter "send_back_fd" in Xen 4.7. libvirt does not use this parameter. No functional change intended. Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> --- src/libxl/libxl_api_wrapper.h | 44 +++++++++++++++++++++++++++++++++++ src/libxl/libxl_domain.c | 5 ++-- 2 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 src/libxl/libxl_api_wrapper.h diff --git a/src/libxl/libxl_api_wrapper.h b/src/libxl/libxl_api_wrapper.h new file mode 100644 index 0000000000..3b988db5b9 --- /dev/null +++ b/src/libxl/libxl_api_wrapper.h @@ -0,0 +1,44 @@ +/* + * libxl_api_wrapper.h: handle various libxl API variants + * + * Copyright (C) 2021 SUSE LLC + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include <libxl.h> + +static inline int +libxlDomainCreateRestoreWrapper(libxl_ctx *ctx, + libxl_domain_config *d_config, + uint32_t *domid, + int restore_fd, + const libxl_domain_restore_params *params, + const libxl_asyncprogress_how *aop_console_how) +{ + int ret; + +#if LIBXL_API_VERSION < 0x040700 + ret = libxl_domain_create_restore(ctx, d_config, domid, restore_fd, params, + NULL, aop_console_how); +#else + ret = libxl_domain_create_restore(ctx, d_config, domid, restore_fd, -1, + params, NULL, aop_console_how); +#endif + + return ret; +} diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index 014f6aceca..9adba9f2bf 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -22,6 +22,7 @@ #include <fcntl.h> +#include "libxl_api_wrapper.h" #include "libxl_domain.h" #include "libxl_capabilities.h" @@ -1396,8 +1397,8 @@ libxlDomainStart(libxlDriverPrivatePtr driver, #ifdef LIBXL_HAVE_SRM_V2 params.stream_version = restore_ver; #endif - ret = libxl_domain_create_restore(cfg->ctx, &d_config, &domid, - restore_fd, ¶ms, NULL, + ret = libxlDomainCreateRestoreWrapper(cfg->ctx, &d_config, &domid, + restore_fd, ¶ms, &aop_console_how); libxl_domain_restore_params_dispose(¶ms); }