/build/sourc...io/libphazr.c(3)
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_libphazrstatic struct ec_backend_op_stubs libphazr_op_stubs
β¨ MACRO DEFINITION DOCUMENTATION β¨
#define DEFAULT_HD 1β defined at line84oflibphazr.c. Referenced bypio_init(). π#define DEFAULT_W 64β defined at line82oflibphazr.c. π#define LIBPHAZR_LIB_MAJOR 1β defined at line36oflibphazr.c. Referenced by__attribute__(). π#define LIBPHAZR_LIB_MINOR 0β defined at line37oflibphazr.c. Referenced by__attribute__(). π¦#define LIBPHAZR_LIB_NAME 'libphazr'β defined at line40oflibphazr.c. Referenced by__attribute__(). πΈ#define LIBPHAZR_LIB_REV 0β defined at line38oflibphazr.c. Referenced by__attribute__(). β#define LIBPHAZR_LIB_VER_STR '1.0.0'β defined at line39oflibphazr.c. Referenced by__attribute__(). π#define LIBPHAZR_SO_NAME 'libphazr' LIBERASURECODE_SO_SUFFIX '.so.1'β defined at line44oflibphazr.c. Referenced by__attribute__(). π₯
β¨ TYPEDEF DOCUMENTATION β¨
typedef char *(* pio_create_inverse_precoding_matrix_func) (int)β defined at line54oflibphazr.c. πtypedef char *(* pio_create_kmux_matrix_func) (int, int, int)β defined at line55oflibphazr.c. π¦typedef char *(* pio_create_precoding_matrix_func) (int)β defined at line53oflibphazr.c. πΈtypedef int(* pio_matrix_decode_func) (char *, char *, char **, int *, int, int, int, int, int, int)β defined at line51oflibphazr.c. πtypedef int(* pio_matrix_encode_func) (char *, char *, char **, int, int, int, int, int, int)β defined at line50oflibphazr.c. βtypedef int(* pio_matrix_reconstruct_func) (char *, char **, int *, int, int, int, int, int, int)β defined at line52oflibphazr.c. π
β¨ FUNCTION DOCUMENTATION β¨
__attribute__ ((visibility('internal')) )β definition at line382oflibphazr.c. Referencesbackend_libphazr,LIBPHAZR_LIB_MAJOR,LIBPHAZR_LIB_MINOR,LIBPHAZR_LIB_NAME,LIBPHAZR_LIB_REV,LIBPHAZR_LIB_VER_STR,libphazr_op_stubs, andLIBPHAZR_SO_NAME. π₯int get_padded_blocksize (int w, int hd, int blocksize)[static]β definition at line86oflibphazr.c. Referenced bypio_get_backend_metadata_size(),pio_matrix_decode(),pio_matrix_encode(), andpio_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 line211oflibphazr.c. Referenceslibphazr_descriptor::w. β¨int pio_exit (void * desc)[static]β definition at line335oflibphazr.c. Referenceslibphazr_descriptor::inverse_precoding_matrix,libphazr_descriptor::matrix, andlibphazr_descriptor::precoding_matrix. π¦size_t pio_get_backend_metadata_size (void * desc, int blocksize)[static]β definition at line355oflibphazr.c. Referencesget_padded_blocksize(),libphazr_descriptor::hd, andlibphazr_descriptor::w. πΈsize_t pio_get_encode_offset (void * desc, int metadata_size)[static]β definition at line362oflibphazr.c. πvoid * pio_init (struct ec_backend_args * args, void * backend_sohandle)[static]β definition at line218oflibphazr.c. Referenceslibphazr_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, andlibphazr_descriptor::w. πbool pio_is_compatible_with (uint32_t version)[static]β definition at line350oflibphazr.c. Referencesbackend_libphazr. βint pio_matrix_decode (void * desc, char ** data, char ** parity, int * missing_idxs, int blocksize)[static]β definition at line121oflibphazr.c. Referencesget_padded_blocksize(),libphazr_descriptor::hd,libphazr_descriptor::inverse_precoding_matrix,libphazr_descriptor::k,libphazr_descriptor::m,libphazr_descriptor::matrix,libphazr_descriptor::matrix_decode, andlibphazr_descriptor::w. πint pio_matrix_encode (void * desc, char ** data, char ** parity, int blocksize)[static]β definition at line92oflibphazr.c. Referencesget_padded_blocksize(),libphazr_descriptor::hd,libphazr_descriptor::k,libphazr_descriptor::m,libphazr_descriptor::matrix,libphazr_descriptor::matrix_encode,libphazr_descriptor::precoding_matrix, andlibphazr_descriptor::w. π₯int pio_matrix_reconstruct (void * desc, char ** data, char ** parity, int * missing_idxs, int destination_idx, int blocksize)[static]β definition at line151oflibphazr.c. Referencesget_padded_blocksize(),libphazr_descriptor::hd,libphazr_descriptor::k,libphazr_descriptor::m,libphazr_descriptor::matrix,libphazr_descriptor::matrix_reconstruct, andlibphazr_descriptor::w. πint pio_min_fragments (void * desc, int * missing_idxs, int * fragments_to_exclude, int * fragments_needed)[static]β definition at line181oflibphazr.c. Referenceslibphazr_descriptor::k, andlibphazr_descriptor::m. π
β¨ VARIABLE DOCUMENTATION β¨
struct ec_backend_common backend_libphazrβ definition at line48oflibphazr.c. Referenced by__attribute__(), andpio_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
- 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