File rs_codec_core.h¶
File List > inc > rs_codec > rs_codec_core.h
Go to the documentation of this file
#ifndef RS_CODEC_CORE_H
#define RS_CODEC_CORE_H
#include "clib_common.h"
#include "jm_perf.h"
#include "rs/rs_core.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct
{
rs_t rs;
/*<<property_struct_fields>>*/
} rs_codec_state_t;
rs_codec_state_t *rs_codec_create (uint32_t nroots, uint32_t symbol_bits,
uint32_t field_poly, uint32_t first_root,
uint32_t root_stride);
void rs_codec_destroy (rs_codec_state_t *state);
size_t rs_codec_encode_max_out (rs_codec_state_t *state, size_t n_in);
size_t rs_codec_encode (rs_codec_state_t *state, const uint8_t *in,
size_t n_in, uint8_t *out, size_t max_out);
int rs_codec_decode (rs_codec_state_t *state, uint8_t *codeword,
size_t codeword_len);
size_t rs_codec_syndromes_max_out (rs_codec_state_t *state, size_t n_in);
size_t rs_codec_syndromes (rs_codec_state_t *state, const uint8_t *in,
size_t n_in, uint8_t *out, size_t max_out);
int rs_codec_codeword_ok (rs_codec_state_t *state, const uint8_t *codeword,
size_t codeword_len);
size_t rs_codec_generator (rs_codec_state_t *state, uint8_t *out,
size_t out_len);
size_t rs_codec_get_n (const rs_codec_state_t *state);
size_t rs_codec_get_k (const rs_codec_state_t *state);
size_t rs_codec_get_e (const rs_codec_state_t *state);
size_t rs_codec_get_nroots (const rs_codec_state_t *state);
size_t rs_codec_get_symbol_bits (const rs_codec_state_t *state);
#ifdef __cplusplus
}
#endif
#endif /* RS_CODEC_CORE_H */