/build/sourc...io/libphazr.c(3)

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

okay so you opened libphazr.c(3) β€” that's a page from the liberasurecode manual, section 3 πŸ¦‹ and we're gonna get through every single detail together, bestie πŸ’–

🌸 NAME 🌸

/build/source/src/backends/phazrio/libphazr.c β€” that's the source file this whole page is about πŸŽ€

🌸 SYNOPSIS 🌸

start with these includes, no cap:

#include <stdio.h>
#include <stdlib.h>
#include 'erasurecode.h'
#include 'erasurecode_backend.h'
#include 'erasurecode_helpers.h'

πŸŽ€ Data Structures πŸŽ€

  • struct libphazr_descriptor β€” the descriptor struct, iconic πŸ’…

πŸŽ€ Macros πŸŽ€

  • #define LIBPHAZR_LIB_MAJOR 1
  • #define LIBPHAZR_LIB_MINOR 0
  • #define LIBPHAZR_LIB_REV 0
  • #define LIBPHAZR_LIB_VER_STR '1.0.0'
  • #define LIBPHAZR_LIB_NAME 'libphazr'
  • #define LIBPHAZR_SO_NAME 'libphazr' LIBERASURECODE_SO_SUFFIX '.so.1'
  • #define DEFAULT_W 64
  • #define DEFAULT_HD 1

πŸŽ€ Typedefs πŸŽ€

  • typedef int(* pio_matrix_encode_func) (char *, char *, char **, int, int, int, int, int, int)
  • typedef int(* pio_matrix_decode_func) (char *, char *, char **, int *, int, int, int, int, int, int)
  • typedef int(* pio_matrix_reconstruct_func) (char *, char **, int *, int, int, int, int, int, int)
  • typedef char *(* pio_create_precoding_matrix_func) (int)
  • typedef char *(* pio_create_inverse_precoding_matrix_func) (int)
  • typedef char *(* pio_create_kmux_matrix_func) (int, int, int)

πŸŽ€ Functions πŸŽ€

  • static int get_padded_blocksize (int w, int hd, int blocksize)
  • static int pio_matrix_encode (void *desc, char **data, char **parity, int blocksize)
  • static int pio_matrix_decode (void *desc, char **data, char **parity, int *missing_idxs, int blocksize)
  • static int pio_matrix_reconstruct (void *desc, char **data, char **parity, int *missing_idxs, int destination_idx, int blocksize)
  • static int pio_min_fragments (void *desc, int *missing_idxs, int *fragments_to_exclude, int *fragments_needed)
  • static int pio_element_size (void *desc) β€” returns the element-size, which is the number of bits stored on a given device, per codeword ✨
  • static void * pio_init (struct ec_backend_args *args, void *backend_sohandle)
  • static int pio_exit (void *desc)
  • static bool pio_is_compatible_with (uint32_t version)
  • static size_t pio_get_backend_metadata_size (void *desc, int blocksize)
  • static size_t pio_get_encode_offset (void *desc, int metadata_size)
  • __attribute__ ((visibility('internal')))

πŸŽ€ Variables πŸŽ€

  • struct ec_backend_common backend_libphazr
  • static struct ec_backend_op_stubs libphazr_op_stubs

✨ MACRO DEFINITION DOCUMENTATION ✨

  • #define DEFAULT_HD 1 β€” defined at line 84 of libphazr.c. Referenced by pio_init(). πŸ’–
  • #define DEFAULT_W 64 β€” defined at line 82 of libphazr.c. πŸŽ€
  • #define LIBPHAZR_LIB_MAJOR 1 β€” defined at line 36 of libphazr.c. Referenced by __attribute__(). πŸ’…
  • #define LIBPHAZR_LIB_MINOR 0 β€” defined at line 37 of libphazr.c. Referenced by __attribute__(). πŸ¦‹
  • #define LIBPHAZR_LIB_NAME 'libphazr' β€” defined at line 40 of libphazr.c. Referenced by __attribute__(). 🌸
  • #define LIBPHAZR_LIB_REV 0 β€” defined at line 38 of libphazr.c. Referenced by __attribute__(). ⭐
  • #define LIBPHAZR_LIB_VER_STR '1.0.0' β€” defined at line 39 of libphazr.c. Referenced by __attribute__(). πŸ’–
  • #define LIBPHAZR_SO_NAME 'libphazr' LIBERASURECODE_SO_SUFFIX '.so.1' β€” defined at line 44 of libphazr.c. Referenced by __attribute__(). πŸ”₯

✨ TYPEDEF DOCUMENTATION ✨

  • typedef char *(* pio_create_inverse_precoding_matrix_func) (int) β€” defined at line 54 of libphazr.c. πŸŽ€
  • typedef char *(* pio_create_kmux_matrix_func) (int, int, int) β€” defined at line 55 of libphazr.c. πŸ¦‹
  • typedef char *(* pio_create_precoding_matrix_func) (int) β€” defined at line 53 of libphazr.c. 🌸
  • typedef int(* pio_matrix_decode_func) (char *, char *, char **, int *, int, int, int, int, int, int) β€” defined at line 51 of libphazr.c. πŸ’…
  • typedef int(* pio_matrix_encode_func) (char *, char *, char **, int, int, int, int, int, int) β€” defined at line 50 of libphazr.c. ⭐
  • typedef int(* pio_matrix_reconstruct_func) (char *, char **, int *, int, int, int, int, int, int) β€” defined at line 52 of libphazr.c. πŸ’–

