[Libvir] [PATCH] sound support for qemu and xen

Daniel P. Berrange berrange at redhat.com
Mon Apr 28 18:17:13 UTC 2008


On Mon, Apr 28, 2008 at 01:44:32PM -0400, Cole Robinson wrote:
> Cole Robinson wrote:
> > The patch below adds xml support for the soundhw option to qemu
> > and xen. The new xml element takes the form:
> > 
> 
> Here is the updated patch. Took a bit more work to take into account
> the multiple models, building and parsing the xen soundhw string,
> checking for duplicates, etc.
> 
> The current version uses the format:
> 
> <sound model='m1'/>
> <sound model='m2'/>
> 
> To enable support for models m1 and m2. The code will fail if you
> attempt to define an xml config which specifies a model that isn't
> in the whitelist (currently composed of 'sb16, 'es1370', and 'pcspk').
> Unknown values from a xend sexpr or config file will be silently
> ignored.
> 
> One question: should the value 'all' be recognized from a xen domain
> and translated into a <sound> tag for every item in the whitelist?
> 'all' is an accepted value for a xen domain, since it just passes
> the string to qemu. This isn't in the code but I only thought of it
> now.

Sigh, that's a good question. I think I'd probably turn it into a
list of 3 <sound> tags, so that if they load the XML back in, it'll
get changed to the canonical explicit format.

> +static int qemudParseSoundXML(virConnectPtr conn,
> +                              struct qemud_vm_sound_def *sound,
> +                              xmlNodePtr node) {
> +
> +    xmlChar *model = NULL;
> +    model = xmlGetProp(node, BAD_CAST "model");
> +
> +    if (!model) {
> +        qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
> +                         "%s", _("missing sound model"));
> +        goto error;
> +    }
> +    if ((sound->model = qemudSoundModelFromString(conn, (char *) model)) < 0)
> +        goto error;
> +
> +    if (model)
> +        xmlFree(model);
> +    return 0;
> +
> + error:
> +    if (model)
> +        xmlFree(model);
> +    return -1;
> +}

IIRC,  xmlFree already copes with NULL, the 'if()' bits are not required.
You can check with 'make syntax-check' and see if it complains about these
lines.


Aside from this, it looks reasonable - I'd like to see a couple of 
XML configs added to the test cases for xen and QEMU to validate the
parsing and formatting of XML.

Regards,
Dan.
-- 
|: Red Hat, Engineering, Boston   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list