[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 |