From fe6e2e4a08b07df2bbf5a19e9bf7460d7c8539c1 Mon Sep 17 00:00:00 2001 From: Daniel Willmann Date: Thu, 10 Jul 2014 17:44:06 +0200 Subject: bts: Return the special type for {ul,dl}_tbf_by_* functions Start returning the special type instead of the base gprs_rlcmac_tbf when retrieving a TBF. Ticket: SYS#389 Sponsored-by: On-Waves ehf --- src/bts.cpp | 36 ++++++++++++++++++------------------ src/bts.h | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) (limited to 'src') diff --git a/src/bts.cpp b/src/bts.cpp index f614dabe..79cae4cf 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -217,15 +217,15 @@ int BTS::add_paging(uint8_t chan_needed, uint8_t *identity_lv) } /* search for active downlink tbf */ -gprs_rlcmac_tbf *BTS::dl_tbf_by_tlli(uint32_t tlli) +gprs_rlcmac_dl_tbf *BTS::dl_tbf_by_tlli(uint32_t tlli) { - return tbf_by_tlli(tlli, GPRS_RLCMAC_DL_TBF); + return static_cast(tbf_by_tlli(tlli, GPRS_RLCMAC_DL_TBF)); } /* search for active uplink tbf */ -gprs_rlcmac_tbf *BTS::ul_tbf_by_tlli(uint32_t tlli) +gprs_rlcmac_ul_tbf *BTS::ul_tbf_by_tlli(uint32_t tlli) { - return tbf_by_tlli(tlli, GPRS_RLCMAC_UL_TBF); + return static_cast(tbf_by_tlli(tlli, GPRS_RLCMAC_UL_TBF)); } /* search for active downlink or uplink tbf */ @@ -250,9 +250,9 @@ gprs_rlcmac_tbf *BTS::tbf_by_tlli(uint32_t tlli, enum gprs_rlcmac_tbf_direction return NULL; } -gprs_rlcmac_tbf *BTS::dl_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts) +gprs_rlcmac_dl_tbf *BTS::dl_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts) { - struct gprs_rlcmac_tbf *tbf; + struct gprs_rlcmac_dl_tbf *tbf; /* only one TBF can poll on specific TS/FN, because scheduler can only * schedule one downlink control block (with polling) at a FN per TS */ @@ -262,14 +262,14 @@ gprs_rlcmac_tbf *BTS::dl_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts) && tbf->poll_fn == fn && tbf->trx->trx_no == trx && tbf->control_ts == ts) { OSMO_ASSERT(tbf->direction == GPRS_RLCMAC_DL_TBF); - return tbf; + return static_cast(tbf); } } return NULL; } -gprs_rlcmac_tbf *BTS::ul_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts) +gprs_rlcmac_ul_tbf *BTS::ul_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts) { - struct gprs_rlcmac_tbf *tbf; + struct gprs_rlcmac_ul_tbf *tbf; /* only one TBF can poll on specific TS/FN, because scheduler can only * schedule one downlink control block (with polling) at a FN per TS */ @@ -279,22 +279,22 @@ gprs_rlcmac_tbf *BTS::ul_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts) && tbf->poll_fn == fn && tbf->trx->trx_no == trx && tbf->control_ts == ts) { OSMO_ASSERT(tbf->direction == GPRS_RLCMAC_UL_TBF); - return tbf; + return static_cast(tbf); } } return NULL; } /* lookup downlink TBF Entity (by TFI) */ -gprs_rlcmac_tbf *BTS::dl_tbf_by_tfi(uint8_t tfi, uint8_t trx) +gprs_rlcmac_dl_tbf *BTS::dl_tbf_by_tfi(uint8_t tfi, uint8_t trx) { - return tbf_by_tfi(tfi, trx, GPRS_RLCMAC_DL_TBF); + return static_cast(tbf_by_tfi(tfi, trx, GPRS_RLCMAC_DL_TBF)); } /* lookup uplink TBF Entity (by TFI) */ -gprs_rlcmac_tbf *BTS::ul_tbf_by_tfi(uint8_t tfi, uint8_t trx) +gprs_rlcmac_ul_tbf *BTS::ul_tbf_by_tfi(uint8_t tfi, uint8_t trx) { - return tbf_by_tfi(tfi, trx, GPRS_RLCMAC_UL_TBF); + return static_cast(tbf_by_tfi(tfi, trx, GPRS_RLCMAC_UL_TBF)); } /* lookup TBF Entity (by TFI) */ @@ -1047,12 +1047,12 @@ gprs_rlcmac_tbf *gprs_rlcmac_pdch::tbf_from_list_by_tfi(struct llist_head *tbf_l return NULL; } -gprs_rlcmac_tbf *gprs_rlcmac_pdch::ul_tbf_by_tfi(uint8_t tfi) +gprs_rlcmac_ul_tbf *gprs_rlcmac_pdch::ul_tbf_by_tfi(uint8_t tfi) { - return tbf_from_list_by_tfi(&bts_data()->ul_tbfs, tfi, GPRS_RLCMAC_UL_TBF); + return static_cast(tbf_from_list_by_tfi(&bts_data()->ul_tbfs, tfi, GPRS_RLCMAC_UL_TBF)); } -gprs_rlcmac_tbf *gprs_rlcmac_pdch::dl_tbf_by_tfi(uint8_t tfi) +gprs_rlcmac_dl_tbf *gprs_rlcmac_pdch::dl_tbf_by_tfi(uint8_t tfi) { - return tbf_from_list_by_tfi(&bts_data()->dl_tbfs, tfi, GPRS_RLCMAC_DL_TBF); + return static_cast(tbf_from_list_by_tfi(&bts_data()->dl_tbfs, tfi, GPRS_RLCMAC_DL_TBF)); } diff --git a/src/bts.h b/src/bts.h index a0b808eb..8f99942d 100644 --- a/src/bts.h +++ b/src/bts.h @@ -62,8 +62,8 @@ struct gprs_rlcmac_pdch { BTS *bts() const; uint8_t trx_no() const; - struct gprs_rlcmac_tbf *ul_tbf_by_tfi(uint8_t tfi); - struct gprs_rlcmac_tbf *dl_tbf_by_tfi(uint8_t tfi); + struct gprs_rlcmac_ul_tbf *ul_tbf_by_tfi(uint8_t tfi); + struct gprs_rlcmac_dl_tbf *dl_tbf_by_tfi(uint8_t tfi); #endif uint8_t m_is_enabled; /* TS is enabled */ @@ -193,12 +193,12 @@ public: /** add paging to paging queue(s) */ int add_paging(uint8_t chan_needed, uint8_t *identity_lv); - gprs_rlcmac_tbf *dl_tbf_by_tlli(uint32_t tlli); - gprs_rlcmac_tbf *ul_tbf_by_tlli(uint32_t tlli); - gprs_rlcmac_tbf *dl_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts); - gprs_rlcmac_tbf *ul_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts); - gprs_rlcmac_tbf *dl_tbf_by_tfi(uint8_t tfi, uint8_t trx); - gprs_rlcmac_tbf *ul_tbf_by_tfi(uint8_t tfi, uint8_t trx); + gprs_rlcmac_dl_tbf *dl_tbf_by_tlli(uint32_t tlli); + gprs_rlcmac_ul_tbf *ul_tbf_by_tlli(uint32_t tlli); + gprs_rlcmac_dl_tbf *dl_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts); + gprs_rlcmac_ul_tbf *ul_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts); + gprs_rlcmac_dl_tbf *dl_tbf_by_tfi(uint8_t tfi, uint8_t trx); + gprs_rlcmac_ul_tbf *ul_tbf_by_tfi(uint8_t tfi, uint8_t trx); int tfi_find_free(enum gprs_rlcmac_tbf_direction dir, uint8_t *_trx, int8_t use_trx); -- cgit v1.2.3