gsm_data_shared: compute/sprintf the lchan name only once
We now store the pre-printed lchan name in lchan->name to avoid having to call sprintf every time there is a debug statement somewhere, particularly as most of those debug statements are going to be inactive most of the time.
This commit is contained in:
parent
e1ba781f7b
commit
c696cc28d8
|
@ -233,6 +233,8 @@ struct gsm_lchan {
|
||||||
|
|
||||||
uint8_t rqd_ta;
|
uint8_t rqd_ta;
|
||||||
|
|
||||||
|
char *name;
|
||||||
|
|
||||||
#ifdef ROLE_BSC
|
#ifdef ROLE_BSC
|
||||||
struct osmo_timer_list T3101;
|
struct osmo_timer_list T3101;
|
||||||
struct osmo_timer_list T3109;
|
struct osmo_timer_list T3109;
|
||||||
|
@ -759,9 +761,13 @@ const char *gsm_lchant_name(enum gsm_chan_t c);
|
||||||
const char *gsm_chreq_name(enum gsm_chreq_reason_t c);
|
const char *gsm_chreq_name(enum gsm_chreq_reason_t c);
|
||||||
char *gsm_trx_name(const struct gsm_bts_trx *trx);
|
char *gsm_trx_name(const struct gsm_bts_trx *trx);
|
||||||
char *gsm_ts_name(const struct gsm_bts_trx_ts *ts);
|
char *gsm_ts_name(const struct gsm_bts_trx_ts *ts);
|
||||||
char *gsm_lchan_name(const struct gsm_lchan *lchan);
|
char *gsm_lchan_name_compute(const struct gsm_lchan *lchan);
|
||||||
const char *gsm_lchans_name(enum gsm_lchan_state s);
|
const char *gsm_lchans_name(enum gsm_lchan_state s);
|
||||||
|
|
||||||
|
static inline char *gsm_lchan_name(const struct gsm_lchan *lchan)
|
||||||
|
{
|
||||||
|
return lchan->name;
|
||||||
|
}
|
||||||
|
|
||||||
void gsm_abis_mo_reset(struct gsm_abis_mo *mo);
|
void gsm_abis_mo_reset(struct gsm_abis_mo *mo);
|
||||||
|
|
||||||
|
|
|
@ -188,12 +188,15 @@ struct gsm_bts_trx *gsm_bts_trx_alloc(struct gsm_bts *bts)
|
||||||
|
|
||||||
for (l = 0; l < TS_MAX_LCHAN; l++) {
|
for (l = 0; l < TS_MAX_LCHAN; l++) {
|
||||||
struct gsm_lchan *lchan;
|
struct gsm_lchan *lchan;
|
||||||
|
char *name;
|
||||||
lchan = &ts->lchan[l];
|
lchan = &ts->lchan[l];
|
||||||
|
|
||||||
lchan->ts = ts;
|
lchan->ts = ts;
|
||||||
lchan->nr = l;
|
lchan->nr = l;
|
||||||
lchan->type = GSM_LCHAN_NONE;
|
lchan->type = GSM_LCHAN_NONE;
|
||||||
|
|
||||||
|
name = gsm_lchan_name_compute(lchan);
|
||||||
|
lchan->name = talloc_strdup(trx, name);
|
||||||
#ifndef ROLE_BSC
|
#ifndef ROLE_BSC
|
||||||
INIT_LLIST_HEAD(&lchan->sapi_cmds);
|
INIT_LLIST_HEAD(&lchan->sapi_cmds);
|
||||||
#endif
|
#endif
|
||||||
|
@ -345,7 +348,7 @@ char *gsm_ts_name(const struct gsm_bts_trx_ts *ts)
|
||||||
return ts2str;
|
return ts2str;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *gsm_lchan_name(const struct gsm_lchan *lchan)
|
char *gsm_lchan_name_compute(const struct gsm_lchan *lchan)
|
||||||
{
|
{
|
||||||
struct gsm_bts_trx_ts *ts = lchan->ts;
|
struct gsm_bts_trx_ts *ts = lchan->ts;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue