[libvirt] PATCH: 25/25: Support ac97 sound card

Cole Robinson crobinso at redhat.com
Wed Jan 14 14:34:51 UTC 2009


Daniel P. Berrange wrote:
> On Tue, Jan 13, 2009 at 05:49:02PM +0000, Daniel P. Berrange wrote:
>> QEMU now has support for a sound card of type "ac97", so enable
>> that in the XML parser / qemu driver.
>>
>> Also remove some unused cruft relating to sound in Xen.
>>
>>  domain_conf.c   |    3 ++-
>>  domain_conf.h   |    1 +
>>  xend_internal.c |   46 ----------------------------------------------
>>  3 files changed, 3 insertions(+), 47 deletions(-)
> 
> Now we added 'ac97', we can no longer blindly convert Xen's
> 'all' string into all possible sound card types - must restrict
> it to just the 3 that were around historically. This fixes the
> Xen test case
> 
> Daniel
> 
> diff --git a/src/domain_conf.c b/src/domain_conf.c
> --- a/src/domain_conf.c
> +++ b/src/domain_conf.c
> @@ -121,7 +121,8 @@ VIR_ENUM_IMPL(virDomainChr, VIR_DOMAIN_C
>  VIR_ENUM_IMPL(virDomainSoundModel, VIR_DOMAIN_SOUND_MODEL_LAST,
>                "sb16",
>                "es1370",
> -              "pcspk")
> +              "pcspk",
> +              "ac97")
>  
>  VIR_ENUM_IMPL(virDomainInput, VIR_DOMAIN_INPUT_TYPE_LAST,
>                "mouse",
> diff --git a/src/domain_conf.h b/src/domain_conf.h
> --- a/src/domain_conf.h
> +++ b/src/domain_conf.h
> @@ -236,6 +236,7 @@ enum virDomainSoundModel {
>      VIR_DOMAIN_SOUND_MODEL_SB16,
>      VIR_DOMAIN_SOUND_MODEL_ES1370,
>      VIR_DOMAIN_SOUND_MODEL_PCSPK,
> +    VIR_DOMAIN_SOUND_MODEL_ES97,
>  
>      VIR_DOMAIN_SOUND_MODEL_LAST
>  };
> diff --git a/src/xend_internal.c b/src/xend_internal.c
> --- a/src/xend_internal.c
> +++ b/src/xend_internal.c
> @@ -713,52 +713,6 @@ urlencode(const char *string)
>  }
>  #endif /* ! PROXY */
>  
> -/* Applicable sound models */
> -static const char *const sound_models[] = { "sb16", "es1370" };
> -
> -/**
> - * is_sound_model_valid:
> - * @model : model string to check against whitelist
> - *
> - * checks passed model string against whitelist of acceptable models
> - *
> - * Returns 0 if invalid, 1 otherwise
> - */
> -int is_sound_model_valid(const char *model) {
> -    int i;
> -
> -    for (i = 0; i < sizeof(sound_models)/sizeof(*sound_models); ++i) {
> -        if (STREQ(model, sound_models[i])) {
> -            return 1;
> -        }
> -    }
> -    return 0;
> -}
> -
> -/**
> - * is_sound_model_conflict:
> - * @model : model string to look for duplicates of
> - * @soundstr : soundhw string for the form m1,m2,m3 ...
> - *
> - * Returns 0 if no conflict, 1 otherwise
> - */
> -int is_sound_model_conflict(const char *model, const char *soundstr) {
> -
> -    char *dupe;
> -    char *cur = (char *) soundstr;
> -    while ((dupe = strstr(cur, model))) {
> -        if (( (dupe == cur) ||                     // (Start of line |
> -              (*(dupe - 1) == ',') ) &&            //  Preceded by comma) &
> -            ( (dupe[strlen(model)] == ',') ||      // (Ends with comma |
> -               (dupe[strlen(model)] == '\0') ))    //  Ends whole string)
> -            return 1;
> -        else
> -            cur = dupe + strlen(model);
> -    }
> -    return 0;
> -}
> -
> -
>  /* PUBLIC FUNCTIONS */
>  
>  /**
> @@ -1864,11 +1818,25 @@ xenDaemonParseSxprSound(virConnectPtr co
>      if (STREQ(str, "all")) {
>          int i;
>  
> +        /*
> +         * Special compatability code for Xen with a bogus
> +         * sound=all in config.
> +         *
> +         * NB delibrately, don't include all possible
> +         * sound models anymore, just the 3 that were
> +         * historically present in QEMU.
> +         *
> +         * ie no ac97.
> +         *
> +         * Hence use of MODEL_PCSPK + 1, instead of MODEL_LAST
> +         */
> +

Prior to the xml parsing unification, 'pcspk' was not allowed as a valid
option for xen. At least the xen version on f8 didn't offer it, so this
may be incorrect. Not sure if current upstream xen supports 'pcspk' though.

Besides that issue, the patch looks good.

Thanks,
Cole




More information about the libvir-list mailing list