mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 03:20:57 +00:00
pbx: Create pbx_sw.c for management of 'struct ast_sw'.
This changes context switches from a linked list to a vector, makes 'struct ast_sw' opaque to pbx.c. Although ast_walk_context_switches is maintained the procedure is no longer efficient except for the first call (inc==NULL). This functionality is replaced by two new functions implemented by vector macros. * ast_context_switches_count (AST_VECTOR_SIZE) * ast_context_switches_get (AST_VECTOR_GET) As with ast_walk_context_switches callers of these functions are expected to have locked contexts. Only a few places in Asterisk walked the switches, they have been converted to use the new functions. Change-Id: I08deb016df22eee8288eb03de62593e45a1f0998
This commit is contained in:
@@ -49,6 +49,12 @@ void include_free(struct ast_include *inc);
|
||||
int include_valid(const struct ast_include *inc);
|
||||
const char *include_rname(const struct ast_include *inc);
|
||||
|
||||
/*! pbx_sw.c */
|
||||
struct ast_sw;
|
||||
AST_VECTOR(ast_sws, struct ast_sw *);
|
||||
struct ast_sw *sw_alloc(const char *value, const char *data, int eval, const char *registrar);
|
||||
void sw_free(struct ast_sw *sw);
|
||||
|
||||
/*! pbx_builtins.c functions needed by pbx.c */
|
||||
int indicate_congestion(struct ast_channel *, const char *);
|
||||
int indicate_busy(struct ast_channel *, const char *);
|
||||
|
Reference in New Issue
Block a user