This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Harald Welte gerrit-no-reply at lists.osmocom.orgHarald Welte has submitted this change and it was merged. Change subject: scheduler.c: Factor out find_sched_mframe_idx() function ...................................................................... scheduler.c: Factor out find_sched_mframe_idx() function Let's split the look-up of the multiframe scheduler from the asignment to a given l1ts in trx_sched_set_pchan. Related: OS#2978 Change-Id: I79548b25aae647ce993a9d83c771d22b08cb1c74 --- M src/common/scheduler.c 1 file changed, 24 insertions(+), 17 deletions(-) Approvals: Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/scheduler.c b/src/common/scheduler.c index efd7666..41b5d7a 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1327,6 +1327,19 @@ * scheduler functions */ +static int find_sched_mframe_idx(enum gsm_phys_chan_config pchan, uint8_t tn) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(trx_sched_multiframes); i++) { + if (trx_sched_multiframes[i].pchan == pchan + && (trx_sched_multiframes[i].slotmask & (1 << tn))) { + return i; + } + } + return -1; +} + /* set multiframe scheduler to given pchan */ int trx_sched_set_pchan(struct l1sched_trx *l1t, uint8_t tn, enum gsm_phys_chan_config pchan) @@ -1334,24 +1347,18 @@ struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); int i; - for (i = 0; i < ARRAY_SIZE(trx_sched_multiframes); i++) { - if (trx_sched_multiframes[i].pchan == pchan - && (trx_sched_multiframes[i].slotmask & (1 << tn))) { - l1ts->mf_index = i; - l1ts->mf_period = trx_sched_multiframes[i].period; - l1ts->mf_frames = trx_sched_multiframes[i].frames; - LOGP(DL1C, LOGL_NOTICE, "Configuring multiframe with " - "%s trx=%d ts=%d\n", - trx_sched_multiframes[i].name, - l1t->trx->nr, tn); - return 0; - } + i = find_sched_mframe_idx(pchan, tn); + if (i < 0) { + LOGP(DL1C, LOGL_NOTICE, "Failed to configure multiframe " + "trx=%d ts=%d\n", l1t->trx->nr, tn); + return -ENOTSUP; } - - LOGP(DL1C, LOGL_NOTICE, "Failed to configure multiframe " - "trx=%d ts=%d\n", l1t->trx->nr, tn); - - return -ENOTSUP; + l1ts->mf_index = i; + l1ts->mf_period = trx_sched_multiframes[i].period; + l1ts->mf_frames = trx_sched_multiframes[i].frames; + LOGP(DL1C, LOGL_NOTICE, "Configuring multiframe with %s trx=%d ts=%d\n", + trx_sched_multiframes[i].name, l1t->trx->nr, tn); + return 0; } /* setting all logical channels given attributes to active/inactive */ -- To view, visit https://gerrit.osmocom.org/6850 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I79548b25aae647ce993a9d83c771d22b08cb1c74 Gerrit-PatchSet: 2 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy <axilirator at gmail.com>