summaryrefslogtreecommitdiff
path: root/src/erasurecode.c
diff options
context:
space:
mode:
authorKota Tsuyuzaki <tsuyuzaki.kota@lab.ntt.co.jp>2016-11-03 04:54:19 -0700
committerKota Tsuyuzaki <tsuyuzaki.kota@lab.ntt.co.jp>2016-12-06 17:08:55 -0800
commit8d067ab2f631b147745e5eb3cf85056042c1439e (patch)
treebd2aaa2b70ab17418f9e62eab525aae6425369af /src/erasurecode.c
parent0a2c06b8b446cbe4fda89c18c20b069728c70323 (diff)
downloadliberasurecode-8d067ab2f631b147745e5eb3cf85056042c1439e.tar.gz
ISA-L Cauchy support
This is for supporting ISA-L cauchy based matrix. The difference from isa_l_rs_vand is only the matrix to use the encode/decode calculation. As a known issue, isa_l_rs_vand backend has constraint for the combinations of the available fragment to be able to decode/reconstuct. (See related change in detail) To avoid the constraint, this patch adds another isa-l backend to use cauchy matrix and keep the backward compatibility, this is in another isa_l_rs_cauchy namespace. For implementation consieration, the code is almost same except the matrix generation fucntion so that this patch makes isa_l_common.c file for gathering common fucntions like init/encode/decode/reconstruct. And then the common init funciton takes an extra args "gen_matrix_func_name" for entry point to load the fucntion by dlsym from isa-l .so file. Co-Authored-By: Clay Gerrard <clay.gerrard@gmail.com> Related-Change: Icee788a0931fe692fe0de31fabc4ba450e338a87 Change-Id: I6eb150d9d0c3febf233570fa7729f9f72df2e9be
Diffstat (limited to 'src/erasurecode.c')
-rw-r--r--src/erasurecode.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/erasurecode.c b/src/erasurecode.c
index d3b3cea..58c577a 100644
--- a/src/erasurecode.c
+++ b/src/erasurecode.c
@@ -49,6 +49,7 @@ extern struct ec_backend_common backend_jerasure_rs_cauchy;
extern struct ec_backend_common backend_isa_l_rs_vand;
extern struct ec_backend_common backend_shss;
extern struct ec_backend_common backend_liberasurecode_rs_vand;
+extern struct ec_backend_common backend_isa_l_rs_cauchy;
ec_backend_t ec_backends_supported[] = {
(ec_backend_t) &backend_null,
@@ -58,6 +59,7 @@ ec_backend_t ec_backends_supported[] = {
(ec_backend_t) &backend_isa_l_rs_vand,
(ec_backend_t) &backend_shss,
(ec_backend_t) &backend_liberasurecode_rs_vand,
+ (ec_backend_t) &backend_isa_l_rs_cauchy,
NULL,
};