14e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi/* Initialize a RS codec
24e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi *
34e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * Copyright 2002 Phil Karn, KA9Q
44e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * May be used under the terms of the GNU Lesser General Public License (LGPL)
54e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi */
64e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi#include <stdlib.h>
74e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi
84e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi#include "char.h"
94e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi#include "rs-common.h"
104e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi
114e213d510f437769f8a28578dd4f786fb7d16c4Bill Yivoid free_rs_char(void *p){
124e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi  struct rs *rs = (struct rs *)p;
134e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi
144e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi  free(rs->alpha_to);
154e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi  free(rs->index_of);
164e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi  free(rs->genpoly);
174e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi  free(rs);
184e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi}
194e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi
204e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi/* Initialize a Reed-Solomon codec
214e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * symsize = symbol size, bits
224e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * gfpoly = Field generator polynomial coefficients
234e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * fcr = first root of RS code generator polynomial, index form
244e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * prim = primitive element to generate polynomial roots
254e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * nroots = RS code generator polynomial degree (number of roots)
264e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * pad = padding bytes at front of shortened block
274e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi */
284e213d510f437769f8a28578dd4f786fb7d16c4Bill Yivoid *init_rs_char(int symsize,int gfpoly,int fcr,int prim,
294e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi	int nroots,int pad){
304e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi  struct rs *rs;
314e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi
324e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi#include "init_rs.h"
334e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi
344e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi  return rs;
354e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi}
36