All pastes #49028 Raw Edit

Miscellany

public text v1 · immutable
#49028 ·published 2006-04-11 16:10 UTC
rendered paste body
/* Local user routines keep track of which channels are using a given module
   resource.  They can help make removing modules safer, particularly if
   they're in use at the time they have been requested to be removed */
 
struct localuser {
        struct localuser *next;
        struct ast_channel *chan;
};

struct module_symbols;  /* forward declaration */
struct localuser *ast_localuser_add(struct module_symbols *, struct ast_channel *);
void ast_localuser_remove(struct module_symbols *, struct localuser *);
void ast_hangup_localusers(struct module_symbols *);

/* XXX deprecated macros, only for backward compatibility */
#define LOCAL_USER_ADD(u) do { u = ast_localuser_add(__mod_desc, chan); } while (0)
#define LOCAL_USER_REMOVE(u) ast_localuser_remove(__mod_desc, u)
#define STANDARD_HANGUP_LOCALUSERS ast_hangup_localusers(__mod_desc)


struct module_symbols mod_data; /* forward declaration */
static struct module_symbols *__mod_desc __attribute__ ((__unused__)) = &mod_data; /* used by localuser */