1*638691a0SAndroid Build Coastguard Worker /* Stuff specific to the CCSDS (255,223) RS codec 2*638691a0SAndroid Build Coastguard Worker * (255,223) code over GF(256). Note: the conventional basis is still 3*638691a0SAndroid Build Coastguard Worker * used; the dual-basis mappings are performed in [en|de]code_rs_ccsds.c 4*638691a0SAndroid Build Coastguard Worker * 5*638691a0SAndroid Build Coastguard Worker * Copyright 2003 Phil Karn, KA9Q 6*638691a0SAndroid Build Coastguard Worker * May be used under the terms of the GNU Lesser General Public License (LGPL) 7*638691a0SAndroid Build Coastguard Worker */ 8*638691a0SAndroid Build Coastguard Worker typedef unsigned char data_t; 9*638691a0SAndroid Build Coastguard Worker mod255(int x)10*638691a0SAndroid Build Coastguard Workerstatic inline int mod255(int x){ 11*638691a0SAndroid Build Coastguard Worker while (x >= 255) { 12*638691a0SAndroid Build Coastguard Worker x -= 255; 13*638691a0SAndroid Build Coastguard Worker x = (x >> 8) + (x & 255); 14*638691a0SAndroid Build Coastguard Worker } 15*638691a0SAndroid Build Coastguard Worker return x; 16*638691a0SAndroid Build Coastguard Worker } 17*638691a0SAndroid Build Coastguard Worker #define MODNN(x) mod255(x) 18*638691a0SAndroid Build Coastguard Worker 19*638691a0SAndroid Build Coastguard Worker extern data_t CCSDS_alpha_to[]; 20*638691a0SAndroid Build Coastguard Worker extern data_t CCSDS_index_of[]; 21*638691a0SAndroid Build Coastguard Worker extern data_t CCSDS_poly[]; 22*638691a0SAndroid Build Coastguard Worker 23*638691a0SAndroid Build Coastguard Worker #define MM 8 24*638691a0SAndroid Build Coastguard Worker #define NN 255 25*638691a0SAndroid Build Coastguard Worker #define ALPHA_TO CCSDS_alpha_to 26*638691a0SAndroid Build Coastguard Worker #define INDEX_OF CCSDS_index_of 27*638691a0SAndroid Build Coastguard Worker #define GENPOLY CCSDS_poly 28*638691a0SAndroid Build Coastguard Worker #define NROOTS 32 29*638691a0SAndroid Build Coastguard Worker #define FCR 112 30*638691a0SAndroid Build Coastguard Worker #define PRIM 11 31*638691a0SAndroid Build Coastguard Worker #define IPRIM 116 32*638691a0SAndroid Build Coastguard Worker #define PAD pad 33*638691a0SAndroid Build Coastguard Worker 34