|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 4/6] tools: Introduce a non-truncating xc_xenver_changeset()
Update libxl and the ocaml stubs to match. No API/ABI change in either.
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: Wei Liu <wl@xxxxxxx>
CC: Anthony PERARD <anthony.perard@xxxxxxxxxx>
CC: Juergen Gross <jgross@xxxxxxxx>
CC: Christian Lindig <christian.lindig@xxxxxxxxxx>
CC: David Scott <dave@xxxxxxxxxx>
CC: Edwin Torok <edvin.torok@xxxxxxxxxx>
CC: Rob Hoes <Rob.Hoes@xxxxxxxxxx>
---
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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |