osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Files | |
file | interleave.h |
Osmocom GMR-1 interleaving header. | |
file | interleave.c |
Osmocom GMR-1 interleaving implementation. | |
Data Structures | |
struct | gmr1_interleaver |
GMR1 inter-burst (de)interleaver state. More... | |
Functions | |
void | gmr1_interleave_intra (void *out, const void *in, int N) |
GMR-1 intra burst inteleaver. More... | |
void | gmr1_deinterleave_intra (void *out, const void *in, int N) |
GMR-1 intra burst de-interleaver. More... | |
int | gmr1_interleaver_init (struct gmr1_interleaver *il, int N, int K) |
GMR-1 inter burst interleaver initializer. More... | |
void | gmr1_interleaver_fini (struct gmr1_interleaver *il) |
GMR-1 inter burst interleaver cleanup. More... | |
void | gmr1_interleave_inter (struct gmr1_interleaver *il, void *bits_epp, void *bits_ep) |
GMR-1 inter burst interleaver. More... | |
void | gmr1_deinterleave_inter (struct gmr1_interleaver *il, void *bits_ep, void *bits_epp) |
GMR-1 inter burst de-interleaver. More... | |
void gmr1_deinterleave_inter | ( | struct gmr1_interleaver * | il, |
void * | bits_ep, | ||
void * | bits_epp | ||
) |
GMR-1 inter burst de-interleaver.
[in] | il | The interleaver object |
[out] | bits_ep | N bits output from de-interleaver |
[in] | bits_epp | N bits input to de-interleaver |
bits_ep and bits_epp can be equal for inplace processing
References gmr1_interleaver::bits_cpp, gmr1_interleaver::K, gmr1_interleaver::N, and gmr1_interleaver::n.
void gmr1_deinterleave_intra | ( | void * | out, |
const void * | in, | ||
int | N | ||
) |
GMR-1 intra burst de-interleaver.
[out] | out | Deinterleaved bit array to write to |
[in] | in | Interleaved bit array to read from |
[in] | N | Dimension of the interleaving matrix |
Both arrays need to have a length of (8*N). This routine works for any type that has the same size as uint8_t like sbit_t or ubit_t.
Referenced by gmr1_bcch_decode(), gmr1_ccch_decode(), gmr1_facch3_decode(), gmr1_facch9_decode(), gmr1_rach_decode(), and gmr1_xch_dc12_decode().
void gmr1_interleave_inter | ( | struct gmr1_interleaver * | il, |
void * | bits_epp, | ||
void * | bits_ep | ||
) |
GMR-1 inter burst interleaver.
[in] | il | The interleaver object |
[out] | bits_epp | N bits output of interleaver |
[in] | bits_ep | N bits input to interleaver |
bits_ep and bits_epp can be equal for inplace processing
References gmr1_interleaver::bits_cpp, gmr1_interleaver::K, gmr1_interleaver::N, and gmr1_interleaver::n.
void gmr1_interleave_intra | ( | void * | out, |
const void * | in, | ||
int | N | ||
) |
GMR-1 intra burst inteleaver.
[out] | out | Interleaved bit array to write to |
[in] | in | Original bit array to read from |
[in] | N | Dimension of the interleaving matrix |
Both arrays need to have a length of (8*N). This routine works for any type that has the same size as uint8_t like sbit_t or ubit_t.
void gmr1_interleaver_fini | ( | struct gmr1_interleaver * | il | ) |
GMR-1 inter burst interleaver cleanup.
[in] | il | The interleaver object to release |
References gmr1_interleaver::bits_cpp.
int gmr1_interleaver_init | ( | struct gmr1_interleaver * | il, |
int | N, | ||
int | K | ||
) |
GMR-1 inter burst interleaver initializer.
[in] | il | The interleaver object to init |
[in] | N | The interleaving depth |
[in] | K | The interleaving width |
References gmr1_interleaver::bits_cpp, gmr1_interleaver::K, and gmr1_interleaver::N.