1*638691a0SAndroid Build Coastguard Worker /* Initialize a RS codec
2*638691a0SAndroid Build Coastguard Worker *
3*638691a0SAndroid Build Coastguard Worker * Copyright 2002 Phil Karn, KA9Q
4*638691a0SAndroid Build Coastguard Worker * May be used under the terms of the GNU Lesser General Public License (LGPL)
5*638691a0SAndroid Build Coastguard Worker */
6*638691a0SAndroid Build Coastguard Worker #include <stdlib.h>
7*638691a0SAndroid Build Coastguard Worker #include "fec.h"
8*638691a0SAndroid Build Coastguard Worker
9*638691a0SAndroid Build Coastguard Worker #if !defined(NULL)
10*638691a0SAndroid Build Coastguard Worker #define NULL ((void *)0)
11*638691a0SAndroid Build Coastguard Worker #endif
12*638691a0SAndroid Build Coastguard Worker
13*638691a0SAndroid Build Coastguard Worker #include "rs-common.h"
14*638691a0SAndroid Build Coastguard Worker
free_rs(void * p)15*638691a0SAndroid Build Coastguard Worker void free_rs(void *p){
16*638691a0SAndroid Build Coastguard Worker struct rs *rs = (struct rs *)p;
17*638691a0SAndroid Build Coastguard Worker
18*638691a0SAndroid Build Coastguard Worker free(rs->alpha_to);
19*638691a0SAndroid Build Coastguard Worker free(rs->index_of);
20*638691a0SAndroid Build Coastguard Worker free(rs->genpoly);
21*638691a0SAndroid Build Coastguard Worker free(rs);
22*638691a0SAndroid Build Coastguard Worker }
23*638691a0SAndroid Build Coastguard Worker
24*638691a0SAndroid Build Coastguard Worker /* Initialize a Reed-Solomon codec
25*638691a0SAndroid Build Coastguard Worker * symsize = symbol size, bits
26*638691a0SAndroid Build Coastguard Worker * gfpoly = Field generator polynomial coefficients
27*638691a0SAndroid Build Coastguard Worker * fcr = first root of RS code generator polynomial, index form
28*638691a0SAndroid Build Coastguard Worker * prim = primitive element to generate polynomial roots
29*638691a0SAndroid Build Coastguard Worker * nroots = RS code generator polynomial degree (number of roots)
30*638691a0SAndroid Build Coastguard Worker * pad = padding bytes at front of shortened block
31*638691a0SAndroid Build Coastguard Worker */
init_rs_common(int symsize,int gfpoly,int fcr,int prim,int nroots,int pad)32*638691a0SAndroid Build Coastguard Worker void *init_rs_common(int symsize,int gfpoly,int fcr,int prim,
33*638691a0SAndroid Build Coastguard Worker int nroots,int pad){
34*638691a0SAndroid Build Coastguard Worker struct rs *rs;
35*638691a0SAndroid Build Coastguard Worker
36*638691a0SAndroid Build Coastguard Worker #include "init_rs.h"
37*638691a0SAndroid Build Coastguard Worker
38*638691a0SAndroid Build Coastguard Worker return rs;
39*638691a0SAndroid Build Coastguard Worker }
40