✨ FUNCTION DOCUMENTATION ✨

  • __attribute__ ((visibility('internal')) ) β€” definition at line 382 of libphazr.c. References backend_libphazr, LIBPHAZR_LIB_MAJOR, LIBPHAZR_LIB_MINOR, LIBPHAZR_LIB_NAME, LIBPHAZR_LIB_REV, LIBPHAZR_LIB_VER_STR, libphazr_op_stubs, and LIBPHAZR_SO_NAME. πŸ”₯
  • int get_padded_blocksize (int w, int hd, int blocksize) [static] β€” definition at line 86 of libphazr.c. Referenced by pio_get_backend_metadata_size(), pio_matrix_decode(), pio_matrix_encode(), and pio_matrix_reconstruct(). πŸŽ€
  • int pio_element_size (void * desc) [static] β€” returns the element-size, which is the number of bits stored on a given device, per codeword. Definition at line 211 of libphazr.c. References libphazr_descriptor::w. ✨
  • int pio_exit (void * desc) [static] β€” definition at line 335 of libphazr.c. References libphazr_descriptor::inverse_precoding_matrix, libphazr_descriptor::matrix, and libphazr_descriptor::precoding_matrix. πŸ¦‹
  • size_t pio_get_backend_metadata_size (void * desc, int blocksize) [static] β€” definition at line 355 of libphazr.c. References get_padded_blocksize(), libphazr_descriptor::hd, and libphazr_descriptor::w. 🌸
  • size_t pio_get_encode_offset (void * desc, int metadata_size) [static] β€” definition at line 362 of libphazr.c. πŸ’…
  • void * pio_init (struct ec_backend_args * args, void * backend_sohandle) [static] β€” definition at line 218 of libphazr.c. References libphazr_descriptor::create_inverse_precoding_matrix, libphazr_descriptor::create_kmux_matrix, libphazr_descriptor::create_precoding_matrix, DEFAULT_HD, DEFAULT_W, libphazr_descriptor::hd, libphazr_descriptor::inverse_precoding_matrix, libphazr_descriptor::k, libphazr_descriptor::m, libphazr_descriptor::matrix, libphazr_descriptor::matrix_decode, libphazr_descriptor::matrix_encode, libphazr_descriptor::matrix_reconstruct, libphazr_descriptor::precoding_matrix, and libphazr_descriptor::w. πŸ‘‘
  • bool pio_is_compatible_with (uint32_t version) [static] β€” definition at line 350 of libphazr.c. References backend_libphazr. ⭐
  • int pio_matrix_decode (void * desc, char ** data, char ** parity, int * missing_idxs, int blocksize) [static] β€” definition at line 121 of libphazr.c. References get_padded_blocksize(), libphazr_descriptor::hd, libphazr_descriptor::inverse_precoding_matrix, libphazr_descriptor::k, libphazr_descriptor::m, libphazr_descriptor::matrix, libphazr_descriptor::matrix_decode, and libphazr_descriptor::w. πŸ’–
  • int pio_matrix_encode (void * desc, char ** data, char ** parity, int blocksize) [static] β€” definition at line 92 of libphazr.c. References get_padded_blocksize(), libphazr_descriptor::hd, libphazr_descriptor::k, libphazr_descriptor::m, libphazr_descriptor::matrix, libphazr_descriptor::matrix_encode, libphazr_descriptor::precoding_matrix, and libphazr_descriptor::w. πŸ”₯
  • int pio_matrix_reconstruct (void * desc, char ** data, char ** parity, int * missing_idxs, int destination_idx, int blocksize) [static] β€” definition at line 151 of libphazr.c. References get_padded_blocksize(), libphazr_descriptor::hd, libphazr_descriptor::k, libphazr_descriptor::m, libphazr_descriptor::matrix, libphazr_descriptor::matrix_reconstruct, and libphazr_descriptor::w. πŸŽ€
  • int pio_min_fragments (void * desc, int * missing_idxs, int * fragments_to_exclude, int * fragments_needed) [static] β€” definition at line 181 of libphazr.c. References libphazr_descriptor::k, and libphazr_descriptor::m. 🌈

✨ VARIABLE DOCUMENTATION ✨

  • struct ec_backend_common backend_libphazr β€” definition at line 48 of libphazr.c. Referenced by __attribute__(), and pio_is_compatible_with(). πŸ¦‹
  • struct ec_backend_op_stubs libphazr_op_stubs [static] β€” initial value:
= {
    .INIT                       = pio_init,
    .EXIT                       = pio_exit,
    .ISSYSTEMATIC               = 0,
    .ENCODE                     = pio_matrix_encode,
    .DECODE                     = pio_matrix_decode,
    .FRAGSNEEDED                = pio_min_fragments,
    .RECONSTRUCT                = pio_matrix_reconstruct,
    .ELEMENTSIZE                = pio_element_size,
    .ISCOMPATIBLEWITH           = pio_is_compatible_with,
    .GETMETADATASIZE            = pio_get_backend_metadata_size,
    .GETENCODEOFFSET            = pio_get_encode_offset,
}

Definition at line 368 of libphazr.c. Referenced by __attribute__(). πŸ’…

πŸ‘‘ AUTHOR πŸ‘‘

Doxygen generated this automatically for liberasurecode from the source code πŸ‘‘.


okay bestie, that's the whole page πŸ’– source/version: liberasurecode, Version 1.8.0, dated Tue Jan 1 1980 00:00, from /build/sourc...io/libphazr.c(3) β€” mwah πŸ’‹

πŸ“¦ where this page comes from