liberasurecode 1.6.2
Erasure Code API library
|
#include <stdio.h>
#include <stdlib.h>
#include "erasurecode.h"
#include "erasurecode_backend.h"
#include "erasurecode_helpers.h"
Go to the source code of this file.
Data Structures | |
struct | libphazr_descriptor |
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.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) |
Return 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) |
Variables | |
struct ec_backend | libphazr |
struct ec_backend_op_stubs | libphazr_ops |
struct ec_backend_common | backend_libphazr |
struct ec_backend_op_stubs | libphazr_op_stubs |
#define DEFAULT_HD 1 |
Definition at line 86 of file libphazr.c.
Referenced by pio_init().
#define DEFAULT_W 64 |
Definition at line 84 of file libphazr.c.
Referenced by pio_init().
#define LIBPHAZR_LIB_MAJOR 1 |
Definition at line 36 of file libphazr.c.
#define LIBPHAZR_LIB_MINOR 0 |
Definition at line 37 of file libphazr.c.
#define LIBPHAZR_LIB_NAME "libphazr" |
Definition at line 40 of file libphazr.c.
#define LIBPHAZR_LIB_REV 0 |
Definition at line 38 of file libphazr.c.
#define LIBPHAZR_LIB_VER_STR "1.0.0" |
Definition at line 39 of file libphazr.c.
#define LIBPHAZR_SO_NAME "libphazr.so.1" |
Definition at line 44 of file libphazr.c.
typedef char *(* pio_create_inverse_precoding_matrix_func) (int) |
Definition at line 56 of file libphazr.c.
typedef char *(* pio_create_kmux_matrix_func) (int, int, int) |
Definition at line 57 of file libphazr.c.
typedef char *(* pio_create_precoding_matrix_func) (int) |
Definition at line 55 of file libphazr.c.
typedef int(* pio_matrix_decode_func) (char *, char *, char **, int *, int, int, int, int, int, int) |
Definition at line 53 of file libphazr.c.
typedef int(* pio_matrix_encode_func) (char *, char *, char **, int, int, int, int, int, int) |
Definition at line 52 of file libphazr.c.
typedef int(* pio_matrix_reconstruct_func) (char *, char **, int *, int, int, int, int, int, int) |
Definition at line 54 of file libphazr.c.
|
static |
Definition at line 88 of file libphazr.c.
Referenced by pio_get_backend_metadata_size(), pio_matrix_decode(), pio_matrix_encode(), and pio_matrix_reconstruct().
|
static |
Return the element-size, which is the number of bits stored on a given device, per codeword.
Definition at line 212 of file libphazr.c.
References libphazr_descriptor::w.
|
static |
Definition at line 336 of file libphazr.c.
References libphazr_descriptor::inverse_precoding_matrix, libphazr_descriptor::matrix, and libphazr_descriptor::precoding_matrix.
|
static |
Definition at line 356 of file libphazr.c.
References get_padded_blocksize(), libphazr_descriptor::hd, and libphazr_descriptor::w.
|
static |
Definition at line 363 of file libphazr.c.
|
static |
Definition at line 219 of file 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.
|
static |
Definition at line 351 of file libphazr.c.
References backend_libphazr.
|
static |
Definition at line 123 of file 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.
|
static |
Definition at line 94 of file 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.
|
static |
Definition at line 153 of file 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.
|
static |
Definition at line 183 of file libphazr.c.
References libphazr_descriptor::k, and libphazr_descriptor::m.
struct ec_backend_common backend_libphazr |
Definition at line 50 of file libphazr.c.
Referenced by pio_is_compatible_with().
struct ec_backend libphazr |
Definition at line 48 of file libphazr.c.
struct ec_backend_op_stubs libphazr_op_stubs |
Definition at line 369 of file libphazr.c.
struct ec_backend_op_stubs libphazr_ops |
Definition at line 49 of file libphazr.c.