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