diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/coding/gsm0503_coding.c | 103 | ||||
-rw-r--r-- | src/coding/gsm0503_mapping.c | 6 |
2 files changed, 54 insertions, 55 deletions
diff --git a/src/coding/gsm0503_coding.c b/src/coding/gsm0503_coding.c index baf1ce15..d7524542 100644 --- a/src/coding/gsm0503_coding.c +++ b/src/coding/gsm0503_coding.c @@ -490,7 +490,7 @@ static int osmo_conv_decode_ber(const struct osmo_conv_code *code, return res; } -static int _xcch_decode_cB(uint8_t *l2_data, sbit_t *cB, +static int _xcch_decode_cB(uint8_t *l2_data, const sbit_t *cB, int *n_errors, int *n_bits_total) { ubit_t conv[224]; @@ -509,7 +509,7 @@ static int _xcch_decode_cB(uint8_t *l2_data, sbit_t *cB, return 0; } -static int _xcch_encode_cB(ubit_t *cB, uint8_t *l2_data) +static int _xcch_encode_cB(ubit_t *cB, const uint8_t *l2_data) { ubit_t conv[224]; @@ -525,7 +525,7 @@ static int _xcch_encode_cB(ubit_t *cB, uint8_t *l2_data) /* * GSM xCCH block transcoding */ -int gsm0503_xcch_decode(uint8_t *l2_data, sbit_t *bursts, +int gsm0503_xcch_decode(uint8_t *l2_data, const sbit_t *bursts, int *n_errors, int *n_bits_total) { sbit_t iB[456], cB[456]; @@ -539,7 +539,7 @@ int gsm0503_xcch_decode(uint8_t *l2_data, sbit_t *bursts, return _xcch_decode_cB(l2_data, cB, n_errors, n_bits_total); } -int gsm0503_xcch_encode(ubit_t *bursts, uint8_t *l2_data) +int gsm0503_xcch_encode(ubit_t *bursts, const uint8_t *l2_data) { ubit_t iB[456], cB[456], hl = 1, hn = 1; int i; @@ -748,7 +748,7 @@ static int egprs_parse_ul_cps(struct egprs_cps *cps, * 3. CRC check * 4. Block combining (MCS-7,8,9 only) */ -static int egprs_decode_data(uint8_t *l2_data, sbit_t *c, +static int egprs_decode_data(uint8_t *l2_data, const sbit_t *c, int mcs, int p, int blk, int *n_errors, int *n_bits_total) { ubit_t u[EGPRS_DATA_U_MAX]; @@ -809,7 +809,7 @@ static int egprs_decode_data(uint8_t *l2_data, sbit_t *c, * 3. Burst unmapping and deinterleaving * 4. Data section decoding */ -int gsm0503_pdtch_egprs_decode(uint8_t *l2_data, sbit_t *bursts, uint16_t nbits, +int gsm0503_pdtch_egprs_decode(uint8_t *l2_data, const sbit_t *bursts, uint16_t nbits, uint8_t *usf_p, int *n_errors, int *n_bits_total) { sbit_t dc[EGPRS_DATA_DC_MAX]; @@ -879,7 +879,7 @@ int gsm0503_pdtch_egprs_decode(uint8_t *l2_data, sbit_t *bursts, uint16_t nbits, * GSM PDTCH block transcoding */ -int gsm0503_pdtch_decode(uint8_t *l2_data, sbit_t *bursts, uint8_t *usf_p, +int gsm0503_pdtch_decode(uint8_t *l2_data, const sbit_t *bursts, uint8_t *usf_p, int *n_errors, int *n_bits_total) { sbit_t iB[456], cB[676], hl_hn[8]; @@ -1031,7 +1031,7 @@ int gsm0503_pdtch_decode(uint8_t *l2_data, sbit_t *bursts, uint8_t *usf_p, /* * EGPRS PDTCH UL block encoding */ -static int egprs_type3_map(ubit_t *bursts, ubit_t *hc, ubit_t *dc, int usf) +static int egprs_type3_map(ubit_t *bursts, const ubit_t *hc, const ubit_t *dc, int usf) { int i; ubit_t iB[456]; @@ -1047,7 +1047,7 @@ static int egprs_type3_map(ubit_t *bursts, ubit_t *hc, ubit_t *dc, int usf) return 0; } -static int egprs_type2_map(ubit_t *bursts, ubit_t *hc, ubit_t *dc, int usf) +static int egprs_type2_map(ubit_t *bursts, const ubit_t *hc, const ubit_t *dc, int usf) { int i; const ubit_t *up; @@ -1065,8 +1065,8 @@ static int egprs_type2_map(ubit_t *bursts, ubit_t *hc, ubit_t *dc, int usf) return 0; } -static int egprs_type1_map(ubit_t *bursts, ubit_t *hc, - ubit_t *c1, ubit_t *c2, int usf, int mcs) +static int egprs_type1_map(ubit_t *bursts, const ubit_t *hc, + const ubit_t *c1, const ubit_t *c2, int usf, int mcs) { int i; const ubit_t *up; @@ -1088,7 +1088,7 @@ static int egprs_type1_map(ubit_t *bursts, ubit_t *hc, return 0; } -static int egprs_encode_hdr(ubit_t *hc, uint8_t *l2_data, int mcs) +static int egprs_encode_hdr(ubit_t *hc, const uint8_t *l2_data, int mcs) { int i, j; ubit_t upp[EGPRS_HDR_UPP_MAX], C[EGPRS_HDR_C_MAX]; @@ -1122,7 +1122,7 @@ static int egprs_encode_hdr(ubit_t *hc, uint8_t *l2_data, int mcs) return 0; } -static int egprs_encode_data(ubit_t *c, uint8_t *l2_data, +static int egprs_encode_data(ubit_t *c, const uint8_t *l2_data, int mcs, int p, int blk) { int i, j, data_len; @@ -1168,7 +1168,7 @@ static int egprs_encode_data(ubit_t *c, uint8_t *l2_data, * Type 3 - MCS-1,2,3,4 */ static int egprs_parse_dl_cps(struct egprs_cps *cps, - union gprs_rlc_dl_hdr_egprs *hdr, int type) + const union gprs_rlc_dl_hdr_egprs *hdr, int type) { uint8_t bits; @@ -1193,7 +1193,7 @@ static int egprs_parse_dl_cps(struct egprs_cps *cps, * EGPRS DL message encoding */ int gsm0503_pdtch_egprs_encode(ubit_t *bursts, - uint8_t *l2_data, uint8_t l2_len) + const uint8_t *l2_data, uint8_t l2_len) { ubit_t hc[EGPRS_DATA_C_MAX], dc[EGPRS_DATA_DC_MAX]; ubit_t c1[EGPRS_DATA_C1], c2[EGPRS_DATA_C2]; @@ -1282,7 +1282,7 @@ bad_header: return -1; } -int gsm0503_pdtch_encode(ubit_t *bursts, uint8_t *l2_data, uint8_t l2_len) +int gsm0503_pdtch_encode(ubit_t *bursts, const uint8_t *l2_data, uint8_t l2_len) { ubit_t iB[456], cB[676]; const ubit_t *hl_hn; @@ -1367,7 +1367,7 @@ int gsm0503_pdtch_encode(ubit_t *bursts, uint8_t *l2_data, uint8_t l2_len) */ static void tch_fr_reassemble(uint8_t *tch_data, - ubit_t *b_bits, int net_order) + const ubit_t *b_bits, int net_order) { int i, j, k, l, o; @@ -1399,7 +1399,7 @@ static void tch_fr_reassemble(uint8_t *tch_data, } static void tch_fr_disassemble(ubit_t *b_bits, - uint8_t *tch_data, int net_order) + const uint8_t *tch_data, int net_order) { int i, j, k, l, o; @@ -1426,7 +1426,7 @@ static void tch_fr_disassemble(ubit_t *b_bits, } } -static void tch_hr_reassemble(uint8_t *tch_data, ubit_t *b_bits) +static void tch_hr_reassemble(uint8_t *tch_data, const ubit_t *b_bits) { int i, j; @@ -1437,7 +1437,7 @@ static void tch_hr_reassemble(uint8_t *tch_data, ubit_t *b_bits) tch_data[j >> 3] |= (b_bits[i] << (7 - (j & 7))); } -static void tch_hr_disassemble(ubit_t *b_bits, uint8_t *tch_data) +static void tch_hr_disassemble(ubit_t *b_bits, const uint8_t *tch_data) { int i, j; @@ -1445,7 +1445,7 @@ static void tch_hr_disassemble(ubit_t *b_bits, uint8_t *tch_data) b_bits[i] = (tch_data[j >> 3] >> (7 - (j & 7))) & 1; } -static void tch_efr_reassemble(uint8_t *tch_data, ubit_t *b_bits) +static void tch_efr_reassemble(uint8_t *tch_data, const ubit_t *b_bits) { int i, j; @@ -1456,7 +1456,7 @@ static void tch_efr_reassemble(uint8_t *tch_data, ubit_t *b_bits) tch_data[j >> 3] |= (b_bits[i] << (7 - (j & 7))); } -static void tch_efr_disassemble(ubit_t *b_bits, uint8_t *tch_data) +static void tch_efr_disassemble(ubit_t *b_bits, const uint8_t *tch_data) { int i, j; @@ -1464,7 +1464,7 @@ static void tch_efr_disassemble(ubit_t *b_bits, uint8_t *tch_data) b_bits[i] = (tch_data[j >> 3] >> (7 - (j & 7))) & 1; } -static void tch_amr_reassemble(uint8_t *tch_data, ubit_t *d_bits, int len) +static void tch_amr_reassemble(uint8_t *tch_data, const ubit_t *d_bits, int len) { int i, j; @@ -1474,7 +1474,7 @@ static void tch_amr_reassemble(uint8_t *tch_data, ubit_t *d_bits, int len) tch_data[j >> 3] |= (d_bits[i] << (7 - (j & 7))); } -static void tch_amr_disassemble(ubit_t *d_bits, uint8_t *tch_data, int len) +static void tch_amr_disassemble(ubit_t *d_bits, const uint8_t *tch_data, int len) { int i, j; @@ -1482,7 +1482,7 @@ static void tch_amr_disassemble(ubit_t *d_bits, uint8_t *tch_data, int len) d_bits[i] = (tch_data[j >> 3] >> (7 - (j & 7))) & 1; } -static void tch_fr_d_to_b(ubit_t *b_bits, ubit_t *d_bits) +static void tch_fr_d_to_b(ubit_t *b_bits, const ubit_t *d_bits) { int i; @@ -1490,7 +1490,7 @@ static void tch_fr_d_to_b(ubit_t *b_bits, ubit_t *d_bits) b_bits[gsm610_bitorder[i]] = d_bits[i]; } -static void tch_fr_b_to_d(ubit_t *d_bits, ubit_t *b_bits) +static void tch_fr_b_to_d(ubit_t *d_bits, const ubit_t *b_bits) { int i; @@ -1498,7 +1498,7 @@ static void tch_fr_b_to_d(ubit_t *d_bits, ubit_t *b_bits) d_bits[i] = b_bits[gsm610_bitorder[i]]; } -static void tch_hr_d_to_b(ubit_t *b_bits, ubit_t *d_bits) +static void tch_hr_d_to_b(ubit_t *b_bits, const ubit_t *d_bits) { int i; @@ -1513,7 +1513,7 @@ static void tch_hr_d_to_b(ubit_t *b_bits, ubit_t *d_bits) b_bits[map[i]] = d_bits[i]; } -static void tch_hr_b_to_d(ubit_t *d_bits, ubit_t *b_bits) +static void tch_hr_b_to_d(ubit_t *d_bits, const ubit_t *b_bits) { int i; const uint16_t *map; @@ -1527,7 +1527,7 @@ static void tch_hr_b_to_d(ubit_t *d_bits, ubit_t *b_bits) d_bits[i] = b_bits[map[i]]; } -static void tch_efr_d_to_w(ubit_t *b_bits, ubit_t *d_bits) +static void tch_efr_d_to_w(ubit_t *b_bits, const ubit_t *d_bits) { int i; @@ -1535,7 +1535,7 @@ static void tch_efr_d_to_w(ubit_t *b_bits, ubit_t *d_bits) b_bits[gsm660_bitorder[i]] = d_bits[i]; } -static void tch_efr_w_to_d(ubit_t *d_bits, ubit_t *b_bits) +static void tch_efr_w_to_d(ubit_t *d_bits, const ubit_t *b_bits) { int i; @@ -1543,7 +1543,7 @@ static void tch_efr_w_to_d(ubit_t *d_bits, ubit_t *b_bits) d_bits[i] = b_bits[gsm660_bitorder[i]]; } -static void tch_efr_protected(ubit_t *s_bits, ubit_t *b_bits) +static void tch_efr_protected(const ubit_t *s_bits, ubit_t *b_bits) { int i; @@ -1551,7 +1551,7 @@ static void tch_efr_protected(ubit_t *s_bits, ubit_t *b_bits) b_bits[i] = s_bits[gsm0503_gsm_efr_protected_bits[i] - 1]; } -static void tch_fr_unreorder(ubit_t *d, ubit_t *p, ubit_t *u) +static void tch_fr_unreorder(ubit_t *d, ubit_t *p, const ubit_t *u) { int i; @@ -1564,7 +1564,7 @@ static void tch_fr_unreorder(ubit_t *d, ubit_t *p, ubit_t *u) p[i] = u[91 + i]; } -static void tch_fr_reorder(ubit_t *u, ubit_t *d, ubit_t *p) +static void tch_fr_reorder(ubit_t *u, const ubit_t *d, const ubit_t *p) { int i; @@ -1577,19 +1577,19 @@ static void tch_fr_reorder(ubit_t *u, ubit_t *d, ubit_t *p) u[91 + i] = p[i]; } -static void tch_hr_unreorder(ubit_t *d, ubit_t *p, ubit_t *u) +static void tch_hr_unreorder(ubit_t *d, ubit_t *p, const ubit_t *u) { memcpy(d, u, 95); memcpy(p, u + 95, 3); } -static void tch_hr_reorder(ubit_t *u, ubit_t *d, ubit_t *p) +static void tch_hr_reorder(ubit_t *u, const ubit_t *d, const ubit_t *p) { memcpy(u, d, 95); memcpy(u + 95, p, 3); } -static void tch_efr_reorder(ubit_t *w, ubit_t *s, ubit_t *p) +static void tch_efr_reorder(ubit_t *w, const ubit_t *s, const ubit_t *p) { memcpy(w, s, 71); w[71] = w[72] = s[69]; @@ -1603,7 +1603,7 @@ static void tch_efr_reorder(ubit_t *w, ubit_t *s, ubit_t *p) memcpy(w + 252, p, 8); } -static void tch_efr_unreorder(ubit_t *s, ubit_t *p, ubit_t *w) +static void tch_efr_unreorder(ubit_t *s, ubit_t *p, const ubit_t *w) { int sum; @@ -1623,22 +1623,21 @@ static void tch_efr_unreorder(ubit_t *s, ubit_t *p, ubit_t *w) memcpy(p, w + 252, 8); } -static void tch_amr_merge(ubit_t *u, ubit_t *d, ubit_t *p, int len, int prot) +static void tch_amr_merge(ubit_t *u, const ubit_t *d, const ubit_t *p, int len, int prot) { memcpy(u, d, prot); memcpy(u + prot, p, 6); memcpy(u + prot + 6, d + prot, len - prot); } -static void tch_amr_unmerge(ubit_t *d, ubit_t *p, - ubit_t *u, int len, int prot) +static void tch_amr_unmerge(ubit_t *d, ubit_t *p, const ubit_t *u, int len, int prot) { memcpy(d, u, prot); memcpy(p, u + prot, 6); memcpy(d + prot, u + prot + 6, len - prot); } -int gsm0503_tch_fr_decode(uint8_t *tch_data, sbit_t *bursts, +int gsm0503_tch_fr_decode(uint8_t *tch_data, const sbit_t *bursts, int net_order, int efr, int *n_errors, int *n_bits_total) { sbit_t iB[912], cB[456], h; @@ -1703,7 +1702,7 @@ int gsm0503_tch_fr_decode(uint8_t *tch_data, sbit_t *bursts, return len; } -int gsm0503_tch_fr_encode(ubit_t *bursts, uint8_t *tch_data, +int gsm0503_tch_fr_encode(ubit_t *bursts, const uint8_t *tch_data, int len, int net_order) { ubit_t iB[912], cB[456], h; @@ -1761,7 +1760,7 @@ coding_efr_fr: return 0; } -int gsm0503_tch_hr_decode(uint8_t *tch_data, sbit_t *bursts, int odd, +int gsm0503_tch_hr_decode(uint8_t *tch_data, const sbit_t *bursts, int odd, int *n_errors, int *n_bits_total) { sbit_t iB[912], cB[456], h; @@ -1831,7 +1830,7 @@ int gsm0503_tch_hr_decode(uint8_t *tch_data, sbit_t *bursts, int odd, return 15; } -int gsm0503_tch_hr_encode(ubit_t *bursts, uint8_t *tch_data, int len) +int gsm0503_tch_hr_encode(ubit_t *bursts, const uint8_t *tch_data, int len) { ubit_t iB[912], cB[456], h; ubit_t conv[98], b[112], d[112], p[3]; @@ -1886,7 +1885,7 @@ int gsm0503_tch_hr_encode(ubit_t *bursts, uint8_t *tch_data, int len) return 0; } -int gsm0503_tch_afs_decode(uint8_t *tch_data, sbit_t *bursts, +int gsm0503_tch_afs_decode(uint8_t *tch_data, const sbit_t *bursts, int codec_mode_req, uint8_t *codec, int codecs, uint8_t *ft, uint8_t *cmr, int *n_errors, int *n_bits_total) { @@ -2081,7 +2080,7 @@ int gsm0503_tch_afs_decode(uint8_t *tch_data, sbit_t *bursts, return len; } -int gsm0503_tch_afs_encode(ubit_t *bursts, uint8_t *tch_data, int len, +int gsm0503_tch_afs_encode(ubit_t *bursts, const uint8_t *tch_data, int len, int codec_mode_req, uint8_t *codec, int codecs, uint8_t ft, uint8_t cmr) { @@ -2241,7 +2240,7 @@ invalid_length: return -1; } -int gsm0503_tch_ahs_decode(uint8_t *tch_data, sbit_t *bursts, int odd, +int gsm0503_tch_ahs_decode(uint8_t *tch_data, const sbit_t *bursts, int odd, int codec_mode_req, uint8_t *codec, int codecs, uint8_t *ft, uint8_t *cmr, int *n_errors, int *n_bits_total) { @@ -2444,7 +2443,7 @@ int gsm0503_tch_ahs_decode(uint8_t *tch_data, sbit_t *bursts, int odd, return len; } -int gsm0503_tch_ahs_encode(ubit_t *bursts, uint8_t *tch_data, int len, +int gsm0503_tch_ahs_encode(ubit_t *bursts, const uint8_t *tch_data, int len, int codec_mode_req, uint8_t *codec, int codecs, uint8_t ft, uint8_t cmr) { @@ -2618,7 +2617,7 @@ static int rach_apply_bsic(ubit_t *d, uint8_t bsic) return 0; } -int gsm0503_rach_decode(uint8_t *ra, sbit_t *burst, uint8_t bsic) +int gsm0503_rach_decode(uint8_t *ra, const sbit_t *burst, uint8_t bsic) { ubit_t conv[14]; int rv; @@ -2636,7 +2635,7 @@ int gsm0503_rach_decode(uint8_t *ra, sbit_t *burst, uint8_t bsic) return 0; } -int gsm0503_rach_encode(ubit_t *burst, uint8_t *ra, uint8_t bsic) +int gsm0503_rach_encode(ubit_t *burst, const uint8_t *ra, uint8_t bsic) { ubit_t conv[14]; @@ -2654,7 +2653,7 @@ int gsm0503_rach_encode(ubit_t *burst, uint8_t *ra, uint8_t bsic) /* * GSM SCH transcoding */ -int gsm0503_sch_decode(uint8_t *sb_info, sbit_t *burst) +int gsm0503_sch_decode(uint8_t *sb_info, const sbit_t *burst) { ubit_t conv[35]; int rv; @@ -2670,7 +2669,7 @@ int gsm0503_sch_decode(uint8_t *sb_info, sbit_t *burst) return 0; } -int gsm0503_sch_encode(ubit_t *burst, uint8_t *sb_info) +int gsm0503_sch_encode(ubit_t *burst, const uint8_t *sb_info) { ubit_t conv[35]; diff --git a/src/coding/gsm0503_mapping.c b/src/coding/gsm0503_mapping.c index 366eeb45..4dd3076b 100644 --- a/src/coding/gsm0503_mapping.c +++ b/src/coding/gsm0503_mapping.c @@ -38,7 +38,7 @@ void gsm0503_xcch_burst_unmap(sbit_t *iB, const sbit_t *eB, *hn = eB[58]; } -void gsm0503_xcch_burst_map(ubit_t *iB, ubit_t *eB, const ubit_t *hl, +void gsm0503_xcch_burst_map(const ubit_t *iB, ubit_t *eB, const ubit_t *hl, const ubit_t *hn) { memcpy(eB, iB, 57); @@ -50,7 +50,7 @@ void gsm0503_xcch_burst_map(ubit_t *iB, ubit_t *eB, const ubit_t *hl, eB[58] = *hn; } -void gsm0503_tch_burst_unmap(sbit_t *iB, sbit_t *eB, sbit_t *h, int odd) +void gsm0503_tch_burst_unmap(sbit_t *iB, const sbit_t *eB, sbit_t *h, int odd) { int i; @@ -70,7 +70,7 @@ void gsm0503_tch_burst_unmap(sbit_t *iB, sbit_t *eB, sbit_t *h, int odd) } } -void gsm0503_tch_burst_map(ubit_t *iB, ubit_t *eB, const ubit_t *h, int odd) +void gsm0503_tch_burst_map(const ubit_t *iB, ubit_t *eB, const ubit_t *h, int odd) { int i; |