fixeria has uploaded this change for review.
trxcon/l1sched: add and use l1sched_del_all_ts()
Change-Id: I35ce97459dcd0e2cac4ab8927f02fe0232aa6142
---
M src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h
M src/host/trxcon/src/sched_trx.c
2 files changed, 13 insertions(+), 9 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/05/41905/1
diff --git a/src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h b/src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h
index d145929..b2fc99d 100644
--- a/src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h
+++ b/src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h
@@ -343,6 +343,7 @@
/* Timeslot management functions */
struct l1sched_ts *l1sched_add_ts(struct l1sched_state *sched, int tn);
void l1sched_del_ts(struct l1sched_state *sched, int tn);
+void l1sched_del_all_ts(struct l1sched_state *sched);
int l1sched_reset_ts(struct l1sched_state *sched, int tn);
int l1sched_configure_ts(struct l1sched_state *sched, int tn,
enum gsm_phys_chan_config config);
diff --git a/src/host/trxcon/src/sched_trx.c b/src/host/trxcon/src/sched_trx.c
index 7d5c70f..eafb645 100644
--- a/src/host/trxcon/src/sched_trx.c
+++ b/src/host/trxcon/src/sched_trx.c
@@ -165,33 +165,27 @@
void l1sched_free(struct l1sched_state *sched)
{
- unsigned int tn;
-
if (sched == NULL)
return;
LOGP_SCHEDC(sched, LOGL_NOTICE, "Shutdown scheduler\n");
/* Free all potentially allocated timeslots */
- for (tn = 0; tn < ARRAY_SIZE(sched->ts); tn++)
- l1sched_del_ts(sched, tn);
+ l1sched_del_all_ts(sched);
talloc_free(sched);
}
void l1sched_reset(struct l1sched_state *sched)
{
- unsigned int tn;
-
if (sched == NULL)
return;
LOGP_SCHEDC(sched, LOGL_NOTICE, "Reset scheduler\n");
/* Free all potentially allocated timeslots */
- for (tn = 0; tn < ARRAY_SIZE(sched->ts); tn++)
- l1sched_del_ts(sched, tn);
-
+ l1sched_del_all_ts(sched);
+ /* Reset UL SACCH cache */
l1sched_sacch_cache_update(sched, meas_rep_dummy);
sched->bsic = 0;
@@ -253,6 +247,15 @@
l1sched_cfg_pchan_comb_ind(sched, tn, GSM_PCHAN_NONE);
}
+void l1sched_del_all_ts(struct l1sched_state *sched)
+{
+ for (unsigned int tn = 0; tn < ARRAY_SIZE(sched->ts); tn++) {
+ if (sched->ts[tn] == NULL)
+ continue;
+ l1sched_del_ts(sched, tn);
+ }
+}
+
static struct l1sched_lchan_state *
l1sched_ts_add_lchan(struct l1sched_ts *ts,
enum l1sched_lchan_type type)
To view, visit change 41905. To unsubscribe, or for help writing mail filters, visit settings.