diff options
author | Harald Welte <laforge@gnumonks.org> | 2010-03-07 17:50:21 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-03-07 17:50:21 +0100 |
commit | 622b718195d607d7cfc8b9ec96f943ea0ce2d1dd (patch) | |
tree | df5b56824b241b04e1ff3df3aaa75b858a938a45 /include | |
parent | 63d3e396e79bae0e3580a8813a8c1c0166a51b59 (diff) |
import some gsm band/arfcn/time related utilities from OsmocomBB
Diffstat (limited to 'include')
-rw-r--r-- | include/osmocore/gsm_utils.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/osmocore/gsm_utils.h b/include/osmocore/gsm_utils.h index b611050d..25360459 100644 --- a/include/osmocore/gsm_utils.h +++ b/include/osmocore/gsm_utils.h @@ -27,6 +27,14 @@ #include <stdint.h> +struct gsm_time { + uint32_t fn; /* FN count */ + uint16_t t1; /* FN div (26*51) */ + uint8_t t2; /* FN modulo 26 */ + uint8_t t3; /* FN modulo 51 */ + uint8_t tc; +}; + enum gsm_band { GSM_BAND_850 = 1, GSM_BAND_900 = 2, @@ -58,5 +66,19 @@ static inline int rach_max_trans_raw2val(int raw) { return tbl[raw & 3]; } +#define ARFCN_PCS 0x8000 +#define ARFCN_UPLINK 0x4000 + +enum gsm_band gsm_arfcn2band(uint16_t arfcn); + +/* Convert an ARFCN to the frequency in MHz * 10 */ +uint16_t gsm_arfcn2freq10(uint16_t arfcn, int uplink); + +/* Convert from frame number to GSM time */ +void gsm_fn2gsmtime(struct gsm_time *time, uint32_t fn); + +/* Convert from GSM time to frame number */ +uint32_t gsm_gsmtime2fn(struct gsm_time *time); + void generate_backtrace(); #endif |