aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2021-05-27 18:21:21 +0200
committerlaforge <laforge@osmocom.org>2021-06-04 20:04:13 +0000
commitbcdbb6c55665afb99fa4d69ea9a4751d4187adbf (patch)
treee02e9311b6591f10440db9f94a76cb6c6f54e16c
parent5d888e5064fd75f16183cabc71ff4e38b205614a (diff)
[VAMOS] gsm_data: rework and rename gsm_lchan_name_compute()
-rw-r--r--include/osmo-bts/gsm_data.h2
-rw-r--r--src/common/bts_trx.c4
-rw-r--r--src/common/gsm_data.c17
3 files changed, 12 insertions, 11 deletions
diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h
index cd63f6fb..93eb2f06 100644
--- a/include/osmo-bts/gsm_data.h
+++ b/include/osmo-bts/gsm_data.h
@@ -512,7 +512,7 @@ enum gsm_phys_chan_config gsm_pchan_parse(const char *name);
const char *gsm_lchant_name(enum gsm_chan_t c);
char *gsm_ts_name(const struct gsm_bts_trx_ts *ts);
char *gsm_ts_and_pchan_name(const struct gsm_bts_trx_ts *ts);
-char *gsm_lchan_name_compute(const struct gsm_lchan *lchan);
+void gsm_lchan_name_update(struct gsm_lchan *lchan);
const char *gsm_lchans_name(enum gsm_lchan_state s);
static inline char *gsm_lchan_name(const struct gsm_lchan *lchan)
diff --git a/src/common/bts_trx.c b/src/common/bts_trx.c
index ee03b9ab..3d295e58 100644
--- a/src/common/bts_trx.c
+++ b/src/common/bts_trx.c
@@ -96,15 +96,13 @@ struct gsm_bts_trx *gsm_bts_trx_alloc(struct gsm_bts *bts)
for (l = 0; l < TS_MAX_LCHAN; l++) {
struct gsm_lchan *lchan;
- char *name;
lchan = &ts->lchan[l];
lchan->ts = ts;
lchan->nr = l;
lchan->type = GSM_LCHAN_NONE;
+ gsm_lchan_name_update(lchan);
- name = gsm_lchan_name_compute(lchan);
- lchan->name = talloc_strdup(trx, name);
INIT_LLIST_HEAD(&lchan->sapi_cmds);
INIT_LLIST_HEAD(&lchan->dl_tch_queue);
}
diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c
index 6b57851a..63287837 100644
--- a/src/common/gsm_data.c
+++ b/src/common/gsm_data.c
@@ -165,14 +165,17 @@ char *gsm_ts_and_pchan_name(const struct gsm_bts_trx_ts *ts)
return ts2str;
}
-char *gsm_lchan_name_compute(const struct gsm_lchan *lchan)
+void gsm_lchan_name_update(struct gsm_lchan *lchan)
{
- struct gsm_bts_trx_ts *ts = lchan->ts;
-
- snprintf(ts2str, sizeof(ts2str), "(bts=%d,trx=%d,ts=%d,ss=%d)",
- ts->trx->bts->nr, ts->trx->nr, ts->nr, lchan->nr);
-
- return ts2str;
+ const struct gsm_bts_trx_ts *ts = lchan->ts;
+ const struct gsm_bts_trx *trx = ts->trx;
+ char *name;
+
+ name = talloc_asprintf(trx, "(bts=%u,trx=%u,ts=%u,ss=%u)",
+ trx->bts->nr, trx->nr, ts->nr, lchan->nr);
+ if (lchan->name != NULL)
+ talloc_free(lchan->name);
+ lchan->name = name;
}
/* See Table 10.5.25 of GSM04.08 */