• Home
  • Raw
  • Download

Lines Matching +full:alsa +full:- +full:lib

26  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
76 snprintf(path, path_len, "%s/alsa-lib", origin); in snd_dlinfo_origin()
109 * \brief Opens a dynamic library - ALSA wrapper for \c dlopen.
117 * the alsa-lib library. In that case, \p name is set to \c NULL.
179 * \brief Closes a dynamic library - ALSA wrapper for \c dlclose.
184 * the alsa-lib library.
216 return -EINVAL; in snd_dlsym_verify()
219 return -ENOMEM; in snd_dlsym_verify()
223 res = dlsym(handle, vname) == NULL ? -ENOENT : 0; in snd_dlsym_verify()
234 * \brief Resolves a symbol from a dynamic library - ALSA wrapper for \c dlsym.
240 * the alsa-lib library.
256 if (!strcmp(name, link->dlsym_name)) in snd_dlsym()
257 return (void *)link->dlsym_ptr; in snd_dlsym()
258 link = link->next; in snd_dlsym()
283 const char *lib; member
311 snd_dlobj_cache_get0(const char *lib, const char *name, in snd_dlobj_cache_get0() argument
321 if (c->lib && lib && strcmp(c->lib, lib) != 0) in snd_dlobj_cache_get0()
323 if (!c->lib && lib) in snd_dlobj_cache_get0()
325 if (!lib && c->lib) in snd_dlobj_cache_get0()
327 if (strcmp(c->name, name) == 0) { in snd_dlobj_cache_get0()
328 c->refcnt++; in snd_dlobj_cache_get0()
334 dlobj = INTERNAL(snd_dlopen)(lib, RTLD_NOW, in snd_dlobj_cache_get0()
340 lib ? lib : "[builtin]", in snd_dlobj_cache_get0()
349 name, lib ? lib : "[builtin]"); in snd_dlobj_cache_get0()
355 c->refcnt = 1; in snd_dlobj_cache_get0()
356 c->lib = lib ? strdup(lib) : NULL; in snd_dlobj_cache_get0()
357 c->name = strdup(name); in snd_dlobj_cache_get0()
358 if ((lib && ! c->lib) || ! c->name) { in snd_dlobj_cache_get0()
359 free((void *)c->name); in snd_dlobj_cache_get0()
360 free((void *)c->lib); in snd_dlobj_cache_get0()
366 c->dlobj = dlobj; in snd_dlobj_cache_get0()
367 c->func = func; in snd_dlobj_cache_get0()
368 list_add_tail(&c->list, &pcm_dlobj_list); in snd_dlobj_cache_get0()
372 void *snd_dlobj_cache_get(const char *lib, const char *name, in snd_dlobj_cache_get() argument
379 c = snd_dlobj_cache_get0(lib, name, version, verbose); in snd_dlobj_cache_get()
381 func = c->func; in snd_dlobj_cache_get()
386 void *snd_dlobj_cache_get2(const char *lib, const char *name, in snd_dlobj_cache_get2() argument
393 c = snd_dlobj_cache_get0(lib, name, version, verbose); in snd_dlobj_cache_get2()
395 func = c->func; in snd_dlobj_cache_get2()
397 c->refcnt++; in snd_dlobj_cache_get2()
410 return -ENOENT; in snd_dlobj_cache_put()
415 if (c->func == func) { in snd_dlobj_cache_put()
416 refcnt = c->refcnt; in snd_dlobj_cache_put()
417 if (c->refcnt > 0) in snd_dlobj_cache_put()
418 c->refcnt--; in snd_dlobj_cache_put()
420 return refcnt == 1 ? 0 : -EINVAL; in snd_dlobj_cache_put()
424 return -ENOENT; in snd_dlobj_cache_put()
435 if (c->refcnt) in snd_dlobj_cache_cleanup()
438 snd_dlclose(c->dlobj); in snd_dlobj_cache_cleanup()
439 free((void *)c->name); /* shut up gcc warning */ in snd_dlobj_cache_cleanup()
440 free((void *)c->lib); /* shut up gcc warning */ in snd_dlobj_cache_cleanup()