general: recoded snd_dlobj_ functions

- changed logic to get/put blocks
- added mutex locking of the symbol list
- added reference counting (do not free used dl handles)

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
Jaroslav Kysela 2010-08-23 17:05:36 +02:00
parent be06ab3ee7
commit 91c9c8f1b8
7 changed files with 153 additions and 123 deletions

View file

@ -254,10 +254,10 @@ static inline int snd_open_device(const char *filename, int fmode)
}
/* make local functions really local */
#define snd_dlobj_cache_lookup \
snd1_dlobj_cache_lookup
#define snd_dlobj_cache_add \
snd1_dlobj_cache_add
#define snd_dlobj_cache_get \
snd1_dlobj_cache_get
#define snd_dlobj_cache_put \
snd1_dlobj_cache_put
#define snd_dlobj_cache_cleanup \
snd1_dlobj_cache_cleanup
#define snd_config_set_hop \
@ -268,8 +268,8 @@ static inline int snd_open_device(const char *filename, int fmode)
snd1_config_search_alias_hooks
/* dlobj cache */
void *snd_dlobj_cache_lookup(const char *name);
int snd_dlobj_cache_add(const char *name, void *dlobj, void *open_func);
void *snd_dlobj_cache_get(const char *lib, const char *name, const char *version, int verbose);
int snd_dlobj_cache_put(void *open_func);
void snd_dlobj_cache_cleanup(void);
/* for recursive checks */