osmo-gmr 0.2.104-2b98 Osmocom GMR-1

tch9.h
Go to the documentation of this file.
1/* GMR-1 TCH9 channel coding */
2/* See GMR-1 05.003 (ETSI TS 101 376-5-3 V1.2.1) - Section 5.3 */
3
4/* (C) 2011-2019 by Sylvain Munaut <tnt@246tNt.com>
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 Affero General Public License as published by
9 * the Free Software Foundation; either version 3 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 Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21#ifndef __OSMO_GMR1_L1_TCH9_H__
22#define __OSMO_GMR1_L1_TCH9_H__
23
33#include <stdint.h>
34#include <osmocom/core/bits.h>
35
36 struct gmr1_interleaver;
37
38
40 enum gmr1_tch9_mode {
41 GMR1_TCH9_2k4,
42 GMR1_TCH9_4k8,
43 GMR1_TCH9_9k6,
44 GMR1_TCH9_MAX
45};
46
47 void gmr1_tch9_encode(ubit_t *bits_e, const uint8_t *l2, enum gmr1_tch9_mode mode,
48 const ubit_t *bits_sacch, const ubit_t *bits_status,
49 const ubit_t *ciph, struct gmr1_interleaver *il);
50 void gmr1_tch9_decode(uint8_t *l2, sbit_t *bits_sacch, sbit_t *bits_status,
51 const sbit_t *bits_e, enum gmr1_tch9_mode mode,
52 const ubit_t *ciph, struct gmr1_interleaver *il,
53 int *conv_rv);
54
55
58#endif /* __OSMO_GMR1_L1_TCH9_H__ */
bits.h
ubit_t
uint8_t ubit_t
sbit_t
int8_t sbit_t
gmr1_tch9_decode
void gmr1_tch9_decode(uint8_t *l2, sbit_t *bits_sacch, sbit_t *bits_status, const sbit_t *bits_e, enum gmr1_tch9_mode mode, const ubit_t *ciph, struct gmr1_interleaver *il, int *conv_rv)
GMR-1 TCH9 channel decoder.
Definition: tch9.c:140
gmr1_tch9_mode
gmr1_tch9_mode
TCH9 possible data rates.
Definition: tch9.h:40
gmr1_tch9_encode
void gmr1_tch9_encode(ubit_t *bits_e, const uint8_t *l2, enum gmr1_tch9_mode mode, const ubit_t *bits_sacch, const ubit_t *bits_status, const ubit_t *ciph, struct gmr1_interleaver *il)
GMR-1 TCH9 channel coder.
Definition: tch9.c:95
GMR1_TCH9_4k8
@ GMR1_TCH9_4k8
TCH9 with 4.8k data rate.
Definition: tch9.h:42
GMR1_TCH9_9k6
@ GMR1_TCH9_9k6
TCH9 with 9.6k data rate.
Definition: tch9.h:43
GMR1_TCH9_2k4
@ GMR1_TCH9_2k4
TCH9 with 2.4k data rate.
Definition: tch9.h:41
GMR1_TCH9_MAX
@ GMR1_TCH9_MAX
Dummy value.
Definition: tch9.h:44
gmr1_interleaver
GMR1 inter-burst (de)interleaver state.
Definition: interleave.h:44