use new {dl,ul}_tbf_as_tbf(_const) helper functions
Change-Id: I223d9d5823c90ff31089420d35a7bf0fe1ebf870
diff --git a/src/bts.cpp b/src/bts.cpp
index ae63a12..2389987 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -461,7 +461,7 @@
ms = llist_entry(tmp, typeof(*ms), list);
struct gprs_rlcmac_tbf *tbfs[] = { ms->ul_tbf, ms->dl_tbf };
for (l = 0; l < ARRAY_SIZE(tbfs); l++) {
- tbf = (struct gprs_rlcmac_tbf *)tbfs[l];
+ tbf = tbfs[l];
if (!tbf)
continue;
first_ts = -1;
diff --git a/src/gprs_ms.c b/src/gprs_ms.c
index 0ccedb3..f4da3a5 100644
--- a/src/gprs_ms.c
+++ b/src/gprs_ms.c
@@ -93,7 +93,7 @@
if (!dl_tbf)
return;
- if (tbf_state((const struct gprs_rlcmac_tbf *)dl_tbf) != TBF_ST_FLOW)
+ if (tbf_state(dl_tbf_as_tbf_const(dl_tbf)) != TBF_ST_FLOW)
return;
LOGPTBFDL(dl_tbf, LOGL_DEBUG, "LLC receive timeout, requesting DL ACK\n");
@@ -162,12 +162,12 @@
osmo_timer_del(&ms->timer);
if (ms->ul_tbf) {
- tbf_set_ms((struct gprs_rlcmac_tbf *)ms->ul_tbf, NULL);
+ tbf_set_ms(ul_tbf_as_tbf(ms->ul_tbf), NULL);
ms->ul_tbf = NULL;
}
if (ms->dl_tbf) {
- tbf_set_ms((struct gprs_rlcmac_tbf *)ms->dl_tbf, NULL);
+ tbf_set_ms(dl_tbf_as_tbf(ms->dl_tbf), NULL);
ms->dl_tbf = NULL;
}
@@ -311,7 +311,7 @@
ms_ref(ms);
if (ms->ul_tbf)
- llist_add_tail(tbf_ms_list((struct gprs_rlcmac_tbf *)ms->ul_tbf), &ms->old_tbfs);
+ llist_add_tail(tbf_ms_list(ul_tbf_as_tbf(ms->ul_tbf)), &ms->old_tbfs);
ms->ul_tbf = tbf;
@@ -331,7 +331,7 @@
ms_ref(ms);
if (ms->dl_tbf)
- llist_add_tail(tbf_ms_list((struct gprs_rlcmac_tbf *)ms->dl_tbf), &ms->old_tbfs);
+ llist_add_tail(tbf_ms_list(dl_tbf_as_tbf(ms->dl_tbf)), &ms->old_tbfs);
ms->dl_tbf = tbf;
@@ -845,7 +845,7 @@
/* If the DL TBF is active, add number of unencoded chunk octets */
if (ms->dl_tbf)
- unencoded_octets += llc_chunk_size(tbf_llc((struct gprs_rlcmac_tbf *)ms->dl_tbf));
+ unencoded_octets += llc_chunk_size(tbf_llc(dl_tbf_as_tbf(ms->dl_tbf)));
/* There are many unencoded octets, don't reduce */
if (unencoded_octets >= the_pcu->vty.cs_downgrade_threshold)
@@ -868,10 +868,10 @@
int ms_first_common_ts(const struct GprsMs *ms)
{
if (ms->dl_tbf)
- return tbf_first_common_ts((struct gprs_rlcmac_tbf *)ms->dl_tbf);
+ return tbf_first_common_ts(dl_tbf_as_tbf(ms->dl_tbf));
if (ms->ul_tbf)
- return tbf_first_common_ts((struct gprs_rlcmac_tbf *)ms->ul_tbf);
+ return tbf_first_common_ts(ul_tbf_as_tbf(ms->ul_tbf));
return -1;
}
@@ -881,10 +881,10 @@
uint8_t slots = 0;
if (ms->dl_tbf)
- slots |= tbf_dl_slots((struct gprs_rlcmac_tbf *)ms->dl_tbf);
+ slots |= tbf_dl_slots(dl_tbf_as_tbf(ms->dl_tbf));
if (ms->ul_tbf)
- slots |= tbf_dl_slots((struct gprs_rlcmac_tbf *)ms->ul_tbf);
+ slots |= tbf_dl_slots(ul_tbf_as_tbf(ms->ul_tbf));
return slots;
}
@@ -894,10 +894,10 @@
uint8_t slots = 0;
if (ms->dl_tbf)
- slots |= tbf_ul_slots((struct gprs_rlcmac_tbf *)ms->dl_tbf);
+ slots |= tbf_ul_slots(dl_tbf_as_tbf(ms->dl_tbf));
if (ms->ul_tbf)
- slots |= tbf_ul_slots((struct gprs_rlcmac_tbf *)ms->ul_tbf);
+ slots |= tbf_ul_slots(ul_tbf_as_tbf(ms->ul_tbf));
return slots;
}
@@ -906,20 +906,20 @@
{
uint8_t slots = 0;
- bool is_dl_active = ms->dl_tbf && tbf_is_tfi_assigned((struct gprs_rlcmac_tbf *)ms->dl_tbf);
- bool is_ul_active = ms->ul_tbf && tbf_is_tfi_assigned((struct gprs_rlcmac_tbf *)ms->ul_tbf);
+ bool is_dl_active = ms->dl_tbf && tbf_is_tfi_assigned(dl_tbf_as_tbf(ms->dl_tbf));
+ bool is_ul_active = ms->ul_tbf && tbf_is_tfi_assigned(ul_tbf_as_tbf(ms->ul_tbf));
if (!is_dl_active && !is_ul_active)
return 0;
/* see TS 44.060, 8.1.1.2.2 */
if (is_dl_active && !is_ul_active)
- slots = tbf_dl_slots((struct gprs_rlcmac_tbf *)ms->dl_tbf);
+ slots = tbf_dl_slots(dl_tbf_as_tbf(ms->dl_tbf));
else if (!is_dl_active && is_ul_active)
- slots = tbf_ul_slots((struct gprs_rlcmac_tbf *)ms->ul_tbf);
+ slots = tbf_ul_slots(ul_tbf_as_tbf(ms->ul_tbf));
else
- slots = tbf_ul_slots((struct gprs_rlcmac_tbf *)ms->ul_tbf) &
- tbf_dl_slots((struct gprs_rlcmac_tbf *)ms->dl_tbf);
+ slots = tbf_ul_slots(ul_tbf_as_tbf(ms->ul_tbf)) &
+ tbf_dl_slots(dl_tbf_as_tbf(ms->dl_tbf));
/* Assume a multislot class 1 device */
/* TODO: For class 2 devices, this could be removed */
@@ -953,8 +953,8 @@
struct gprs_rlcmac_tbf *ms_tbf(const struct GprsMs *ms, enum gprs_rlcmac_tbf_direction dir)
{
switch (dir) {
- case GPRS_RLCMAC_DL_TBF: return (struct gprs_rlcmac_tbf *)ms->dl_tbf;
- case GPRS_RLCMAC_UL_TBF: return (struct gprs_rlcmac_tbf *)ms->ul_tbf;
+ case GPRS_RLCMAC_DL_TBF: return dl_tbf_as_tbf(ms->dl_tbf);
+ case GPRS_RLCMAC_UL_TBF: return ul_tbf_as_tbf(ms->ul_tbf);
}
return NULL;
@@ -1041,9 +1041,9 @@
ms_start_llc_timer(ms);
dl_tbf = ms_dl_tbf(ms);
- if (dl_tbf && tbf_state((const struct gprs_rlcmac_tbf *)dl_tbf) == TBF_ST_WAIT_RELEASE) {
+ if (dl_tbf && tbf_state(dl_tbf_as_tbf_const(dl_tbf)) == TBF_ST_WAIT_RELEASE) {
LOGPTBFDL(dl_tbf, LOGL_DEBUG, "in WAIT RELEASE state (T3193), so reuse TBF\n");
- tbf_establish_dl_tbf_on_pacch((struct gprs_rlcmac_tbf *)dl_tbf);
+ tbf_establish_dl_tbf_on_pacch(dl_tbf_as_tbf(dl_tbf));
}
return 0;
diff --git a/src/pdch_ul_controller.c b/src/pdch_ul_controller.c
index 1cdbb98..df0c500 100644
--- a/src/pdch_ul_controller.c
+++ b/src/pdch_ul_controller.c
@@ -275,7 +275,7 @@
item_tbf = item->tbf_poll.poll_tbf;
break;
case PDCH_ULC_NODE_TBF_USF:
- item_tbf = (struct gprs_rlcmac_tbf *)item->tbf_usf.ul_tbf;
+ item_tbf = ul_tbf_as_tbf_const(item->tbf_usf.ul_tbf);
break;
default:
OSMO_ASSERT(0);
@@ -316,7 +316,7 @@
case PDCH_ULC_NODE_TBF_USF:
LOGPDCH(ulc->pdch, DRLCMAC, LOGL_INFO,
"Timeout for registered USF (FN=%u): %s\n",
- item->fn, tbf_name((struct gprs_rlcmac_tbf *)item->tbf_usf.ul_tbf));
+ item->fn, tbf_name(ul_tbf_as_tbf_const(item->tbf_usf.ul_tbf)));
tbf_usf_timeout(item->tbf_usf.ul_tbf);
break;
case PDCH_ULC_NODE_TBF_POLL:
diff --git a/src/tbf_ul_ass_fsm.c b/src/tbf_ul_ass_fsm.c
index ee5f681..932a91f 100644
--- a/src/tbf_ul_ass_fsm.c
+++ b/src/tbf_ul_ass_fsm.c
@@ -106,9 +106,9 @@
};
bitvec_unhex(&bv, DUMMY_VEC);
- if (ctx->tbf != (struct gprs_rlcmac_tbf *)new_tbf)
+ if (ctx->tbf != ul_tbf_as_tbf_const(new_tbf))
LOGPTBF(ctx->tbf, LOGL_INFO, "start Packet Uplink Assignment (PACCH) for %s\n",
- tbf_name((const struct gprs_rlcmac_tbf *)new_tbf));
+ tbf_name(ul_tbf_as_tbf_const(new_tbf)));
else
LOGPTBF(ctx->tbf, LOGL_INFO, "start Packet Uplink Assignment (PACCH)\n");