GNU Radio's GSM Package: gsm0503_interleaving.h Source File

GNU Radio's GSM Package

gsm0503_interleaving.h
Go to the documentation of this file.
1 /*
2 * (C) 2013 by Andreas Eversberg <jolly@eversberg.eu>
3 * (C) 2016 by Tom Tsou <tom.tsou@ettus.com>
4 *
5 * All Rights Reserved
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along
18 * with this program; if not, write to the Free Software Foundation, Inc.,
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 */
21
22
23 #pragma once
24
25 #include <osmocom/core/bits.h>
26
27 void gsm0503_xcch_deinterleave(sbit_t *cB, const sbit_t *iB);
28 void gsm0503_xcch_interleave(ubit_t *cB, ubit_t *iB);
29
30 void gsm0503_tch_fr_deinterleave(sbit_t *cB, sbit_t *iB);
31 void gsm0503_tch_fr_interleave(ubit_t *cB, ubit_t *iB);
32
33 void gsm0503_tch_hr_deinterleave(sbit_t *cB, sbit_t *iB);
34 void gsm0503_tch_hr_interleave(ubit_t *cB, ubit_t *iB);
35
36 void gsm0503_mcs1_ul_deinterleave(sbit_t *hc, sbit_t *dc, const sbit_t *iB);
37 void gsm0503_mcs1_ul_interleave(const ubit_t *hc,
38 const ubit_t *dc, ubit_t *iB);
39
40 void gsm0503_mcs1_dl_deinterleave(sbit_t *u, sbit_t *hc,
41 sbit_t *dc, const sbit_t *iB);
42 void gsm0503_mcs1_dl_interleave(const ubit_t *up, const ubit_t *hc,
43 const ubit_t *dc, ubit_t *iB);
44
45 void gsm0503_mcs5_ul_deinterleave(sbit_t *hc, sbit_t *dc,
46 const sbit_t *hi, const sbit_t *di);
47 void gsm0503_mcs5_ul_interleave(const ubit_t *hc, const ubit_t *dc,
48 ubit_t *hi, ubit_t *di);
49
50 void gsm0503_mcs5_dl_deinterleave(sbit_t *hc, sbit_t *dc,
51 const sbit_t *hi, const sbit_t *di);
52 void gsm0503_mcs5_dl_interleave(const ubit_t *hc, const ubit_t *dc,
53 ubit_t *hi, ubit_t *di);
54
55 void gsm0503_mcs7_ul_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2,
56 const sbit_t *hi, const sbit_t *di);
57 void gsm0503_mcs7_ul_interleave(const ubit_t *hc, const ubit_t *c1,
58 const ubit_t *c2, ubit_t *hi, ubit_t *di);
59
60 void gsm0503_mcs7_dl_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2,
61 const sbit_t *hi, const sbit_t *di);
62 void gsm0503_mcs7_dl_interleave(const ubit_t *hc, const ubit_t *c1,
63 const ubit_t *c2, ubit_t *hi, ubit_t *di);
64
65 void gsm0503_mcs8_ul_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2,
66 const sbit_t *hi, const sbit_t *di);
67 void gsm0503_mcs8_ul_interleave(const ubit_t *hc, const ubit_t *c1,
68 const ubit_t *c2, ubit_t *hi, ubit_t *di);
69
70 void gsm0503_mcs8_dl_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2,
71 const sbit_t *hi, const sbit_t *di);
72 void gsm0503_mcs8_dl_interleave(const ubit_t *hc, const ubit_t *c1,
73 const ubit_t *c2, ubit_t *hi, ubit_t *di);
gsm0503_mcs1_ul_deinterleave
void gsm0503_mcs1_ul_deinterleave(sbit_t *hc, sbit_t *dc, const sbit_t *iB)
gsm0503_mcs1_dl_deinterleave
void gsm0503_mcs1_dl_deinterleave(sbit_t *u, sbit_t *hc, sbit_t *dc, const sbit_t *iB)
gsm0503_mcs7_ul_interleave
void gsm0503_mcs7_ul_interleave(const ubit_t *hc, const ubit_t *c1, const ubit_t *c2, ubit_t *hi, ubit_t *di)
gsm0503_tch_hr_deinterleave
void gsm0503_tch_hr_deinterleave(sbit_t *cB, sbit_t *iB)
gsm0503_mcs8_dl_deinterleave
void gsm0503_mcs8_dl_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2, const sbit_t *hi, const sbit_t *di)
gsm0503_mcs7_dl_interleave
void gsm0503_mcs7_dl_interleave(const ubit_t *hc, const ubit_t *c1, const ubit_t *c2, ubit_t *hi, ubit_t *di)
gsm0503_mcs1_ul_interleave
void gsm0503_mcs1_ul_interleave(const ubit_t *hc, const ubit_t *dc, ubit_t *iB)
gsm0503_mcs5_dl_interleave
void gsm0503_mcs5_dl_interleave(const ubit_t *hc, const ubit_t *dc, ubit_t *hi, ubit_t *di)
gsm0503_mcs8_ul_deinterleave
void gsm0503_mcs8_ul_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2, const sbit_t *hi, const sbit_t *di)
gsm0503_tch_hr_interleave
void gsm0503_tch_hr_interleave(ubit_t *cB, ubit_t *iB)
gsm0503_mcs5_dl_deinterleave
void gsm0503_mcs5_dl_deinterleave(sbit_t *hc, sbit_t *dc, const sbit_t *hi, const sbit_t *di)
gsm0503_mcs7_ul_deinterleave
void gsm0503_mcs7_ul_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2, const sbit_t *hi, const sbit_t *di)
gsm0503_xcch_interleave
void gsm0503_xcch_interleave(ubit_t *cB, ubit_t *iB)
gsm0503_tch_fr_deinterleave
void gsm0503_tch_fr_deinterleave(sbit_t *cB, sbit_t *iB)
gsm0503_mcs5_ul_interleave
void gsm0503_mcs5_ul_interleave(const ubit_t *hc, const ubit_t *dc, ubit_t *hi, ubit_t *di)
gsm0503_tch_fr_interleave
void gsm0503_tch_fr_interleave(ubit_t *cB, ubit_t *iB)
gsm0503_mcs7_dl_deinterleave
void gsm0503_mcs7_dl_deinterleave(sbit_t *hc, sbit_t *c1, sbit_t *c2, const sbit_t *hi, const sbit_t *di)
gsm0503_mcs8_dl_interleave
void gsm0503_mcs8_dl_interleave(const ubit_t *hc, const ubit_t *c1, const ubit_t *c2, ubit_t *hi, ubit_t *di)
gsm0503_mcs5_ul_deinterleave
void gsm0503_mcs5_ul_deinterleave(sbit_t *hc, sbit_t *dc, const sbit_t *hi, const sbit_t *di)
gsm0503_mcs8_ul_interleave
void gsm0503_mcs8_ul_interleave(const ubit_t *hc, const ubit_t *c1, const ubit_t *c2, ubit_t *hi, ubit_t *di)
gsm0503_xcch_deinterleave
void gsm0503_xcch_deinterleave(sbit_t *cB, const sbit_t *iB)
gsm0503_mcs1_dl_interleave
void gsm0503_mcs1_dl_interleave(const ubit_t *up, const ubit_t *hc, const ubit_t *dc, ubit_t *iB)