aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/cbch.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2019-05-21 01:36:51 +0200
committerHarald Welte <laforge@gnumonks.org>2019-05-21 02:42:00 +0200
commit0f9595f462230a6100f2f92f92ed0bc11d7b596b (patch)
tree2603edb07753b74ace12b196285c1e300b0975e3 /src/common/cbch.c
parent067824841f6b1139e3a926b355826454a3f371b2 (diff)
cbch: Keep SMSCB queue length counter
This avoids having to iterate the list to count the number of elements. Change-Id: I72c47affeb87c9b898bc2290dc7ed113945f1805
Diffstat (limited to 'src/common/cbch.c')
-rw-r--r--src/common/cbch.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/common/cbch.c b/src/common/cbch.c
index 6092e464..2107f115 100644
--- a/src/common/cbch.c
+++ b/src/common/cbch.c
@@ -183,6 +183,7 @@ int bts_process_smscb_cmd(struct gsm_bts *bts, struct rsl_ie_cb_cmd_type cmd_typ
case RSL_CB_CMD_TYPE_NULL:
/* def_bcast is ignored as per Section 9.3.41 of 3GPP TS 48.058 */
llist_add_tail(&scm->list, &bts_ss->queue);
+ bts_ss->queue_len++;
/* FIXME: limit queue size and optionally send CBCH LOAD Information (overflow) via RSL */
break;
case RSL_CB_CMD_TYPE_DEFAULT:
@@ -215,6 +216,7 @@ static struct smscb_msg *select_next_smscb(struct gsm_bts *bts, uint8_t tb)
msg = llist_first_entry_or_null(&bts_ss->queue, struct smscb_msg, list);
if (msg) {
llist_del(&msg->list);
+ bts_ss->queue_len--;
DEBUGP(DLSMS, "%s: Dequeued msg\n", __func__);
return msg;
}