[libvirt] [PATCH] 2/4 Add conf parsing and freeing
Daniel Veillard
veillard at redhat.com
Fri Oct 22 08:47:26 UTC 2010
On Thu, Oct 21, 2010 at 03:45:40PM -0600, Eric Blake wrote:
> On 10/21/2010 02:16 PM, Daniel Veillard wrote:
> > This lacks the saving of the smbios data, should not be hard really,
> >and the parsing is rather trivial, the data structures follow the XML
> >format:
> >
> >Daniel
> >
> >
> >+static void virSmbiosEntriesFree(virSmbiosEntryPtr cur)
>
> Should this function be added to the list of useless_free_options in cfg.mk?
>
> >+{
> >+ virSmbiosEntryPtr next;
> >+
> >+ if (cur == NULL)
> >+ return;
>
> Redundant, given that
>
> >+
> >+ while (cur != NULL) {
>
> this safely skips a NULL argument.
ah, true :-) fixed
> >@@ -3341,6 +3385,150 @@ error:
> > goto cleanup;
> > }
> >
> >+static virSmbiosEntryPtr
> >+virSmbiosEntryParseXML(xmlXPathContextPtr ctxt)
> >+{
> >+ char *name, *value;
> >+ virSmbiosEntryPtr def;
> >+
> >+ name = virXPathString("string(./@name)", ctxt);
> >+ if (name == NULL) {
> >+ virDomainReportError(VIR_ERR_XML_ERROR, "%s",
> >+ _("XML element 'entry' requires a 'name' attrbute"));
>
> s/attrbute/attribute/
heh, good spotting
[...]
> >+ if ((type< 0) || (type> 32)) {
> >+ virDomainReportError(VIR_ERR_XML_ERROR,
> >+ _("XML 'type' attribute on 'table' out of 0..32 range got %ld"),
> >+ type);
> >+ return(NULL);
> >+ }
>
> Should you also be checking for duplicate types, or is it okay to do:
>
> <smbios>
> <table type="0">
> <entry name="Vendor">QEmu/KVM</entry>
> </table>
> <table type="0">
> <entry name="Version">0.13</entry>
> </table>
> </smbios>
For type 0 and 1 no they are unique in theory, but other tables
can have duplicates like type 4 since there is one per processor.
I don't think we should go too deep trying to assert semantic at
that level, since anyway the drivers will have a very restricted
view of the whole thing, and will only pick some of the information
they can process. Still I wanted the format to be as generic as
possible,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list