From 3262f820b5cfb4c76448f605c9804f3e5ca1023d Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Fri, 23 Sep 2016 01:48:59 +0700 Subject: 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 --- include/osmocom/coding/gsm0503_tables.h | 50 +++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 include/osmocom/coding/gsm0503_tables.h (limited to 'include/osmocom/coding/gsm0503_tables.h') 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 +#include + +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]; -- cgit v1.2.3