summaryrefslogtreecommitdiff
path: root/include/erasurecode/erasurecode_backend.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/erasurecode/erasurecode_backend.h')
-rw-r--r--include/erasurecode/erasurecode_backend.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/erasurecode/erasurecode_backend.h b/include/erasurecode/erasurecode_backend.h
index 956b2f1..66e858b 100644
--- a/include/erasurecode/erasurecode_backend.h
+++ b/include/erasurecode/erasurecode_backend.h
@@ -63,6 +63,7 @@ struct ec_backend_args {
#define FRAGSNEEDED fragments_needed
#define RECONSTRUCT reconstruct
#define ELEMENTSIZE element_size
+#define ISCOMPATIBLEWITH is_compatible_with
#define FN_NAME(s) str(s)
#define str(s) #s
@@ -88,6 +89,8 @@ struct ec_backend_op_stubs {
char **data, char **parity, int *missing_idxs, int destination_idx,
int blocksize);
int (*ELEMENTSIZE)(void *desc);
+
+ bool (*ISCOMPATIBLEWITH) (uint32_t version);
};
/* ==~=*=~==~=*=~==~=*=~= backend struct definitions =~=*=~==~=*=~==~=*==~== */
@@ -110,6 +113,11 @@ struct ec_backend_common {
* metadata_adder bytes are added to
* the fragment size when allocating
* data/parity fragment buffers */
+ uint32_t ec_backend_version; /* The revision number of this back
+ * end. Is used to determine whether
+ * a specific instance of this backend
+ * accepts fragments generated by
+ * another version */
};
/* EC backend definition */