|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [livepatch: independ. modules v3 3/3] python: Add XC binding for Xen build ID
On Tue, Aug 20, 2019 at 12:51:08PM +0000, Pawel Wieczorkiewicz wrote:
> Extend the list of xc() object methods with additional one to display
> Xen's buildid. The implementation follows the libxl implementation
> (e.g. max buildid size assumption being XC_PAGE_SIZE minus
> sizeof(buildid->len)).
>
> Signed-off-by: Pawel Wieczorkiewicz <wipawel@xxxxxxxxx>
> Reviewed-by: Martin Mazein <amazein@xxxxxxxxx>
> Reviewed-by: Andra-Irina Paraschiv <andraprs@xxxxxxxxxx>
> Reviewed-by: Norbert Manthey <nmanthey@xxxxxxxxx>
Acked-by: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx>
> ---
> v3:
> * Instead of allocating XC_PAGE_SIZE plus size of the len field,
> allocate one XC_PAGE_SIZE for the whole buildid struct.
> * Modify commit message to reflect the above change.
> v2:
> * No code change
> * Adding maintainers
> ---
> tools/python/xen/lowlevel/xc/xc.c | 27 +++++++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/tools/python/xen/lowlevel/xc/xc.c
> b/tools/python/xen/lowlevel/xc/xc.c
> index 522cbe3b9c..7ed4a253de 100644
> --- a/tools/python/xen/lowlevel/xc/xc.c
> +++ b/tools/python/xen/lowlevel/xc/xc.c
> @@ -1211,6 +1211,26 @@ out:
> return ret_obj ? ret_obj : pyxc_error_to_exception(self->xc_handle);
> }
>
> +static PyObject *pyxc_xenbuildid(XcObject *self)
> +{
> + xen_build_id_t *buildid;
> + int i, r;
> + char *str;
> +
> + buildid = alloca(XC_PAGE_SIZE);
> + buildid->len = XC_PAGE_SIZE - sizeof(*buildid);
> +
> + r = xc_version(self->xc_handle, XENVER_build_id, buildid);
> + if ( r <= 0 )
> + return pyxc_error_to_exception(self->xc_handle);
> +
> + str = alloca((r * 2) + 1);
> + for ( i = 0; i < r; i++ )
> + snprintf(&str[i * 2], 3, "%02hhx", buildid->buf[i]);
> +
> + return Py_BuildValue("s", str);
> +}
> +
> static PyObject *pyxc_xeninfo(XcObject *self)
> {
> xen_extraversion_t xen_extra;
> @@ -2294,6 +2314,13 @@ static PyMethodDef pyxc_methods[] = {
> "Returns [dict]: information about Xen"
> " [None]: on failure.\n" },
>
> + { "buildid",
> + (PyCFunction)pyxc_xenbuildid,
> + METH_NOARGS, "\n"
> + "Get Xen buildid\n"
> + "Returns [str]: Xen buildid"
> + " [None]: on failure.\n" },
> +
> { "shadow_control",
> (PyCFunction)pyxc_shadow_control,
> METH_VARARGS | METH_KEYWORDS, "\n"
--
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
Attachment:
signature.asc _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |