Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F140148245
D53554.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D53554.diff
View Options
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
@@ -36,6 +36,7 @@
KOBJ_CLASS_FIELDS;
struct pcm_feederdesc desc;
void *data;
+ SLIST_ENTRY(feeder_class) link;
};
struct pcm_feeder {
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
@@ -41,53 +41,34 @@
static MALLOC_DEFINE(M_FEEDER, "feeder", "pcm feeder");
-struct feedertab_entry {
- SLIST_ENTRY(feedertab_entry) link;
- struct feeder_class *feederclass;
-};
-static SLIST_HEAD(, feedertab_entry) feedertab;
-
-/*****************************************************************************/
+static SLIST_HEAD(, feeder_class) feedertab;
static void
feeder_register_root(void *p)
{
struct feeder_class *fc = p;
- struct feedertab_entry *fte;
KASSERT(fc->desc.type == FEEDER_ROOT,
("first feeder not root: %s", fc->name));
SLIST_INIT(&feedertab);
- fte = malloc(sizeof(*fte), M_FEEDER, M_WAITOK | M_ZERO);
- fte->feederclass = fc;
- SLIST_INSERT_HEAD(&feedertab, fte, link);
+ SLIST_INSERT_HEAD(&feedertab, fc, link);
}
void
feeder_register(void *p)
{
struct feeder_class *fc = p;
- struct feedertab_entry *fte;
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;
- SLIST_INSERT_HEAD(&feedertab, fte, link);
+ SLIST_INSERT_HEAD(&feedertab, fc, link);
}
static void
-feeder_unregisterall(void *p)
+feeder_unregisterall(void *p __unused)
{
- struct feedertab_entry *fte, *next;
-
- next = SLIST_FIRST(&feedertab);
- while (next != NULL) {
- fte = next;
- next = SLIST_NEXT(fte, link);
- free(fte, M_FEEDER);
- }
+ SLIST_INIT(&feedertab);
}
static void
@@ -135,11 +116,11 @@
struct feeder_class *
feeder_getclass(u_int32_t type)
{
- struct feedertab_entry *fte;
+ struct feeder_class *fc;
- SLIST_FOREACH(fte, &feedertab, link) {
- if (fte->feederclass->desc.type == type)
- return (fte->feederclass);
+ SLIST_FOREACH(fc, &feedertab, link) {
+ if (fc->desc.type == type)
+ return (fc);
}
return (NULL);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Dec 21, 8:53 PM (18 h, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
24836764
Default Alt Text
D53554.diff (2 KB)
Attached To
Mode
D53554: sound: Retire feedertab_entry
Attached
Detach File
Event Timeline
Log In to Comment