liberasurecode  1.6.2
Erasure Code API library
Functions | Variables
xor_code.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "xor_code.h"

Go to the source code of this file.

Functions

int is_data_in_parity (int data_idx, unsigned int parity_bm)
 
int does_parity_have_data (int parity_idx, unsigned int data_bm)
 
int parity_bit_lookup (xor_code_t *code_desc, int index)
 
int data_bit_lookup (xor_code_t *code_desc, int index)
 
int missing_elements_bm (xor_code_t *code_desc, int *missing_elements, int(*bit_lookup_func)(xor_code_t *code_desc, int index))
 
failure_pattern_t get_failure_pattern (xor_code_t *code_desc, int *missing_idxs)
 
void fast_memcpy (char *dst, char *src, int size)
 
void xor_bufs_and_store (char *buf1, char *buf2, int blocksize)
 
void xor_code_encode (xor_code_t *code_desc, char **data, char **parity, int blocksize)
 
void selective_encode (xor_code_t *code_desc, char **data, char **parity, int *missing_parity, int blocksize)
 
int * get_missing_parity (xor_code_t *code_desc, int *missing_idxs)
 
int * get_missing_data (xor_code_t *code_desc, int *missing_idxs)
 
void xor_reconstruct_one (xor_code_t *code_desc, char **data, char **parity, int *missing_idxs, int index_to_reconstruct, int blocksize)
 
int num_missing_data_in_parity (xor_code_t *code_desc, int parity_idx, int *missing_data)
 
int index_of_connected_parity (xor_code_t *code_desc, int data_index, int *missing_parity, int *missing_data)
 
void remove_from_missing_list (int element, int *missing_list)
 

Variables

const int g_bit_lookup []
 

Function Documentation

◆ data_bit_lookup()

int data_bit_lookup ( xor_code_t *  code_desc,
int  index 
)

Definition at line 58 of file xor_code.c.

References g_bit_lookup.

Referenced by xor_hd_fragments_needed().

◆ does_parity_have_data()

int does_parity_have_data ( int  parity_idx,
unsigned int  data_bm 
)

Definition at line 48 of file xor_code.c.

References g_bit_lookup.

Referenced by num_missing_data_in_parity().

◆ fast_memcpy()

void fast_memcpy ( char *  dst,
char *  src,
int  size 
)

◆ get_failure_pattern()

failure_pattern_t get_failure_pattern ( xor_code_t *  code_desc,
int *  missing_idxs 
)

Definition at line 76 of file xor_code.c.

Referenced by xor_hd_decode(), and xor_hd_fragments_needed().

◆ get_missing_data()

int* get_missing_data ( xor_code_t *  code_desc,
int *  missing_idxs 
)

◆ get_missing_parity()

int* get_missing_parity ( xor_code_t *  code_desc,
int *  missing_idxs 
)

◆ index_of_connected_parity()

int index_of_connected_parity ( xor_code_t *  code_desc,
int  data_index,
int *  missing_parity,
int *  missing_data 
)

◆ is_data_in_parity()

int is_data_in_parity ( int  data_idx,
unsigned int  parity_bm 
)

◆ missing_elements_bm()

int missing_elements_bm ( xor_code_t *  code_desc,
int *  missing_elements,
int(*)(xor_code_t *code_desc, int index)  bit_lookup_func 
)

Definition at line 63 of file xor_code.c.

Referenced by xor_hd_fragments_needed().

◆ num_missing_data_in_parity()

int num_missing_data_in_parity ( xor_code_t *  code_desc,
int  parity_idx,
int *  missing_data 
)

◆ parity_bit_lookup()

int parity_bit_lookup ( xor_code_t *  code_desc,
int  index 
)

Definition at line 53 of file xor_code.c.

References g_bit_lookup.

◆ remove_from_missing_list()

void remove_from_missing_list ( int  element,
int *  missing_list 
)

Definition at line 363 of file xor_code.c.

Referenced by decode_three_data(), and fragments_needed_three_data().

◆ selective_encode()

void selective_encode ( xor_code_t *  code_desc,
char **  data,
char **  parity,
int *  missing_parity,
int  blocksize 
)

Definition at line 193 of file xor_code.c.

References is_data_in_parity(), and xor_bufs_and_store().

Referenced by xor_hd_decode().

◆ xor_bufs_and_store()

void xor_bufs_and_store ( char *  buf1,
char *  buf2,
int  blocksize 
)

◆ xor_code_encode()

void xor_code_encode ( xor_code_t *  code_desc,
char **  data,
char **  parity,
int  blocksize 
)

Definition at line 180 of file xor_code.c.

References is_data_in_parity(), and xor_bufs_and_store().

Referenced by init_xor_hd_code().

◆ xor_reconstruct_one()

void xor_reconstruct_one ( xor_code_t *  code_desc,
char **  data,
char **  parity,
int *  missing_idxs,
int  index_to_reconstruct,
int  blocksize 
)

Variable Documentation

◆ g_bit_lookup

const int g_bit_lookup[]
Initial value:
= {0x1, 0x2, 0x4, 0x8,
0x10, 0x20, 0x40, 0x80,
0x100, 0x200, 0x400, 0x800,
0x1000, 0x2000, 0x4000, 0x8000,
0x10000, 0x20000, 0x40000, 0x80000,
0x100000, 0x200000, 0x400000, 0x800000,
0x1000000, 0x2000000, 0x4000000, 0x8000000,
0x10000000, 0x20000000, 0x40000000, 0x80000000}

Definition at line 34 of file xor_code.c.

Referenced by data_bit_lookup(), does_parity_have_data(), is_data_in_parity(), and parity_bit_lookup().