diff options
author | Tom Tsou <tom.tsou@ettus.com> | 2016-07-06 13:29:25 -0700 |
---|---|---|
committer | Tom Tsou <tom@tsou.cc> | 2016-07-25 18:36:29 +0000 |
commit | 73cb583e5147a267a370c576e8ac77507de6d0d7 (patch) | |
tree | 01586359a10410862423aad9d819fe015a444f23 /src/osmo-bts-trx/gsm0503_interleaving.h | |
parent | c9582ac2d7366233ab64f2868f17071c2ddadf32 (diff) |
trx: Add EGPRS tables, sequences, and mappings
Includes EGPRS specific convolutional codes, interleaving tables
and functions, burst mappings, training sequences, and parity
checks from 3GPP TS 44.060 needed to handle MCS codings 1-9.
Change-Id: Ie270398dd7a72f282ba53e646853d8de1eabee93
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
Diffstat (limited to 'src/osmo-bts-trx/gsm0503_interleaving.h')
-rw-r--r-- | src/osmo-bts-trx/gsm0503_interleaving.h | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/src/osmo-bts-trx/gsm0503_interleaving.h b/src/osmo-bts-trx/gsm0503_interleaving.h index 4d546f6a..73767450 100644 --- a/src/osmo-bts-trx/gsm0503_interleaving.h +++ b/src/osmo-bts-trx/gsm0503_interleaving.h @@ -1,11 +1,49 @@ #ifndef _0503_INTERLEAVING_H #define _0503_INTERLEAVING_H -void gsm0503_xcch_deinterleave(sbit_t *cB, sbit_t *iB); +void gsm0503_xcch_deinterleave(sbit_t *cB, const sbit_t *iB); void gsm0503_xcch_interleave(ubit_t *cB, ubit_t *iB); void gsm0503_tch_fr_deinterleave(sbit_t *cB, sbit_t *iB); void gsm0503_tch_fr_interleave(ubit_t *cB, ubit_t *iB); void gsm0503_tch_hr_deinterleave(sbit_t *cB, sbit_t *iB); void gsm0503_tch_hr_interleave(ubit_t *cB, ubit_t *iB); +void gsm0503_mcs1_ul_interleave(const ubit_t *hc, const ubit_t *dc, ubit_t *iB); +void gsm0503_mcs1_ul_deinterleave(sbit_t *hc, sbit_t *dc, const sbit_t *iB); + +void gsm0503_mcs1_dl_interleave(const ubit_t *up, const ubit_t *hc, + const ubit_t *dc, ubit_t *iB); +void gsm0503_mcs1_dl_deinterleave(sbit_t *u, sbit_t *hc, + sbit_t *dc, const sbit_t *iB); + +void gsm0503_mcs5_ul_interleave(const ubit_t *hc, const ubit_t *dc, + ubit_t *hi, ubit_t *di); +void gsm0503_mcs5_ul_deinterleave(sbit_t *hc, sbit_t *dc, + const sbit_t *hi, const sbit_t *di); + +void gsm0503_mcs5_dl_interleave(const ubit_t *hc, const ubit_t *dc, + ubit_t *hi, ubit_t *di); +void gsm0503_mcs5_dl_deinterleave(sbit_t *hc, sbit_t *dc, + const sbit_t *hi, const sbit_t *di); + +void gsm0503_mcs7_ul_interleave(const ubit_t *hc, const ubit_t *c1, + const ubit_t *c2, ubit_t *hi, ubit_t *di); +void gsm0503_mcs7_ul_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2, + const sbit_t *hi, const sbit_t *di); + +void gsm0503_mcs7_dl_interleave(const ubit_t *hc, const ubit_t *c1, + const ubit_t *c2, ubit_t *hi, ubit_t *di); +void gsm0503_mcs7_dl_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2, + const sbit_t *hi, const sbit_t *di); + +void gsm0503_mcs8_ul_interleave(const ubit_t *hc, const ubit_t *c1, + const ubit_t *c2, ubit_t *hi, ubit_t *di); +void gsm0503_mcs8_ul_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2, + const sbit_t *hi, const sbit_t *di); + +void gsm0503_mcs8_dl_interleave(const ubit_t *hc, const ubit_t *c1, + const ubit_t *c2, ubit_t *hi, ubit_t *di); +void gsm0503_mcs8_dl_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2, + const sbit_t *hi, const sbit_t *di); + #endif /* _0503_INTERLEAVING_H */ |