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