#include <stdio.h>
#include <stdlib.h>
#include "erasurecode.h"
#include "erasurecode_backend.h"
#include "erasurecode_helpers.h"
#include "erasurecode_helpers_ext.h"
Go to the source code of this file.
|
typedef int *(* | cauchy_original_coding_matrix_func) (int, int, int) |
|
typedef int *(* | jerasure_matrix_to_bitmatrix_func) (int, int, int, int *) |
|
typedef int **(* | jerasure_smart_bitmatrix_to_schedule_func) (int, int, int, int *) |
|
typedef void(* | jerasure_bitmatrix_encode_func) (int, int, int, int *, char **, char **, int, int) |
|
typedef int(* | jerasure_bitmatrix_decode_func) (int, int, int, int *, int, int *, char **, char **, int, int) |
|
typedef int *(* | jerasure_erasures_to_erased_func) (int, int, int *) |
|
typedef int(* | jerasure_make_decoding_bitmatrix_func) (int, int, int, int *, int *, int *, int *) |
|
typedef void(* | jerasure_bitmatrix_dotprod_func) (int, int, int *, int *, int, char **, char **, int, int) |
|
typedef void(* | galois_uninit_field_func) (int) |
|
|
static void | free_rs_cauchy_desc (struct jerasure_rs_cauchy_descriptor *jerasure_desc) |
|
static int | jerasure_rs_cauchy_encode (void *desc, char **data, char **parity, int blocksize) |
|
static int | jerasure_rs_cauchy_decode (void *desc, char **data, char **parity, int *missing_idxs, int blocksize) |
|
static int | jerasure_rs_cauchy_reconstruct (void *desc, char **data, char **parity, int *missing_idxs, int destination_idx, int blocksize) |
|
static int | jerasure_rs_cauchy_min_fragments (void *desc, int *missing_idxs, int *fragments_to_exclude, int *fragments_needed) |
|
static void * | jerasure_rs_cauchy_init (struct ec_backend_args *args, void *backend_sohandle) |
|
static int | jerasure_rs_cauchy_element_size (void *desc) |
| Return the element-size, which is the number of bits stored on a given device, per codeword.
|
|
static int | jerasure_rs_cauchy_exit (void *desc) |
|
static bool | jerasure_rs_cauchy_is_compatible_with (uint32_t version) |
|
◆ DEFAULT_W
◆ JERASURE_RS_CAUCHY_LIB_MAJOR
#define JERASURE_RS_CAUCHY_LIB_MAJOR 2 |
◆ JERASURE_RS_CAUCHY_LIB_MINOR
#define JERASURE_RS_CAUCHY_LIB_MINOR 0 |
◆ JERASURE_RS_CAUCHY_LIB_NAME
#define JERASURE_RS_CAUCHY_LIB_NAME "jerasure_rs_cauchy" |
◆ JERASURE_RS_CAUCHY_LIB_REV
#define JERASURE_RS_CAUCHY_LIB_REV 0 |
◆ JERASURE_RS_CAUCHY_LIB_VER_STR
#define JERASURE_RS_CAUCHY_LIB_VER_STR "2.0" |
◆ JERASURE_RS_CAUCHY_SO_NAME
#define JERASURE_RS_CAUCHY_SO_NAME "libJerasure" LIBERASURECODE_SO_SUFFIX ".so.2" |
◆ PYECC_CAUCHY_PACKETSIZE
#define PYECC_CAUCHY_PACKETSIZE sizeof(long) * 128 |
◆ cauchy_original_coding_matrix_func
typedef int *(* cauchy_original_coding_matrix_func) (int, int, int) |
◆ galois_uninit_field_func
typedef void(* galois_uninit_field_func) (int) |
◆ jerasure_bitmatrix_decode_func
typedef int(* jerasure_bitmatrix_decode_func) (int, int, int, int *, int, int *, char **, char **, int, int) |
◆ jerasure_bitmatrix_dotprod_func
typedef void(* jerasure_bitmatrix_dotprod_func) (int, int, int *, int *, int, char **, char **, int, int) |
◆ jerasure_bitmatrix_encode_func
typedef void(* jerasure_bitmatrix_encode_func) (int, int, int, int *, char **, char **, int, int) |
◆ jerasure_erasures_to_erased_func
typedef int *(* jerasure_erasures_to_erased_func) (int, int, int *) |
◆ jerasure_make_decoding_bitmatrix_func
typedef int(* jerasure_make_decoding_bitmatrix_func) (int, int, int, int *, int *, int *, int *) |
◆ jerasure_matrix_to_bitmatrix_func
typedef int *(* jerasure_matrix_to_bitmatrix_func) (int, int, int, int *) |
◆ jerasure_smart_bitmatrix_to_schedule_func
typedef int **(* jerasure_smart_bitmatrix_to_schedule_func) (int, int, int, int *) |
◆ free_rs_cauchy_desc()
◆ jerasure_rs_cauchy_decode()
static int jerasure_rs_cauchy_decode |
( |
void * |
desc, |
|
|
char ** |
data, |
|
|
char ** |
parity, |
|
|
int * |
missing_idxs, |
|
|
int |
blocksize |
|
) |
| |
|
static |
◆ jerasure_rs_cauchy_element_size()
static int jerasure_rs_cauchy_element_size |
( |
void * |
desc | ) |
|
|
static |
◆ jerasure_rs_cauchy_encode()
static int jerasure_rs_cauchy_encode |
( |
void * |
desc, |
|
|
char ** |
data, |
|
|
char ** |
parity, |
|
|
int |
blocksize |
|
) |
| |
|
static |
◆ jerasure_rs_cauchy_exit()
static int jerasure_rs_cauchy_exit |
( |
void * |
desc | ) |
|
|
static |
◆ jerasure_rs_cauchy_init()
static void * jerasure_rs_cauchy_init |
( |
struct ec_backend_args * |
args, |
|
|
void * |
backend_sohandle |
|
) |
| |
|
static |
Definition at line 238 of file jerasure_rs_cauchy.c.
References jerasure_rs_cauchy_descriptor::bitmatrix, jerasure_rs_cauchy_descriptor::cauchy_original_coding_matrix, DEFAULT_W, jerasure_rs_cauchy_descriptor::galois_uninit_field, jerasure_rs_cauchy_descriptor::jerasure_bitmatrix_decode, jerasure_rs_cauchy_descriptor::jerasure_bitmatrix_dotprod, jerasure_rs_cauchy_descriptor::jerasure_bitmatrix_encode, jerasure_rs_cauchy_descriptor::jerasure_erasures_to_erased, jerasure_rs_cauchy_descriptor::jerasure_make_decoding_bitmatrix, jerasure_rs_cauchy_descriptor::jerasure_matrix_to_bitmatrix, jerasure_rs_cauchy_descriptor::jerasure_smart_bitmatrix_to_schedule, jerasure_rs_cauchy_descriptor::k, jerasure_rs_cauchy_descriptor::m, jerasure_rs_cauchy_descriptor::matrix, jerasure_rs_cauchy_descriptor::schedule, and jerasure_rs_cauchy_descriptor::w.
◆ jerasure_rs_cauchy_is_compatible_with()
static bool jerasure_rs_cauchy_is_compatible_with |
( |
uint32_t |
version | ) |
|
|
static |
◆ jerasure_rs_cauchy_min_fragments()
static int jerasure_rs_cauchy_min_fragments |
( |
void * |
desc, |
|
|
int * |
missing_idxs, |
|
|
int * |
fragments_to_exclude, |
|
|
int * |
fragments_needed |
|
) |
| |
|
static |
◆ jerasure_rs_cauchy_reconstruct()
static int jerasure_rs_cauchy_reconstruct |
( |
void * |
desc, |
|
|
char ** |
data, |
|
|
char ** |
parity, |
|
|
int * |
missing_idxs, |
|
|
int |
destination_idx, |
|
|
int |
blocksize |
|
) |
| |
|
static |
◆ backend_jerasure_rs_cauchy
struct ec_backend_common backend_jerasure_rs_cauchy |
Initial value:= {
.id = EC_BACKEND_JERASURE_RS_CAUCHY,
}
#define JERASURE_RS_CAUCHY_LIB_MAJOR
#define JERASURE_RS_CAUCHY_LIB_NAME
#define JERASURE_RS_CAUCHY_LIB_VER_STR
#define JERASURE_RS_CAUCHY_SO_NAME
#define JERASURE_RS_CAUCHY_LIB_REV
struct ec_backend_op_stubs jerasure_rs_cauchy_op_stubs
#define JERASURE_RS_CAUCHY_LIB_MINOR
Definition at line 51 of file jerasure_rs_cauchy.c.
Referenced by jerasure_rs_cauchy_is_compatible_with().
◆ jerasure_rs_cauchy
struct ec_backend jerasure_rs_cauchy |
◆ jerasure_rs_cauchy_op_stubs
struct ec_backend_op_stubs jerasure_rs_cauchy_op_stubs |
Initial value:= {
.GETMETADATASIZE = get_backend_metadata_size_zero,
.GETENCODEOFFSET = get_encode_offset_zero,
}
static int jerasure_rs_cauchy_element_size(void *desc)
Return the element-size, which is the number of bits stored on a given device, per codeword.
static void * jerasure_rs_cauchy_init(struct ec_backend_args *args, void *backend_sohandle)
static bool jerasure_rs_cauchy_is_compatible_with(uint32_t version)
static int jerasure_rs_cauchy_exit(void *desc)
static int jerasure_rs_cauchy_encode(void *desc, char **data, char **parity, int blocksize)
static int jerasure_rs_cauchy_decode(void *desc, char **data, char **parity, int *missing_idxs, int blocksize)
static int jerasure_rs_cauchy_min_fragments(void *desc, int *missing_idxs, int *fragments_to_exclude, int *fragments_needed)
static int jerasure_rs_cauchy_reconstruct(void *desc, char **data, char **parity, int *missing_idxs, int destination_idx, int blocksize)
Definition at line 454 of file jerasure_rs_cauchy.c.
◆ jerasure_rs_cauchy_ops
struct ec_backend_op_stubs jerasure_rs_cauchy_ops |