diff options
Diffstat (limited to 'src/backends/isa-l/isa_l_vand.c')
-rw-r--r-- | src/backends/isa-l/isa_l_vand.c | 34 |
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), }; |