fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34216 )
Change subject: trxcon/l1sched: refactor l1sched_mframe_layout() ......................................................................
trxcon/l1sched: refactor l1sched_mframe_layout()
Change-Id: Ie1c3679879ef97d42237d6723d1619ac0ef97f6b --- M src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h M src/host/trxcon/src/sched_mframe.c 2 files changed, 19 insertions(+), 10 deletions(-)
Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified
diff --git a/src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h b/src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h index 7d9a5b5..3f5e8b0 100644 --- a/src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h +++ b/src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h @@ -327,8 +327,8 @@ };
extern const struct l1sched_lchan_desc l1sched_lchan_desc[_L1SCHED_CHAN_MAX]; -const struct l1sched_tdma_multiframe *l1sched_mframe_layout( - enum gsm_phys_chan_config config, int tn); +const struct l1sched_tdma_multiframe * +l1sched_mframe_layout(enum gsm_phys_chan_config config, uint8_t tn);
/* Scheduler management functions */ struct l1sched_state *l1sched_alloc(void *ctx, const struct l1sched_cfg *cfg, void *priv); diff --git a/src/host/trxcon/src/sched_mframe.c b/src/host/trxcon/src/sched_mframe.c index 90b7763..0d95e0a 100644 --- a/src/host/trxcon/src/sched_mframe.c +++ b/src/host/trxcon/src/sched_mframe.c @@ -2087,15 +2087,15 @@ }, };
-const struct l1sched_tdma_multiframe *l1sched_mframe_layout( - enum gsm_phys_chan_config config, int tn) +const struct l1sched_tdma_multiframe * +l1sched_mframe_layout(enum gsm_phys_chan_config config, uint8_t tn) { - int i, ts_allowed; - - for (i = 0; i < ARRAY_SIZE(layouts); i++) { - ts_allowed = layouts[i].slotmask & (0x01 << tn); - if (layouts[i].chan_config == config && ts_allowed) - return &layouts[i]; + for (unsigned int i = 0; i < ARRAY_SIZE(layouts); i++) { + if (layouts[i].chan_config != config) + continue; + if (~layouts[i].slotmask & (1 << tn)) + continue; + return &layouts[i]; }
return NULL;