blob: d251217b949c3950c14df9eaca5d7cfe3f221b54 [file] [log] [blame]
/*============================================================================*/
/* eCall ANSI C fixed-point reference source code */
/* */
/* File: ecall_fec.h */
/* Version: 8.6.0 (Rel8) / 9.4.0 (Rel9) */
/* Date: 2011-02-08 */
/* Description: Turbo encoder and decoder (header file) */
/*----------------------------------------------------------------------------*/
#ifndef ECALL_FEC_H_
#define ECALL_FEC_H_
#include "ecall_defines.h"
#include "ecall_rom.h"
/*============================================================================*/
/* Encoder functions */
/*----------------------------------------------------------------------------*/
void FecEncode(Ord1*);
void AttachCrc(const Ord1*, Ord1*);
void Scramble(const Ord1*, Ord1*);
void EncodeTwo(Ord1*);
void EncodeOne(Ord1*, Int16);
/*============================================================================*/
/* Decoder functions */
/*----------------------------------------------------------------------------*/
Bool FecDecode(const IntLLR*, Int16, Ord1*);
void UpdateBuffer(IntLLR*, const IntLLR*, Int16);
void DecodeBuffer(const IntLLR*, const IntLLR*,
const IntLLR*, const IntLLR*, Ord1*);
Bool DecodeCrc(const Ord1*);
void Interleave(const IntLLR*, IntLLR*);
void Deinterleave(IntLLR*);
void Descramble(Ord1*);
void Bcjr(const IntLLR*, IntLLR*);
IntLLR GammaQ(Int16, Int16, const IntLLR*, const IntLLR*);
IntLLR JacLog(Int32, Int32);
void FecInit(void *addr);
void FecDeinit(void);
#endif