JERASURE_RS_CAUCHY.C(3)
okay so bestie, this is the whole vibe of jerasure_rs_cauchy.c(3) β a liberasurecode backend page, and it's giving very internal-library energy. No cap, everything below is exactly the facts from the page, just with way more sparkle. π
πΈ NAME πΈ
/build/source/src/backends/jerasure/jerasure_rs_cauchy.c β that's the file, bestie, and it is literally the Cauchy/Jerasure backend source. Periodt. β¨
π SYNOPSIS π
#include <stdio.h>
#include <stdlib.h>
#include 'erasurecode.h'
#include 'erasurecode_backend.h'
#include 'erasurecode_helpers.h'
#include 'erasurecode_helpers_ext.h'
π§± Data Structures
struct jerasure_rs_cauchy_descriptorβ the descriptor struct for this backend, and yes it's the main character of the data structures here. π«Ά
π Macros
#define JERASURE_RS_CAUCHY_LIB_MAJOR 2
#define JERASURE_RS_CAUCHY_LIB_MINOR 0
#define JERASURE_RS_CAUCHY_LIB_REV 0
#define JERASURE_RS_CAUCHY_LIB_VER_STR '2.0'
#define JERASURE_RS_CAUCHY_LIB_NAME 'jerasure_rs_cauchy'
#define JERASURE_RS_CAUCHY_SO_NAME 'libJerasure'
LIBERASURECODE_SO_SUFFIX '.so.2'
#define PYECC_CAUCHY_PACKETSIZE sizeof(long) * 128
#define DEFAULT_W 4
π¦ Typedefs
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)
π Functions
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)
static int jerasure_rs_cauchy_exit (void *desc)
static bool jerasure_rs_cauchy_is_compatible_with (uint32_t version)
__attribute__ ((visibility('internal')))
jerasure_rs_cauchy_element_sizeβ Return the element-size, which is the number of bits stored on a given device, per codeword. Returns the size in bits! That's the exact note from the page, bestie. π
π Variables
struct ec_backend_common backend_jerasure_rs_cauchystatic struct ec_backend_op_stubs jerasure_rs_cauchy_op_stubs
π₯ Macro Definition Documentation π₯
π DEFAULT_W 4
Definition at line 237 of file jerasure_rs_cauchy.c.
Referenced by flar_xor_hd_element_size(), flat_xor_hd_init(), jerasure_rs_cauchy_init(), jerasure_rs_vand_init(), null_element_size(), null_init(), pio_init(), shss_element_size(), and shss_init().
π JERASURE_RS_CAUCHY_LIB_MAJOR 2
Definition at line 37 of file jerasure_rs_cauchy.c.
Referenced by __attribute__().
π JERASURE_RS_CAUCHY_LIB_MINOR 0
Definition at line 38 of file jerasure_rs_cauchy.c.
Referenced by __attribute__().
π JERASURE_RS_CAUCHY_LIB_NAME 'jerasure_rs_cauchy'
Definition at line 41 of file jerasure_rs_cauchy.c.
Referenced by __attribute__().
π JERASURE_RS_CAUCHY_LIB_REV 0
Definition at line 39 of file jerasure_rs_cauchy.c.
Referenced by __attribute__().
π JERASURE_RS_CAUCHY_LIB_VER_STR '2.0'
Definition at line 40 of file jerasure_rs_cauchy.c.
Referenced by __attribute__().
π JERASURE_RS_CAUCHY_SO_NAME
#define JERASURE_RS_CAUCHY_SO_NAME 'libJerasure'
LIBERASURECODE_SO_SUFFIX '.so.2'
Definition at line 45 of file jerasure_rs_cauchy.c.
Referenced by __attribute__().
π PYECC_CAUCHY_PACKETSIZE sizeof(long) * 128
Definition at line 70 of file jerasure_rs_cauchy.c.
Referenced by jerasure_rs_cauchy_decode(), jerasure_rs_cauchy_element_size(), jerasure_rs_cauchy_encode(), and jerasure_rs_cauchy_reconstruct().
π¦ Typedef Documentation π¦
cauchy_original_coding_matrix_func
typedef int *(* cauchy_original_coding_matrix_func) (int, int, int)
Definition at line 51 of file jerasure_rs_cauchy.c.
galois_uninit_field_func
typedef void(* galois_uninit_field_func) (int)
Definition at line 64 of file jerasure_rs_cauchy.c.
jerasure_bitmatrix_decode_func
typedef int(* jerasure_bitmatrix_decode_func) (int, int, int, int *, int, int *, char **, char **, int, int)
Definition at line 57 of file jerasure_rs_cauchy.c.
jerasure_bitmatrix_dotprod_func
typedef void(* jerasure_bitmatrix_dotprod_func) (int, int, int *, int *, int, char **, char **, int, int)
Definition at line 62 of file jerasure_rs_cauchy.c.
jerasure_bitmatrix_encode_func
typedef void(* jerasure_bitmatrix_encode_func) (int, int, int, int *, char **, char **, int, int)
Definition at line 55 of file jerasure_rs_cauchy.c.
jerasure_erasures_to_erased_func
typedef int *(* jerasure_erasures_to_erased_func) (int, int, int *)
Definition at line 59 of file jerasure_rs_cauchy.c.
jerasure_make_decoding_bitmatrix_func
typedef int(* jerasure_make_decoding_bitmatrix_func) (int, int, int, int *, int *, int *, int *)
Definition at line 60 of file jerasure_rs_cauchy.c.
jerasure_matrix_to_bitmatrix_func
typedef int *(* jerasure_matrix_to_bitmatrix_func) (int, int, int, int *)
Definition at line 52 of file jerasure_rs_cauchy.c.
jerasure_smart_bitmatrix_to_schedule_func
typedef int **(* jerasure_smart_bitmatrix_to_schedule_func) (int, int, int, int *)
Definition at line 53 of file jerasure_rs_cauchy.c.
π Function Documentation π
__attribute__ ((visibility('internal')) )
__attribute__ ((visibility('internal')) )
Definition at line 468 of file jerasure_rs_cauchy.c.
References backend_jerasure_rs_cauchy, JERASURE_RS_CAUCHY_LIB_MAJOR, JERASURE_RS_CAUCHY_LIB_MINOR, JERASURE_RS_CAUCHY_LIB_NAME, JERASURE_RS_CAUCHY_LIB_REV, JERASURE_RS_CAUCHY_LIB_VER_STR, jerasure_rs_cauchy_op_stubs, and JERASURE_RS_CAUCHY_SO_NAME.
free_rs_cauchy_desc [static]
void free_rs_cauchy_desc (struct jerasure_rs_cauchy_descriptor *
jerasure_desc) [static]
Definition at line 393 of file jerasure_rs_cauchy.c.
References jerasure_rs_cauchy_descriptor::bitmatrix, jerasure_rs_cauchy_descriptor::galois_uninit_field, jerasure_rs_cauchy_descriptor::matrix, jerasure_rs_cauchy_descriptor::schedule, and jerasure_rs_cauchy_descriptor::w.
Referenced by jerasure_rs_cauchy_exit().
jerasure_rs_cauchy_decode [static]
int jerasure_rs_cauchy_decode (void * desc, char ** data, char ** parity,
int * missing_idxs, int blocksize) [static]
Definition at line 121 of file jerasure_rs_cauchy.c.
References jerasure_rs_cauchy_descriptor::bitmatrix, jerasure_rs_cauchy_descriptor::jerasure_bitmatrix_decode, jerasure_rs_cauchy_descriptor::k, jerasure_rs_cauchy_descriptor::m, PYECC_CAUCHY_PACKETSIZE, and jerasure_rs_cauchy_descriptor::w.
jerasure_rs_cauchy_element_size [static]
int jerasure_rs_cauchy_element_size (void * desc) [static]
Return the element-size, which is the number of bits stored on a given device, per codeword. Returns the size in bits! π₯
Definition at line 385 of file jerasure_rs_cauchy.c.
References PYECC_CAUCHY_PACKETSIZE, and jerasure_rs_cauchy_descriptor::w.
jerasure_rs_cauchy_encode [static]
int jerasure_rs_cauchy_encode (void * desc, char ** data, char ** parity,
int blocksize) [static]
Definition at line 106 of file jerasure_rs_cauchy.c.
References jerasure_rs_cauchy_descriptor::bitmatrix, jerasure_rs_cauchy_descriptor::jerasure_bitmatrix_encode, jerasure_rs_cauchy_descriptor::k, jerasure_rs_cauchy_descriptor::m, PYECC_CAUCHY_PACKETSIZE, and jerasure_rs_cauchy_descriptor::w.
jerasure_rs_cauchy_exit [static]
int jerasure_rs_cauchy_exit (void * desc) [static]
Definition at line 438 of file jerasure_rs_cauchy.c.
References free_rs_cauchy_desc().
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]
Definition at line 450 of file jerasure_rs_cauchy.c.
References backend_jerasure_rs_cauchy.
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]
Definition at line 209 of file jerasure_rs_cauchy.c.
References jerasure_rs_cauchy_descriptor::k, and jerasure_rs_cauchy_descriptor::m.
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]
Definition at line 139 of file jerasure_rs_cauchy.c.
References jerasure_rs_cauchy_descriptor::bitmatrix, jerasure_rs_cauchy_descriptor::jerasure_bitmatrix_decode, jerasure_rs_cauchy_descriptor::jerasure_bitmatrix_dotprod, jerasure_rs_cauchy_descriptor::jerasure_erasures_to_erased, jerasure_rs_cauchy_descriptor::jerasure_make_decoding_bitmatrix, jerasure_rs_cauchy_descriptor::k, jerasure_rs_cauchy_descriptor::m, PYECC_CAUCHY_PACKETSIZE, and jerasure_rs_cauchy_descriptor::w.
π Variable Documentation π
backend_jerasure_rs_cauchy
Definition at line 49 of file jerasure_rs_cauchy.c.
Referenced by __attribute__(), and jerasure_rs_cauchy_is_compatible_with().
jerasure_rs_cauchy_op_stubs [static]
= {
.INIT = jerasure_rs_cauchy_init,
.EXIT = jerasure_rs_cauchy_exit,
.ISSYSTEMATIC = 1,
.ENCODE = jerasure_rs_cauchy_encode,
.DECODE = jerasure_rs_cauchy_decode,
.FRAGSNEEDED = jerasure_rs_cauchy_min_fragments,
.RECONSTRUCT = jerasure_rs_cauchy_reconstruct,
.ELEMENTSIZE = jerasure_rs_cauchy_element_size,
.ISCOMPATIBLEWITH = jerasure_rs_cauchy_is_compatible_with,
.GETMETADATASIZE = get_backend_metadata_size_zero,
.GETENCODEOFFSET = get_encode_offset_zero,
}
Definition at line 454 of file jerasure_rs_cauchy.c.
Referenced by __attribute__().
π«Ά Author π«Ά
Generated automatically by Doxygen for liberasurecode from the source code. Not me, bestie β Doxygen did that. π
okay that's the whole page, bestie. Cute little footer vibes: Version 1.8.0, dated Tue Jan 1 1980, with that absolutely iconic timestamp 00:0/build/source...e_rs_cauchy.c(3) β slay. πβ¨π
π¦ where this page comes from
- nixpkgs unstable: liberasurecode 1.8.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms