liberasurecode 1.6.3
Erasure Code API library
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Functions | Variables
shss.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include "erasurecode.h"
#include "erasurecode_helpers.h"
#include "erasurecode_helpers_ext.h"
#include "erasurecode_backend.h"

Go to the source code of this file.

Data Structures

struct  shss_descriptor
 

Macros

#define SHSS_LIB_VER_STR   "1.0"
 
#define SHSS_LIB_NAME   "shss"
 
#define SHSS_SO_NAME   "libshss" LIBERASURECODE_SO_SUFFIX ".so.1"
 
#define DEFAULT_W   128
 
#define METADATA   32
 

Typedefs

typedef int(* shss_encode_func) (char **, size_t, int, int, int, int, long long *)
 
typedef int(* shss_decode_func) (char **, size_t, int *, int, int, int, int, int, long long *)
 
typedef int(* shss_reconstruct_func) (char **, size_t, int *, int, int *, int, int, int, int, int, long long *)
 

Functions

static int shss_encode (void *desc, char **data, char **parity, int blocksize)
 
static int shss_decode (void *desc, char **data, char **parity, int *missing_idxs, int blocksize)
 
static int shss_reconstruct (void *desc, char **data, char **parity, int *missing_idxs, int destination_idx, int blocksize)
 
static int shss_fragments_needed (void *desc, int *missing_idxs, int *fragments_to_exclude, int *fragments_needed)
 
static int shss_element_size (void *desc)
 Return the element-size, which is the number of bits stored on a given device, per codeword.
 
static void * shss_init (struct ec_backend_args *args, void *backend_sohandle)
 
static int shss_exit (void *desc)
 
static bool shss_is_compatible_with (uint32_t version)
 
static size_t shss_get_backend_metadata_size (void *desc, int blocksize)
 

Variables

struct ec_backend shss
 
struct ec_backend_op_stubs shss_ops
 
struct ec_backend_common backend_shss
 
struct ec_backend_op_stubs shss_op_stubs
 

Macro Definition Documentation

◆ DEFAULT_W

#define DEFAULT_W   128

Definition at line 70 of file shss.c.

◆ METADATA

#define METADATA   32

Definition at line 71 of file shss.c.

◆ SHSS_LIB_NAME

#define SHSS_LIB_NAME   "shss"

Definition at line 64 of file shss.c.

◆ SHSS_LIB_VER_STR

#define SHSS_LIB_VER_STR   "1.0"

Definition at line 63 of file shss.c.

◆ SHSS_SO_NAME

#define SHSS_SO_NAME   "libshss" LIBERASURECODE_SO_SUFFIX ".so.1"

Definition at line 68 of file shss.c.

Typedef Documentation

◆ shss_decode_func

typedef int(* shss_decode_func) (char **, size_t, int *, int, int, int, int, int, long long *)

Definition at line 46 of file shss.c.

◆ shss_encode_func

typedef int(* shss_encode_func) (char **, size_t, int, int, int, int, long long *)

Definition at line 45 of file shss.c.

◆ shss_reconstruct_func

typedef int(* shss_reconstruct_func) (char **, size_t, int *, int, int *, int, int, int, int, int, long long *)

Definition at line 47 of file shss.c.

Function Documentation

◆ shss_decode()

static int shss_decode ( void *  desc,
char **  data,
char **  parity,
int *  missing_idxs,
int  blocksize 
)
static

◆ shss_element_size()

static int shss_element_size ( void *  desc)
static

Return the element-size, which is the number of bits stored on a given device, per codeword.

This is usually just 'w'.

Definition at line 210 of file shss.c.

References DEFAULT_W.

◆ shss_encode()

static int shss_encode ( void *  desc,
char **  data,
char **  parity,
int  blocksize 
)
static

◆ shss_exit()

static int shss_exit ( void *  desc)
static

Definition at line 277 of file shss.c.

◆ shss_fragments_needed()

static int shss_fragments_needed ( void *  desc,
int *  missing_idxs,
int *  fragments_to_exclude,
int *  fragments_needed 
)
static

Definition at line 180 of file shss.c.

References shss_descriptor::k, and shss_descriptor::n.

◆ shss_get_backend_metadata_size()

static size_t shss_get_backend_metadata_size ( void *  desc,
int  blocksize 
)
static

Definition at line 289 of file shss.c.

References METADATA.

◆ shss_init()

static void * shss_init ( struct ec_backend_args *  args,
void *  backend_sohandle 
)
static

◆ shss_is_compatible_with()

static bool shss_is_compatible_with ( uint32_t  version)
static

Definition at line 285 of file shss.c.

References backend_shss.

◆ shss_reconstruct()

static int shss_reconstruct ( void *  desc,
char **  data,
char **  parity,
int *  missing_idxs,
int  destination_idx,
int  blocksize 
)
static

Variable Documentation

◆ backend_shss

struct ec_backend_common backend_shss
Initial value:
= {
.id = EC_BACKEND_SHSS,
.name = SHSS_LIB_NAME,
.soname = SHSS_SO_NAME,
.soversion = SHSS_LIB_VER_STR,
.ops = &shss_op_stubs,
}
#define SHSS_LIB_VER_STR
Definition shss.c:63
#define SHSS_SO_NAME
Definition shss.c:68
#define SHSS_LIB_NAME
Definition shss.c:64
struct ec_backend_op_stubs shss_op_stubs
Definition shss.c:293

Definition at line 43 of file shss.c.

Referenced by shss_is_compatible_with().

◆ shss

struct ec_backend shss

Definition at line 41 of file shss.c.

◆ shss_op_stubs

struct ec_backend_op_stubs shss_op_stubs
Initial value:
= {
.INIT = shss_init,
.EXIT = shss_exit,
.ENCODE = shss_encode,
.DECODE = shss_decode,
.FRAGSNEEDED = shss_fragments_needed,
.RECONSTRUCT = shss_reconstruct,
.ELEMENTSIZE = shss_element_size,
.ISCOMPATIBLEWITH = shss_is_compatible_with,
.GETMETADATASIZE = shss_get_backend_metadata_size,
.GETENCODEOFFSET = get_encode_offset_zero,
}
static int shss_decode(void *desc, char **data, char **parity, int *missing_idxs, int blocksize)
Definition shss.c:104
static int shss_fragments_needed(void *desc, int *missing_idxs, int *fragments_to_exclude, int *fragments_needed)
Definition shss.c:180
static int shss_encode(void *desc, char **data, char **parity, int blocksize)
Definition shss.c:73
static int shss_exit(void *desc)
Definition shss.c:277
static void * shss_init(struct ec_backend_args *args, void *backend_sohandle)
Definition shss.c:215
static bool shss_is_compatible_with(uint32_t version)
Definition shss.c:285
static int shss_reconstruct(void *desc, char **data, char **parity, int *missing_idxs, int destination_idx, int blocksize)
Definition shss.c:141
static size_t shss_get_backend_metadata_size(void *desc, int blocksize)
Definition shss.c:289
static int shss_element_size(void *desc)
Return the element-size, which is the number of bits stored on a given device, per codeword.
Definition shss.c:210

Definition at line 293 of file shss.c.

◆ shss_ops

struct ec_backend_op_stubs shss_ops

Definition at line 42 of file shss.c.