[libvirt] [PATCH 13/18] cpu: Support multiple PVRs in the ppc64 driver
Jiri Denemark
jdenemar at redhat.com
Thu Aug 6 14:51:39 UTC 2015
On Thu, Aug 06, 2015 at 16:30:37 +0200, Andrea Bolognani wrote:
> On Thu, 2015-08-06 at 13:53 +0200, Jiri Denemark wrote:
> >
> > > model = map->models;
> > > while (model) {
> > > - if (model->data->pvr == pvr)
> > > - return model;
> > > + for (i = 0; i < model->data->len; i++)
> > > + if (model->data->pvr[i].value == pvr)
> > > + return model;
> >
> > I think the for loop would deserve {} around its body.
>
> Added.
>
> > > +
> > > + for (i = 0; i < n; i++) {
> > > +
> >
> > Drop the empty line here.
>
> Done.
>
> > > + if (!(prop = virXMLPropString(nodes[i], "value"))) {
> > > + virReportError(VIR_ERR_INTERNAL_ERROR,
> > > + _("Missing PVR value in CPU model %s"),
> > > + model->name);
> > > + goto ignore;
> > > + }
> > > +
> > > + if (virStrToLong_ul(prop, NULL, 16, &pvr) < 0) {
> > > + virReportError(VIR_ERR_INTERNAL_ERROR,
> > > + _("Invalid PVR value in CPU model %s"),
> > > + model->name);
> > > + goto ignore;
> > > + }
> >
> > Any particular reason to replace virXPathULongHex with the above
> > code?
>
> Because I no longer have a single <pvr> element, but a number of
> them, that I retrieved a few lines above using virXPathNodeSet().
>
> I'm definitely no XPath expert, so if you're thinking of a way of
> making this simpler feel free to share :)
Ah, right, you'd have to do something similar to this:
orig_node = ctxt->node;
for (...) {
virXPathULongHex("@value", ...);
}
ctxt->node = orig_node;
Jirka
More information about the libvir-list
mailing list