blob: a5d25ed536da9161b1035d937c9a28694416cb97 [file] [log] [blame]
Vadim Yanitskiy3262f822016-09-23 01:48:59 +07001#pragma once
2
3#include <osmocom/core/bits.h>
4
Harald Weltec6636782017-06-12 14:59:37 +02005/*! \addtogroup interleaving
6 * @{
7 */
8
9/*! \file gsm0503_interleaving.h
10 * \brief GSM TS 05.03 interleaving
11 */
12
Vadim Yanitskiy3262f822016-09-23 01:48:59 +070013void gsm0503_xcch_deinterleave(sbit_t *cB, const sbit_t *iB);
Harald Welte0eb2c5d2017-06-12 15:03:11 +020014void gsm0503_xcch_interleave(const ubit_t *cB, ubit_t *iB);
Vadim Yanitskiy3262f822016-09-23 01:48:59 +070015
Harald Welte0eb2c5d2017-06-12 15:03:11 +020016void gsm0503_tch_fr_deinterleave(sbit_t *cB, const sbit_t *iB);
17void gsm0503_tch_fr_interleave(const ubit_t *cB, ubit_t *iB);
Vadim Yanitskiy3262f822016-09-23 01:48:59 +070018
Harald Welte0eb2c5d2017-06-12 15:03:11 +020019void gsm0503_tch_hr_deinterleave(sbit_t *cB, const sbit_t *iB);
20void gsm0503_tch_hr_interleave(const ubit_t *cB, ubit_t *iB);
Vadim Yanitskiy3262f822016-09-23 01:48:59 +070021
22void gsm0503_mcs1_ul_deinterleave(sbit_t *hc, sbit_t *dc, const sbit_t *iB);
23void gsm0503_mcs1_ul_interleave(const ubit_t *hc,
24 const ubit_t *dc, ubit_t *iB);
25
26void gsm0503_mcs1_dl_deinterleave(sbit_t *u, sbit_t *hc,
27 sbit_t *dc, const sbit_t *iB);
28void gsm0503_mcs1_dl_interleave(const ubit_t *up, const ubit_t *hc,
29 const ubit_t *dc, ubit_t *iB);
30
31void gsm0503_mcs5_ul_deinterleave(sbit_t *hc, sbit_t *dc,
32 const sbit_t *hi, const sbit_t *di);
33void gsm0503_mcs5_ul_interleave(const ubit_t *hc, const ubit_t *dc,
34 ubit_t *hi, ubit_t *di);
35
36void gsm0503_mcs5_dl_deinterleave(sbit_t *hc, sbit_t *dc,
37 const sbit_t *hi, const sbit_t *di);
38void gsm0503_mcs5_dl_interleave(const ubit_t *hc, const ubit_t *dc,
39 ubit_t *hi, ubit_t *di);
40
41void gsm0503_mcs7_ul_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2,
42 const sbit_t *hi, const sbit_t *di);
43void gsm0503_mcs7_ul_interleave(const ubit_t *hc, const ubit_t *c1,
44 const ubit_t *c2, ubit_t *hi, ubit_t *di);
45
46void gsm0503_mcs7_dl_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2,
47 const sbit_t *hi, const sbit_t *di);
48void gsm0503_mcs7_dl_interleave(const ubit_t *hc, const ubit_t *c1,
49 const ubit_t *c2, ubit_t *hi, ubit_t *di);
50
51void gsm0503_mcs8_ul_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2,
52 const sbit_t *hi, const sbit_t *di);
53void gsm0503_mcs8_ul_interleave(const ubit_t *hc, const ubit_t *c1,
54 const ubit_t *c2, ubit_t *hi, ubit_t *di);
55
56void gsm0503_mcs8_dl_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2,
57 const sbit_t *hi, const sbit_t *di);
58void gsm0503_mcs8_dl_interleave(const ubit_t *hc, const ubit_t *c1,
59 const ubit_t *c2, ubit_t *hi, ubit_t *di);
Harald Weltec6636782017-06-12 14:59:37 +020060
61/*! @} */