JERASURE_RS_CAUCHY.C(3)

πŸ“¦
version 1.8.0 Β· 2 versions
, in nixpkgs unstable

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_cauchy
  • static 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