--- /dev/null
+# jerasure plugin
+libec_jerasure_la_SOURCES = \
+ osd/ErasureCodePluginJerasure/cauchy.c \
+ osd/ErasureCodePluginJerasure/galois.c \
+ osd/ErasureCodePluginJerasure/jerasure.c \
+ osd/ErasureCodePluginJerasure/liberation.c \
+ osd/ErasureCodePluginJerasure/reed_sol.c
+noinst_HEADERS += \
+ osd/ErasureCodePluginJerasure/cauchy.h \
+ osd/ErasureCodePluginJerasure/galois.h \
+ osd/ErasureCodePluginJerasure/jerasure.h \
+ osd/ErasureCodePluginJerasure/liberation.h \
+ osd/ErasureCodePluginJerasure/reed_sol.h
+libec_jerasure_la_CFLAGS = ${AM_CFLAGS}
+libec_jerasure_la_CXXFLAGS= ${AM_CXXFLAGS}
+libec_jerasure_la_LIBADD = $(PTHREAD_LIBS) $(EXTRALIBS)
+libec_jerasure_la_LDFLAGS = ${AM_LDFLAGS} -version-info 1:0:0
+
+erasure_codelib_LTLIBRARIES += libec_jerasure.la
void galois_invert_binary_matrix(int *mat, int *inv, int rows)
{
- int cols, i, j, k;
+ int cols, i, j;
int tmp;
cols = rows;
int galois_shift_inverse(int y, int w)
{
- int mat[1024], mat2[32];
- int inv[1024], inv2[32];
- int ind, i, j, k, prod;
+ int mat2[32];
+ int inv2[32];
+ int i;
for (i = 0; i < w; i++) {
mat2[i] = y;
char *r2, /* If r2 != NULL, products go here */
int add)
{
- unsigned int *ur1, *ur2, *cp, *ur2top;
- unsigned long *lp2, *lptop;
+ unsigned int *ur1, *ur2;
int i, j, a, b, accumulator, i8, j8, k;
int acache[4];
ur1 = (unsigned int *) region;
ur2 = (r2 == NULL) ? ur1 : (unsigned int *) r2;
nbytes /= sizeof(int);
- ur2top = ur2 + nbytes;
if (galois_split_w8[0]== NULL) {
if (galois_create_split_w8_tables(8) < 0) {
int jerasure_matrix_decode(int k, int m, int w, int *matrix, int row_k_ones, int *erasures,
char **data_ptrs, char **coding_ptrs, int size)
{
- int i, j, edd, lastdrive;
+ int i, edd, lastdrive;
int *tmpids;
int *erased, *decoding_matrix, *dm_ids;
void jerasure_matrix_encode(int k, int m, int w, int *matrix,
char **data_ptrs, char **coding_ptrs, int size)
{
- int *init;
- int i, j;
+ int i;
if (w != 8 && w != 16 && w != 32) {
fprintf(stderr, "ERROR: jerasure_matrix_encode() and w is not 8, 16 or 32\n");
int jerasure_bitmatrix_decode(int k, int m, int w, int *bitmatrix, int row_k_ones, int *erasures,
char **data_ptrs, char **coding_ptrs, int size, int packetsize)
{
- int i, j;
+ int i;
int *erased;
int *decoding_matrix;
int *dm_ids;
{
int ddf, cdf;
int *erased;
- char **ptrs;
int i, j, x;
ddf = 0;
int ***jerasure_generate_schedule_cache(int k, int m, int w, int *bitmatrix, int smart)
{
- int i, tdone;
- char **ptrs;
- int **schedule;
int ***scache;
int erasures[3];
int e1, e2;
int *jerasure_matrix_multiply(int *m1, int *m2, int r1, int c1, int r2, int c2, int w)
{
- int *product, i, j, k, l;
+ int *product, i, j, k;
product = (int *) malloc(sizeof(int)*r1*c2);
for (i = 0; i < r1*c2; i++) product[i] = 0;
char **data_ptrs, char **coding_ptrs, int size, int packetsize)
{
char **ptr_copy;
- int i, j, tdone;
+ int i, tdone;
ptr_copy = talloc(char *, (k+m));
for (i = 0; i < k; i++) ptr_copy[i] = data_ptrs[i];
void jerasure_bitmatrix_encode(int k, int m, int w, int *bitmatrix,
char **data_ptrs, char **coding_ptrs, int size, int packetsize)
{
- int i, j, x, y, sptr, pstarted, index;
- char *dptr, *pptr;
+ int i;
if (packetsize%sizeof(long) != 0) {
fprintf(stderr, "jerasure_bitmatrix_encode - packetsize(%d) %c sizeof(long) != 0\n", packetsize, '%');