Page MenuHomeFreeBSD

D53551.diff
No OneTemporary

D53551.diff

diff --git a/sys/dev/sound/pcm/feeder.h b/sys/dev/sound/pcm/feeder.h
--- a/sys/dev/sound/pcm/feeder.h
+++ b/sys/dev/sound/pcm/feeder.h
@@ -35,7 +35,7 @@
struct feeder_class {
KOBJ_CLASS_FIELDS;
- struct pcm_feederdesc *desc;
+ struct pcm_feederdesc desc;
void *data;
};
@@ -64,12 +64,12 @@
void feeder_printchain(struct pcm_feeder *head);
int feeder_chain(struct pcm_channel *);
-#define FEEDER_DECLARE(feeder, pdata) \
+#define FEEDER_DECLARE(feeder, type, pdata) \
static struct feeder_class feeder ## _class = { \
.name = #feeder, \
.methods = feeder ## _methods, \
.size = sizeof(struct pcm_feeder), \
- .desc = feeder ## _desc, \
+ .desc = { type, 0, 0, 0 }, \
.data = pdata, \
}; \
SYSINIT(feeder, SI_SUB_DRIVERS, SI_ORDER_ANY, feeder_register, \
diff --git a/sys/dev/sound/pcm/feeder.c b/sys/dev/sound/pcm/feeder.c
--- a/sys/dev/sound/pcm/feeder.c
+++ b/sys/dev/sound/pcm/feeder.c
@@ -70,22 +70,13 @@
{
struct feeder_class *fc = p;
struct feedertab_entry *fte;
- int i;
- KASSERT(fc->desc != NULL, ("feeder '%s' has no descriptor", fc->name));
-
- /*
- * beyond this point failure is non-fatal but may result in some
- * translations being unavailable
- */
- i = 0;
- while (fc->desc[i].type > 0) {
- fte = malloc(sizeof(*fte), M_FEEDER, M_WAITOK | M_ZERO);
- fte->feederclass = fc;
- fte->desc = &fc->desc[i];
- SLIST_INSERT_HEAD(&feedertab, fte, link);
- i++;
- }
+ KASSERT(fc->desc.type != 0, ("feeder '%s' has no descriptor", fc->name));
+
+ fte = malloc(sizeof(*fte), M_FEEDER, M_WAITOK | M_ZERO);
+ fte->feederclass = fc;
+ fte->desc = &fc->desc;
+ SLIST_INSERT_HEAD(&feedertab, fte, link);
}
static void
@@ -442,7 +433,7 @@
.name = "feeder_root",
.methods = feeder_root_methods,
.size = sizeof(struct pcm_feeder),
- .desc = NULL,
+ .desc = { 0 },
.data = NULL,
};
/*
diff --git a/sys/dev/sound/pcm/feeder_eq.c b/sys/dev/sound/pcm/feeder_eq.c
--- a/sys/dev/sound/pcm/feeder_eq.c
+++ b/sys/dev/sound/pcm/feeder_eq.c
@@ -419,11 +419,6 @@
return (dst - b);
}
-static struct pcm_feederdesc feeder_eq_desc[] = {
- { FEEDER_EQ, 0, 0, 0 },
- { 0, 0, 0, 0 }
-};
-
static kobj_method_t feeder_eq_methods[] = {
KOBJMETHOD(feeder_init, feed_eq_init),
KOBJMETHOD(feeder_free, feed_eq_free),
@@ -432,7 +427,7 @@
KOBJMETHOD_END
};
-FEEDER_DECLARE(feeder_eq, NULL);
+FEEDER_DECLARE(feeder_eq, FEEDER_EQ, NULL);
static int32_t
feed_eq_scan_preamp_arg(const char *s)
diff --git a/sys/dev/sound/pcm/feeder_format.c b/sys/dev/sound/pcm/feeder_format.c
--- a/sys/dev/sound/pcm/feeder_format.c
+++ b/sys/dev/sound/pcm/feeder_format.c
@@ -172,11 +172,6 @@
return (dst - b);
}
-static struct pcm_feederdesc feeder_format_desc[] = {
- { FEEDER_FORMAT, 0, 0, 0 },
- { 0, 0, 0, 0 }
-};
-
static kobj_method_t feeder_format_methods[] = {
KOBJMETHOD(feeder_init, feed_format_init),
KOBJMETHOD(feeder_free, feed_format_free),
@@ -185,4 +180,4 @@
KOBJMETHOD_END
};
-FEEDER_DECLARE(feeder_format, NULL);
+FEEDER_DECLARE(feeder_format, FEEDER_FORMAT, NULL);
diff --git a/sys/dev/sound/pcm/feeder_matrix.c b/sys/dev/sound/pcm/feeder_matrix.c
--- a/sys/dev/sound/pcm/feeder_matrix.c
+++ b/sys/dev/sound/pcm/feeder_matrix.c
@@ -398,11 +398,6 @@
return (dst - b);
}
-static struct pcm_feederdesc feeder_matrix_desc[] = {
- { FEEDER_MATRIX, 0, 0, 0 },
- { 0, 0, 0, 0 }
-};
-
static kobj_method_t feeder_matrix_methods[] = {
KOBJMETHOD(feeder_init, feed_matrix_init),
KOBJMETHOD(feeder_free, feed_matrix_free),
@@ -410,7 +405,7 @@
KOBJMETHOD_END
};
-FEEDER_DECLARE(feeder_matrix, NULL);
+FEEDER_DECLARE(feeder_matrix, FEEDER_MATRIX, NULL);
/* External */
int
diff --git a/sys/dev/sound/pcm/feeder_mixer.c b/sys/dev/sound/pcm/feeder_mixer.c
--- a/sys/dev/sound/pcm/feeder_mixer.c
+++ b/sys/dev/sound/pcm/feeder_mixer.c
@@ -358,11 +358,6 @@
return (rcnt);
}
-static struct pcm_feederdesc feeder_mixer_desc[] = {
- { FEEDER_MIXER, 0, 0, 0 },
- { 0, 0, 0, 0 }
-};
-
static kobj_method_t feeder_mixer_methods[] = {
KOBJMETHOD(feeder_init, feed_mixer_init),
KOBJMETHOD(feeder_free, feed_mixer_free),
@@ -371,4 +366,4 @@
KOBJMETHOD_END
};
-FEEDER_DECLARE(feeder_mixer, NULL);
+FEEDER_DECLARE(feeder_mixer, FEEDER_MIXER, NULL);
diff --git a/sys/dev/sound/pcm/feeder_rate.c b/sys/dev/sound/pcm/feeder_rate.c
--- a/sys/dev/sound/pcm/feeder_rate.c
+++ b/sys/dev/sound/pcm/feeder_rate.c
@@ -1705,11 +1705,6 @@
return (count - left);
}
-static struct pcm_feederdesc feeder_rate_desc[] = {
- { FEEDER_RATE, 0, 0, 0 },
- { 0, 0, 0, 0 },
-};
-
static kobj_method_t feeder_rate_methods[] = {
KOBJMETHOD(feeder_init, z_resampler_init),
KOBJMETHOD(feeder_free, z_resampler_free),
@@ -1719,4 +1714,4 @@
KOBJMETHOD_END
};
-FEEDER_DECLARE(feeder_rate, NULL);
+FEEDER_DECLARE(feeder_rate, FEEDER_RATE, NULL);
diff --git a/sys/dev/sound/pcm/feeder_volume.c b/sys/dev/sound/pcm/feeder_volume.c
--- a/sys/dev/sound/pcm/feeder_volume.c
+++ b/sys/dev/sound/pcm/feeder_volume.c
@@ -306,11 +306,6 @@
return (dst - b);
}
-static struct pcm_feederdesc feeder_volume_desc[] = {
- { FEEDER_VOLUME, 0, 0, 0 },
- { 0, 0, 0, 0 }
-};
-
static kobj_method_t feeder_volume_methods[] = {
KOBJMETHOD(feeder_init, feed_volume_init),
KOBJMETHOD(feeder_free, feed_volume_free),
@@ -319,7 +314,7 @@
KOBJMETHOD_END
};
-FEEDER_DECLARE(feeder_volume, NULL);
+FEEDER_DECLARE(feeder_volume, FEEDER_VOLUME, NULL);
/* Extern */

File Metadata

Mime Type
text/plain
Expires
Sun, Jul 26, 1:07 PM (3 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35531279
Default Alt Text
D53551.diff (5 KB)

Event Timeline