diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2016-09-23 01:48:59 +0700 |
---|---|---|
committer | Vadim Yanitskiy <axilirator@gmail.com> | 2017-03-07 01:06:38 +0700 |
commit | 3262f820b5cfb4c76448f605c9804f3e5ca1023d (patch) | |
tree | 1d62b0b5a454955e71e6ce91a869d54f1d8df154 /include/osmocom/coding/gsm0503_tables.h | |
parent | 68930e85b5945db8ffea055fd178bc1f88b31d99 (diff) |
libosmocoding: migrate transcoding routines from OsmoBTS
There are some projects, such as GR-GSM and OsmocomBB, which would
benefit from using one shared implementation of GSM 05.03 code. So,
this commit introduces a new sub-library called libosmocoding, which
(for now) provides GSM, GPRS and EDGE transcoding routines, migrated
from OsmoBTS.
The original GSM 05.03 code from OsmoBTS was relicensed under
GPLv2-or-later with permission of copyright holders (Andreas Eversberg,
Alexander Chemeris and Tom Tsou).
The following data types are currently supported:
- xCCH
- PDTCH (CS 1-4 and MCS 1-9)
- TCH/FR
- TCH/HR
- TCH/AFS
- RCH/AHS
- RACH
- SCH
Change-Id: I0c3256b87686d878e4e716d12393cad5924fdfa1
Diffstat (limited to 'include/osmocom/coding/gsm0503_tables.h')
-rw-r--r-- | include/osmocom/coding/gsm0503_tables.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/include/osmocom/coding/gsm0503_tables.h b/include/osmocom/coding/gsm0503_tables.h new file mode 100644 index 00000000..e6761ca4 --- /dev/null +++ b/include/osmocom/coding/gsm0503_tables.h @@ -0,0 +1,50 @@ +#pragma once + +#include <stdint.h> +#include <osmocom/core/bits.h> + +extern const ubit_t gsm0503_pdtch_hl_hn_ubit[4][8]; +extern const ubit_t gsm0503_pdtch_edge_hl_hn_ubit[3][8]; +extern const sbit_t gsm0503_pdtch_hl_hn_sbit[4][8]; +extern const sbit_t gsm0503_pdtch_edge_hl_hn_sbit[3][8]; +extern const ubit_t gsm0503_usf2six[8][6]; +extern const ubit_t gsm0503_usf2twelve_ubit[8][12]; +extern const sbit_t gsm0503_usf2twelve_sbit[8][12]; +extern const uint8_t gsm0503_puncture_cs2[588]; +extern const uint8_t gsm0503_puncture_cs3[676]; +extern const uint8_t gsm0503_puncture_mcs1_dl_hdr[108]; +extern const uint8_t gsm0503_puncture_mcs1_ul_hdr[117]; +extern const uint8_t gsm0503_puncture_mcs1_p1[588]; +extern const uint8_t gsm0503_puncture_mcs1_p2[588]; +extern const uint8_t gsm0503_puncture_mcs2_p1[732]; +extern const uint8_t gsm0503_puncture_mcs2_p2[732]; +extern const uint8_t gsm0503_puncture_mcs3_p1[948]; +extern const uint8_t gsm0503_puncture_mcs3_p2[948]; +extern const uint8_t gsm0503_puncture_mcs3_p3[948]; +extern const uint8_t gsm0503_puncture_mcs4_p1[1116]; +extern const uint8_t gsm0503_puncture_mcs4_p2[1116]; +extern const uint8_t gsm0503_puncture_mcs4_p3[1116]; +extern const uint8_t gsm0503_puncture_mcs5_p1[1404]; +extern const uint8_t gsm0503_puncture_mcs5_p2[1404]; +extern const uint8_t gsm0503_puncture_mcs6_p1[1836]; +extern const uint8_t gsm0503_puncture_mcs6_p2[1836]; +extern const uint8_t gsm0503_puncture_mcs7_dl_hdr[135]; +extern const uint8_t gsm0503_puncture_mcs7_ul_hdr[162]; +extern const uint8_t gsm0503_puncture_mcs7_p1[1404]; +extern const uint8_t gsm0503_puncture_mcs7_p2[1404]; +extern const uint8_t gsm0503_puncture_mcs7_p3[1404]; +extern const uint8_t gsm0503_puncture_mcs8_p1[1692]; +extern const uint8_t gsm0503_puncture_mcs8_p2[1692]; +extern const uint8_t gsm0503_puncture_mcs8_p3[1692]; +extern const uint8_t gsm0503_puncture_mcs9_p1[1836]; +extern const uint8_t gsm0503_puncture_mcs9_p2[1836]; +extern const uint8_t gsm0503_puncture_mcs9_p3[1836]; +extern const uint16_t gsm0503_interleave_mcs5[1248]; +extern const uint8_t gsm0503_gsm_fr_map[76]; +extern const uint8_t gsm0503_gsm_efr_protected_bits[65]; +extern const ubit_t gsm0503_afs_ic_ubit[4][8]; +extern const sbit_t gsm0503_afs_ic_sbit[4][8]; +extern const ubit_t gsm0503_ahs_ic_ubit[4][4]; +extern const sbit_t gsm0503_ahs_ic_sbit[4][4]; +extern const uint8_t gsm0503_tch_hr_interleaving[228][2]; +extern const ubit_t gsm0503_mcs5_usf_precode_table[8][36]; |