liberasurecode
1.6.1
Erasure Code API library
|
#include <assert.h>
#include <stdio.h>
#include <stdarg.h>
#include <zlib.h>
#include "erasurecode_backend.h"
#include "erasurecode_helpers.h"
#include "erasurecode_helpers_ext.h"
#include "erasurecode_stdinc.h"
#include "erasurecode_version.h"
#include "alg_sig.h"
#include "erasurecode_log.h"
Go to the source code of this file.
Functions | |
static bool | is_fragment (char *buf) |
void * | get_aligned_buffer16 (int size) |
Memory Management Methods. More... | |
void * | alloc_zeroed_buffer (int size) |
Allocate a zero-ed buffer of a specific size. More... | |
void * | alloc_and_set_buffer (int size, int value) |
Allocate a buffer of a specific size and set its' contents to the specified value. More... | |
void * | check_and_free_buffer (void *buf) |
Deallocate memory buffer if it's not NULL. More... | |
char * | alloc_fragment_buffer (int size) |
int | free_fragment_buffer (char *buf) |
uint64_t | get_fragment_size (char *buf) |
Return total fragment length (on-disk, on-wire) More... | |
int | get_aligned_data_size (ec_backend_t instance, int data_len) |
Compute a size aligned to the number of data and the underlying wordsize of the EC algorithm. More... | |
char * | get_data_ptr_from_fragment (char *buf) |
int | get_data_ptr_array_from_fragments (char **data_array, char **fragments, int num_fragments) |
int | get_fragment_ptr_array_from_data (char **frag_array, char **data, int num_data) |
char * | get_fragment_ptr_from_data_novalidate (char *buf) |
char * | get_fragment_ptr_from_data (char *buf) |
int | set_fragment_idx (char *buf, int idx) |
int | get_fragment_idx (char *buf) |
int | set_fragment_payload_size (char *buf, int size) |
int | get_fragment_payload_size (char *buf) |
int | set_fragment_backend_metadata_size (char *buf, int size) |
int | get_fragment_backend_metadata_size (char *buf) |
int | get_fragment_buffer_size (char *buf) |
int | set_orig_data_size (char *buf, int orig_data_size) |
int | get_orig_data_size (char *buf) |
int | set_libec_version (char *buf) |
int | get_libec_version (char *buf, uint32_t *ver) |
int | set_backend_id (char *buf, ec_backend_id_t id) |
int | get_backend_id (char *buf, ec_backend_id_t *id) |
int | set_backend_version (char *buf, uint32_t version) |
int | get_backend_version (char *buf, uint32_t *version) |
int | set_checksum (ec_checksum_type_t ct, char *buf, int blocksize) |
void* alloc_and_set_buffer | ( | int | size, |
int | value | ||
) |
Allocate a buffer of a specific size and set its' contents to the specified value.
size | integer size in bytes of buffer to allocate |
value |
Definition at line 97 of file erasurecode_helpers.c.
Referenced by alloc_zeroed_buffer(), liberasurecode_decode(), and liberasurecode_reconstruct_fragment().
char* alloc_fragment_buffer | ( | int | size | ) |
Definition at line 123 of file erasurecode_helpers.c.
References get_aligned_buffer16().
Referenced by prepare_fragments_for_decode(), and prepare_fragments_for_encode().
void* alloc_zeroed_buffer | ( | int | size | ) |
Allocate a zero-ed buffer of a specific size.
size | integer size in bytes of buffer to allocate |
Definition at line 84 of file erasurecode_helpers.c.
References alloc_and_set_buffer().
Referenced by jerasure_rs_cauchy_reconstruct(), jerasure_rs_vand_reconstruct(), liberasurecode_decode(), liberasurecode_encode(), and liberasurecode_reconstruct_fragment().
void* check_and_free_buffer | ( | void * | buf | ) |
Deallocate memory buffer if it's not NULL.
This methods returns NULL so that you can free and reset a buffer using a single line as follows:
my_ptr = check_and_free_buffer(my_ptr);
Definition at line 116 of file erasurecode_helpers.c.
Referenced by prepare_fragments_for_encode().
int free_fragment_buffer | ( | char * | buf | ) |
Definition at line 139 of file erasurecode_helpers.c.
Referenced by prepare_fragments_for_encode().
void* get_aligned_buffer16 | ( | int | size | ) |
Memory Management Methods.
The following methods provide wrappers for allocating and deallocating memory.
Ensure all memory is aligned to 16-byte boundaries to support 128-bit operations
Definition at line 61 of file erasurecode_helpers.c.
Referenced by alloc_fragment_buffer(), and fragments_to_string().
int get_aligned_data_size | ( | ec_backend_t | instance, |
int | data_len | ||
) |
Compute a size aligned to the number of data and the underlying wordsize of the EC algorithm.
instance | - ec_backend_t instance (to extract args) |
data_len | - integer length of data in bytes |
Definition at line 185 of file erasurecode_helpers.c.
Referenced by liberasurecode_get_fragment_size(), and prepare_fragments_for_encode().
int get_backend_id | ( | char * | buf, |
ec_backend_id_t * | id | ||
) |
Definition at line 430 of file erasurecode_helpers.c.
References is_fragment().
int get_backend_version | ( | char * | buf, |
uint32_t * | version | ||
) |
Definition at line 450 of file erasurecode_helpers.c.
References is_fragment().
int get_data_ptr_array_from_fragments | ( | char ** | data_array, |
char ** | fragments, | ||
int | num_fragments | ||
) |
Definition at line 218 of file erasurecode_helpers.c.
References get_data_ptr_from_fragment().
Referenced by liberasurecode_decode(), and liberasurecode_reconstruct_fragment().
char* get_data_ptr_from_fragment | ( | char * | buf | ) |
Definition at line 211 of file erasurecode_helpers.c.
Referenced by fragments_to_string(), get_data_ptr_array_from_fragments(), liberasurecode_get_fragment_metadata(), prepare_fragments_for_encode(), and set_checksum().
int get_fragment_backend_metadata_size | ( | char * | buf | ) |
Definition at line 346 of file erasurecode_helpers.c.
int get_fragment_buffer_size | ( | char * | buf | ) |
Definition at line 359 of file erasurecode_helpers.c.
Referenced by get_fragment_size().
int get_fragment_idx | ( | char * | buf | ) |
Definition at line 290 of file erasurecode_helpers.c.
Referenced by fragments_to_string(), and get_fragment_partition().
int get_fragment_payload_size | ( | char * | buf | ) |
Definition at line 318 of file erasurecode_helpers.c.
Referenced by fragments_to_string(), and prepare_fragments_for_decode().
int get_fragment_ptr_array_from_data | ( | char ** | frag_array, |
char ** | data, | ||
int | num_data | ||
) |
Definition at line 234 of file erasurecode_helpers.c.
References get_fragment_ptr_from_data().
Referenced by liberasurecode_encode().
char* get_fragment_ptr_from_data | ( | char * | buf | ) |
Definition at line 257 of file erasurecode_helpers.c.
Referenced by finalize_fragments_after_encode(), and get_fragment_ptr_array_from_data().
char* get_fragment_ptr_from_data_novalidate | ( | char * | buf | ) |
Definition at line 250 of file erasurecode_helpers.c.
uint64_t get_fragment_size | ( | char * | buf | ) |
Return total fragment length (on-disk, on-wire)
buf | - pointer to fragment buffer |
Definition at line 168 of file erasurecode_helpers.c.
References get_fragment_buffer_size().
Referenced by liberasurecode_encode().
int get_libec_version | ( | char * | buf, |
uint32_t * | ver | ||
) |
Definition at line 410 of file erasurecode_helpers.c.
References is_fragment().
Referenced by is_invalid_fragment().
int get_orig_data_size | ( | char * | buf | ) |
Definition at line 387 of file erasurecode_helpers.c.
Referenced by fragments_to_string(), and prepare_fragments_for_decode().
|
static |
Definition at line 43 of file erasurecode_helpers.c.
Referenced by get_backend_id(), get_backend_version(), get_libec_version(), set_backend_id(), set_backend_version(), and set_libec_version().
int set_backend_id | ( | char * | buf, |
ec_backend_id_t | id | ||
) |
Definition at line 420 of file erasurecode_helpers.c.
References is_fragment().
Referenced by add_fragment_metadata().
int set_backend_version | ( | char * | buf, |
uint32_t | version | ||
) |
Definition at line 440 of file erasurecode_helpers.c.
References is_fragment().
Referenced by add_fragment_metadata().
|
inline |
Definition at line 462 of file erasurecode_helpers.c.
References get_data_ptr_from_fragment().
Referenced by add_fragment_metadata().
int set_fragment_backend_metadata_size | ( | char * | buf, |
int | size | ||
) |
Definition at line 331 of file erasurecode_helpers.c.
Referenced by add_fragment_metadata().
int set_fragment_idx | ( | char * | buf, |
int | idx | ||
) |
Definition at line 275 of file erasurecode_helpers.c.
Referenced by add_fragment_metadata().
int set_fragment_payload_size | ( | char * | buf, |
int | size | ||
) |
Definition at line 303 of file erasurecode_helpers.c.
Referenced by add_fragment_metadata().
int set_libec_version | ( | char * | buf | ) |
Definition at line 400 of file erasurecode_helpers.c.
References is_fragment().
Referenced by add_fragment_metadata().
int set_orig_data_size | ( | char * | buf, |
int | orig_data_size | ||
) |
Definition at line 372 of file erasurecode_helpers.c.
Referenced by add_fragment_metadata().