decode_rs16 — Decode codeword (16bit data width)


int decode_rs16 (struct rs_control * rs,
 uint16_t * data,
 uint16_t * par,
 int len,
 uint16_t * s,
 int no_eras,
 int * eras_pos,
 uint16_t invmsk,
 uint16_t * corr);


struct rs_control * rs

the rs control structure

uint16_t * data

data field of a given type

uint16_t * par

received parity data field

int len

data length

uint16_t * s

syndrome data field (if NULL, syndrome is calculated)

int no_eras

number of erasures

int * eras_pos

position of erasures, can be NULL

uint16_t invmsk

invert data mask (will be xored on data, not on parity!)

uint16_t * corr

buffer to store correction bitmask on eras_pos


Each field in the data array contains up to symbol size bits of valid data. Returns the number of corrected bits or -EBADMSG for uncorrectable errors.