> On 17 Jan 2023, at 13:53, Andrew Cooper <andrew.coop...@citrix.com> wrote:
>
> Update libxl and the ocaml stubs to match. No API/ABI change in either.
>
> Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>
Acked-by: Christian Lindig <christian.lin...@citrix.com>
> ---
> CC: Wei Liu <w...@xen.org>
> CC: Anthony PERARD <anthony.per...@citrix.com>
> CC: Juergen Gross <jgr...@suse.com>
> CC: Christian Lindig <christian.lin...@citrix.com>
> CC: David Scott <d...@recoil.org>
> CC: Edwin Torok <edvin.to...@citrix.com>
> CC: Rob Hoes <rob.h...@citrix.com>
> ---
> tools/include/xenctrl.h | 1 +
> tools/libs/ctrl/xc_version.c | 5 +++++
> tools/libs/light/libxl.c | 5 +----
> tools/ocaml/libs/xc/xenctrl_stubs.c | 19 ++++++++-----------
> 4 files changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
> index 279dc17d67d4..48dbf3eab75f 100644
> --- a/tools/include/xenctrl.h
> +++ b/tools/include/xenctrl.h
> @@ -1610,6 +1610,7 @@ int xc_version(xc_interface *xch, int cmd, void *arg);
> */
> char *xc_xenver_extraversion(xc_interface *xch);
> char *xc_xenver_capabilities(xc_interface *xch);
> +char *xc_xenver_changeset(xc_interface *xch);
>
> int xc_flask_op(xc_interface *xch, xen_flask_op_t *op);
>
> diff --git a/tools/libs/ctrl/xc_version.c b/tools/libs/ctrl/xc_version.c
> index 512302a393ea..9f2cae03dba8 100644
> --- a/tools/libs/ctrl/xc_version.c
> +++ b/tools/libs/ctrl/xc_version.c
> @@ -161,3 +161,8 @@ char *xc_xenver_capabilities(xc_interface *xch)
> {
> return varbuf_simple_string(xch, XENVER_capabilities2);
> }
> +
> +char *xc_xenver_changeset(xc_interface *xch)
> +{
> + return varbuf_simple_string(xch, XENVER_changeset2);
> +}
> diff --git a/tools/libs/light/libxl.c b/tools/libs/light/libxl.c
> index 139e838d1407..80e763aba944 100644
> --- a/tools/libs/light/libxl.c
> +++ b/tools/libs/light/libxl.c
> @@ -582,7 +582,6 @@ const libxl_version_info*
> libxl_get_version_info(libxl_ctx *ctx)
> GC_INIT(ctx);
> union {
> xen_compile_info_t xen_cc;
> - xen_changeset_info_t xen_chgset;
> xen_platform_parameters_t p_parms;
> xen_commandline_t xen_commandline;
> xen_build_id_t build_id;
> @@ -607,9 +606,7 @@ const libxl_version_info*
> libxl_get_version_info(libxl_ctx *ctx)
> info->compile_date = libxl__strdup(NOGC, u.xen_cc.compile_date);
>
> info->capabilities = xc_xenver_capabilities(ctx->xch);
> -
> - xc_version(ctx->xch, XENVER_changeset, &u.xen_chgset);
> - info->changeset = libxl__strdup(NOGC, u.xen_chgset);
> + info->changeset = xc_xenver_changeset(ctx->xch);
>
> xc_version(ctx->xch, XENVER_platform_parameters, &u.p_parms);
> info->virt_start = u.p_parms.virt_start;
> diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c
> b/tools/ocaml/libs/xc/xenctrl_stubs.c
> index 368f4727f0a0..291e92db7300 100644
> --- a/tools/ocaml/libs/xc/xenctrl_stubs.c
> +++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
> @@ -983,27 +983,24 @@ CAMLprim value stub_xc_version_compile_info(value xch)
> }
>
>
> -static value xc_version_single_string(value xch, int code, void *info)
> +CAMLprim value stub_xc_version_changeset(value xch)
> {
> CAMLparam1(xch);
> - int retval;
> + CAMLlocal1(result);
> + char *changeset;
>
> caml_enter_blocking_section();
> - retval = xc_version(_H(xch), code, info);
> + retval = xc_xenver_changeset(_H(xch));
> caml_leave_blocking_section();
>
> - if (retval)
> + if (!changeset)
> failwith_xc(_H(xch));
>
> - CAMLreturn(caml_copy_string((char *)info));
> -}
> + result = caml_copy_string(changeset);
>
> + free(changeset);
>
> -CAMLprim value stub_xc_version_changeset(value xch)
> -{
> - xen_changeset_info_t ci;
> -
> - return xc_version_single_string(xch, XENVER_changeset, &ci);
> + CAMLreturn(result);
> }
>
>
> --
> 2.11.0
>