From 9faaf4ecf01322189808901398e06d7e4f14560d Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Tue, 9 Aug 2016 20:15:09 +0200 Subject: cosmetic: common ts_is_pdch() Have one common ts_is_pdch(), placed in lchan.c, since this file is pretty empty and pretty close to ts. Publish in gsm_data.h. Remove the if-style implementation from l1sap.c, and instead implement in a switch statement. This prepares for upcoming ts_is_pdch() usage in ph_data_req() for sysmo and lc15. Change-Id: Ib78d663fdbac5a1d7053f1b9d543649b66da00e2 --- include/osmo-bts/gsm_data.h | 1 + src/common/l1sap.c | 11 ----------- src/common/lchan.c | 16 ++++++++++++++++ 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index c75f8284..f1c96012 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -135,5 +135,6 @@ int conf_lchans_as_pchan(struct gsm_bts_trx_ts *ts, int bts_supports_cipher(struct gsm_bts_role_bts *bts, int rsl_cipher); +bool ts_is_pdch(const struct gsm_bts_trx_ts *ts); #endif /* _GSM_DATA_H */ diff --git a/src/common/l1sap.c b/src/common/l1sap.c index f7df2180..7c30c9b9 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -294,17 +294,6 @@ static int gsmtap_ph_rach(struct osmo_phsap_prim *l1sap, uint8_t *chan_type, return 0; } -static bool ts_is_pdch(const struct gsm_bts_trx_ts *ts) -{ - return ts->pchan == GSM_PCHAN_PDCH - || (ts->pchan == GSM_PCHAN_TCH_F_PDCH - && (ts->flags & TS_F_PDCH_ACTIVE) - && !(ts->flags & TS_F_PDCH_PENDING_MASK)) - || (ts->pchan == GSM_PCHAN_TCH_F_TCH_H_PDCH - && ts->dyn.pchan_want == ts->dyn.pchan_is - && ts->dyn.pchan_is == GSM_PCHAN_PDCH); -} - static int to_gsmtap(struct gsm_bts_trx *trx, struct osmo_phsap_prim *l1sap) { uint8_t *data; diff --git a/src/common/lchan.c b/src/common/lchan.c index fbc26364..9e98166d 100644 --- a/src/common/lchan.c +++ b/src/common/lchan.c @@ -31,3 +31,19 @@ void lchan_set_state(struct gsm_lchan *lchan, enum gsm_lchan_state state) gsm_lchans_name(state)); lchan->state = state; } + +bool ts_is_pdch(const struct gsm_bts_trx_ts *ts) +{ + switch (ts->pchan) { + case GSM_PCHAN_PDCH: + return true; + case GSM_PCHAN_TCH_F_PDCH: + return (ts->flags & TS_F_PDCH_ACTIVE) + && !(ts->flags & TS_F_PDCH_PENDING_MASK); + case GSM_PCHAN_TCH_F_TCH_H_PDCH: + return ts->dyn.pchan_is == GSM_PCHAN_PDCH + && ts->dyn.pchan_want == ts->dyn.pchan_is; + default: + return false; + } +} -- cgit v1.2.3