30 #include "erasurecode_backend.h"
31 #include "erasurecode_helpers.h"
32 #include "erasurecode_helpers_ext.h"
33 #include "erasurecode_log.h"
34 #include "erasurecode_stdinc.h"
37 int idx, uint64_t orig_data_size,
int blocksize,
38 ec_checksum_type_t ct,
int add_chksum)
48 be->desc.backend_desc,
55 fragment_header_t* header = (fragment_header_t*) fragment;
57 if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
58 log_error(
"Invalid fragment header (add fragment metadata)!\n");
62 header->metadata_chksum = crc32(0, (
unsigned char *) &header->meta,
63 sizeof(fragment_metadata_t));
67 int k,
int m,
int blocksize, uint64_t orig_data_size,
68 char **encoded_data,
char **encoded_parity)
70 int i, set_chksum = 1;
71 ec_checksum_type_t ct = instance->args.uargs.ct;
74 for (i = 0; i < k; i++) {
77 blocksize, ct, set_chksum);
78 encoded_data[i] = fragment;
82 for (i = 0; i < m; i++) {
85 blocksize, ct, set_chksum);
86 encoded_parity[i] = fragment;
int set_fragment_payload_size(char *buf, int size)
int set_checksum(ec_checksum_type_t ct, char *buf, int blocksize)
int set_fragment_idx(char *buf, int idx)
char * get_fragment_ptr_from_data(char *buf)
int set_fragment_backend_metadata_size(char *buf, int size)
int set_libec_version(char *buf)
int set_backend_id(char *buf, ec_backend_id_t id)
int set_orig_data_size(char *buf, int orig_data_size)
int set_backend_version(char *buf, uint32_t version)
void add_fragment_metadata(ec_backend_t be, char *fragment, int idx, uint64_t orig_data_size, int blocksize, ec_checksum_type_t ct, int add_chksum)
int finalize_fragments_after_encode(ec_backend_t instance, int k, int m, int blocksize, uint64_t orig_data_size, char **encoded_data, char **encoded_parity)