FreeCalypso > hg > themwi-system-sw
view libutil/tfo_msg_enc.c @ 201:d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 02 Apr 2023 18:01:34 -0800 |
parents | 05d01e810217 |
children |
line wrap: on
line source
/* * The function implemented in this module encodes a GSM 08.62 Extension_Block. */ #include <stdint.h> #include "osmo_bits.h" /* * EFR TRAU parity * * g(x) = x^3 + x^1 + 1 */ static const struct osmo_crc8gen_code gsm0860_efr_crc3 = { .bits = 3, .poly = 0x3, .init = 0x0, .remainder = 0x7, }; void encode_tfo_ext_words(bits_2_10, bits_12_15, ex, out) unsigned bits_2_10, bits_12_15, ex; uint16_t *out; { ubit_t crc_in[13]; uint8_t crc; uint16_to_bits(bits_2_10, crc_in, 9); uint16_to_bits(bits_12_15, crc_in + 9, 4); crc = osmo_crc8gen_compute_bits(&gsm0860_efr_crc3, crc_in, 13); out[0] = bits_2_10; out[1] = (bits_12_15 << 5) | (crc << 2) | ex; }