38 int idx, uint64_t orig_data_size,
int blocksize,
39 ec_checksum_type_t ct,
int add_chksum)
49 be->desc.backend_desc,
56 fragment_header_t* header = (fragment_header_t*) fragment;
58 if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
59 log_error(
"Invalid fragment header (add fragment metadata)!\n");
63 char *flag = getenv(
"LIBERASURECODE_WRITE_LEGACY_CRC");
64 if (flag && !(flag[0] ==
'\0' || (flag[0] ==
'0' && flag[1] ==
'\0'))) {
66 0, &header->meta,
sizeof(fragment_metadata_t));
68 header->metadata_chksum = crc32(0, (
unsigned char *) &header->meta,
69 sizeof(fragment_metadata_t));
74 int k,
int m,
int blocksize, uint64_t orig_data_size,
75 char **encoded_data,
char **encoded_parity)
77 int i, set_chksum = 1;
78 ec_checksum_type_t ct = instance->args.uargs.ct;
81 for (i = 0; i < k; i++) {
84 blocksize, ct, set_chksum);
85 encoded_data[i] = fragment;
89 for (i = 0; i < m; i++) {
92 blocksize, ct, set_chksum);
93 encoded_parity[i] = fragment;
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)