You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
785 B
33 lines
785 B
/* Stuff specific to the CCSDS (255,223) RS codec |
|
* (255,223) code over GF(256). Note: the conventional basis is still |
|
* used; the dual-basis mappings are performed in [en|de]code_rs_ccsds.c |
|
* |
|
* Copyright 2003 Phil Karn, KA9Q |
|
* May be used under the terms of the GNU Lesser General Public License (LGPL) |
|
*/ |
|
typedef unsigned char data_t; |
|
|
|
static inline int mod255(int x){ |
|
while (x >= 255) { |
|
x -= 255; |
|
x = (x >> 8) + (x & 255); |
|
} |
|
return x; |
|
} |
|
#define MODNN(x) mod255(x) |
|
|
|
extern data_t CCSDS_alpha_to[]; |
|
extern data_t CCSDS_index_of[]; |
|
extern data_t CCSDS_poly[]; |
|
|
|
#define MM 8 |
|
#define NN 255 |
|
#define ALPHA_TO CCSDS_alpha_to |
|
#define INDEX_OF CCSDS_index_of |
|
#define GENPOLY CCSDS_poly |
|
#define NROOTS 32 |
|
#define FCR 112 |
|
#define PRIM 11 |
|
#define IPRIM 116 |
|
#define PAD pad |
|
|
|
|