summaryrefslogtreecommitdiff
path: root/src/backends/isa-l/isa_l_vand.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/isa-l/isa_l_vand.c')
-rw-r--r--src/backends/isa-l/isa_l_vand.c34
1 files changed, 27 insertions, 7 deletions
diff --git a/src/backends/isa-l/isa_l_vand.c b/src/backends/isa-l/isa_l_vand.c
index e7a575e..27a1a99 100644
--- a/src/backends/isa-l/isa_l_vand.c
+++ b/src/backends/isa-l/isa_l_vand.c
@@ -33,9 +33,21 @@
#include "erasurecode_backend.h"
#include "erasurecode_helpers.h"
+#define ISA_L_RS_VAND_LIB_MAJOR 2
+#define ISA_L_RS_VAND_LIB_MINOR 0
+#define ISA_L_RS_VAND_LIB_REV 0
+#define ISA_L_RS_VAND_LIB_VER_STR "2.0"
+#define ISA_L_RS_VAND_LIB_NAME "isa_l_rs_vand"
+#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
+#define ISA_L_RS_VAND_SO_NAME "isa-l.dylib"
+#else
+#define ISA_L_RS_VAND_SO_NAME "isa-l.so"
+#endif
+
/* Forward declarations */
struct ec_backend_op_stubs isa_l_rs_vand_ops;
struct ec_backend isa_l_rs_vand;
+struct ec_backend_common backend_isa_l_rs_vand;
typedef void (*ec_encode_data_func)(int, int, int, unsigned char*, unsigned char **, unsigned char **);
typedef void (*ec_init_tables_func)(int, int, unsigned char*, unsigned char *);
@@ -568,6 +580,14 @@ static int isa_l_rs_vand_exit(void *desc)
return 0;
}
+/*
+ * For the time being, we only claim compatibility with versions that
+ * match exactly
+ */
+static bool isa_l_rs_vand_is_compatible_with(uint32_t version) {
+ return version == backend_isa_l_rs_vand.ec_backend_version;
+}
+
struct ec_backend_op_stubs isa_l_rs_vand_op_stubs = {
.INIT = isa_l_rs_vand_init,
.EXIT = isa_l_rs_vand_exit,
@@ -576,17 +596,17 @@ struct ec_backend_op_stubs isa_l_rs_vand_op_stubs = {
.FRAGSNEEDED = isa_l_rs_vand_min_fragments,
.RECONSTRUCT = isa_l_rs_vand_reconstruct,
.ELEMENTSIZE = isa_l_rs_vand_element_size,
+ .ISCOMPATIBLEWITH = isa_l_rs_vand_is_compatible_with,
};
struct ec_backend_common backend_isa_l_rs_vand = {
.id = EC_BACKEND_ISA_L_RS_VAND,
- .name = "isa_l_rs_vand",
-#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
- .soname = "isa-l.dylib",
-#else
- .soname = "isa-l.so",
-#endif
- .soversion = "2.0",
+ .name = ISA_L_RS_VAND_LIB_NAME,
+ .soname = ISA_L_RS_VAND_SO_NAME,
+ .soversion = ISA_L_RS_VAND_LIB_VER_STR,
.ops = &isa_l_rs_vand_op_stubs,
.metadata_adder = 0,
+ .ec_backend_version = _VERSION(ISA_L_RS_VAND_LIB_MAJOR,
+ ISA_L_RS_VAND_LIB_MINOR,
+ ISA_L_RS_VAND_LIB_REV),
};