diff options
author | rmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-06-14 20:51:09 +0000 |
---|---|---|
committer | rmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-06-14 20:51:09 +0000 |
commit | fd3b60492f169712bd40dc616df745e4bd976807 (patch) | |
tree | f421ca5a3655304153fcbe3feb9d4037a47fa259 /channels | |
parent | dd75894d832bb2c5cf2fc31d17cf3c4a74c62f93 (diff) |
Extract sig_ss7_init_linkset() to sig_ss7.
Also found a place where sig_pri_init_pri() was inlined and called it
instead.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@270298 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_dahdi.c | 21 | ||||
-rw-r--r-- | channels/sig_ss7.c | 22 | ||||
-rw-r--r-- | channels/sig_ss7.h | 1 |
3 files changed, 28 insertions, 16 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index f34795f99..7740ee313 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -14329,11 +14329,8 @@ static int dahdi_restart(void) memset(pris, 0, sizeof(pris)); for (i = 0; i < NUM_SPANS; i++) { - ast_mutex_init(&pris[i].pri.lock); - pris[i].pri.master = AST_PTHREADT_NULL; - for (j = 0; j < SIG_PRI_NUM_DCHANS; j++) - pris[i].pri.fds[j] = -1; - } + sig_pri_init_pri(&pris[i].pri); + } pri_set_error(dahdi_pri_error); pri_set_message(dahdi_pri_message); #endif @@ -14345,10 +14342,7 @@ static int dahdi_restart(void) memset(linksets, 0, sizeof(linksets)); for (i = 0; i < NUM_SPANS; i++) { - ast_mutex_init(&linksets[i].ss7.lock); - linksets[i].ss7.master = AST_PTHREADT_NULL; - for (j = 0; j < SIG_SS7_NUM_DCHANS; j++) - linksets[i].ss7.fds[j] = -1; + sig_ss7_init_linkset(&linksets[i].ss7); } ss7_set_error(dahdi_ss7_error); ss7_set_message(dahdi_ss7_message); @@ -17407,9 +17401,7 @@ static int load_module(void) #if defined(HAVE_PRI) || defined(HAVE_SS7) int y; #endif /* defined(HAVE_PRI) || defined(HAVE_SS7) */ -#if defined(HAVE_SS7) - int i; -#endif /* defined(HAVE_SS7) */ + #ifdef HAVE_PRI memset(pris, 0, sizeof(pris)); for (y = 0; y < NUM_SPANS; y++) { @@ -17442,10 +17434,7 @@ static int load_module(void) #if defined(HAVE_SS7) memset(linksets, 0, sizeof(linksets)); for (y = 0; y < NUM_SPANS; y++) { - ast_mutex_init(&linksets[y].ss7.lock); - linksets[y].ss7.master = AST_PTHREADT_NULL; - for (i = 0; i < SIG_SS7_NUM_DCHANS; i++) - linksets[y].ss7.fds[i] = -1; + sig_ss7_init_linkset(&linksets[y].ss7); } ss7_set_error(dahdi_ss7_error); ss7_set_message(dahdi_ss7_message); diff --git a/channels/sig_ss7.c b/channels/sig_ss7.c index 540b08e81..e3c0278ef 100644 --- a/channels/sig_ss7.c +++ b/channels/sig_ss7.c @@ -1609,6 +1609,28 @@ struct sig_ss7_chan *sig_ss7_chan_new(void *pvt_data, struct sig_ss7_callback *c return pvt; } +/*! + * \brief Initialize the SS7 linkset control. + * \since 1.8 + * + * \param ss7 sig_ss7 SS7 control structure. + * + * \return Nothing + */ +void sig_ss7_init_linkset(struct sig_ss7_linkset *ss7) +{ + int idx; + + memset(ss7, 0, sizeof(*ss7)); + + ast_mutex_init(&ss7->lock); + + ss7->master = AST_PTHREADT_NULL; + for (idx = 0; idx < ARRAY_LEN(ss7->fds); ++idx) { + ss7->fds[idx] = -1; + } +} + /* ------------------------------------------------------------------- */ #endif /* defined(HAVE_SS7) */ diff --git a/channels/sig_ss7.h b/channels/sig_ss7.h index be7c1e5e8..a4cee5211 100644 --- a/channels/sig_ss7.h +++ b/channels/sig_ss7.h @@ -253,6 +253,7 @@ int sig_ss7_indicate(struct sig_ss7_chan *p, struct ast_channel *chan, int condi struct ast_channel *sig_ss7_request(struct sig_ss7_chan *p, enum sig_ss7_law law, const struct ast_channel *requestor, int transfercapability); void sig_ss7_chan_delete(struct sig_ss7_chan *doomed); struct sig_ss7_chan *sig_ss7_chan_new(void *pvt_data, struct sig_ss7_callback *callback, struct sig_ss7_linkset *ss7); +void sig_ss7_init_linkset(struct sig_ss7_linkset *ss7); /* ------------------------------------------------------------------- */ |