aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-trx/gsm0503_interleaving.h
diff options
context:
space:
mode:
authorTom Tsou <tom.tsou@ettus.com>2016-03-24 14:48:21 -0700
committerTom Tsou <tom.tsou@ettus.com>2016-04-26 11:38:05 -0700
commit8545034096e36d62ea3114087928fc6f89d94b48 (patch)
tree7b46fa81e9a44c30d88fa6e8a32529544501ce9a /src/osmo-bts-trx/gsm0503_interleaving.h
parentb61850248adbf717eb323d9ce7a17a817c302544 (diff)
TRX: Add EDGE coding tables
Add header and data coding tables for parity, convolutional coding, interleaving, and mapping. 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.h40
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..755fe86a 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 *u, 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 */