diff --git a/libXorcode.sym b/libXorcode.sym index d51602f..f635e49 100644 --- a/libXorcode.sym +++ b/libXorcode.sym @@ -1,18 +1,4 @@ -T data_bit_lookup -T does_parity_have_data -T fast_memcpy -T get_failure_pattern -T get_missing_data -T get_missing_parity -T index_of_connected_parity T init_xor_hd_code -T is_data_in_parity -T missing_elements_bm -T num_missing_data_in_parity -T parity_bit_lookup -T remove_from_missing_list -T selective_encode -T xor_bufs_and_store T xor_code_encode T xor_hd_decode T xor_hd_fragments_needed diff --git a/liberasurecode.sym b/liberasurecode.sym index c5936bc..6ceca8d 100644 --- a/liberasurecode.sym +++ b/liberasurecode.sym @@ -1,49 +1,11 @@ -D backend_flat_xor_hd -D backend_isa_l_rs_cauchy -D backend_isa_l_rs_vand -D backend_jerasure_rs_cauchy -D backend_jerasure_rs_vand -D backend_liberasurecode_rs_vand -D backend_libphazr -D backend_null -D backend_shss -T add_fragment_metadata T alloc_and_set_buffer -T alloc_fragment_buffer -T alloc_zeroed_buffer -T check_and_free_buffer -T compute_alg_sig -T destroy_alg_sig -T finalize_fragments_after_encode -T fragments_to_string -T free_fragment_buffer -T get_aligned_buffer16 -T get_aligned_data_size T get_backend_id T get_backend_version -T get_data_ptr_array_from_fragments T get_data_ptr_from_fragment -T get_fragment_backend_metadata_size -T get_fragment_buffer_size -T get_fragment_idx T get_fragment_partition -T get_fragment_payload_size -T get_fragment_ptr_array_from_data -T get_fragment_ptr_from_data -T get_fragment_ptr_from_data_novalidate -T get_fragment_size T get_libec_version -T get_orig_data_size -T init_alg_sig T is_invalid_fragment T is_invalid_fragment_header -T isa_l_common_init -T isa_l_decode -T isa_l_element_size -T isa_l_encode -T isa_l_exit -T isa_l_min_fragments -T isa_l_reconstruct T liberasurecode_backend_available T liberasurecode_backend_instance_get_by_desc T liberasurecode_crc32_alt @@ -64,13 +26,3 @@ T liberasurecode_instance_destroy T liberasurecode_reconstruct_fragment T liberasurecode_verify_fragment_metadata T liberasurecode_verify_stripe_metadata -T prepare_fragments_for_decode -T prepare_fragments_for_encode -T set_backend_id -T set_backend_version -T set_checksum -T set_fragment_backend_metadata_size -T set_fragment_idx -T set_fragment_payload_size -T set_libec_version -T set_orig_data_size diff --git a/liberasurecode_rs_vand.sym b/liberasurecode_rs_vand.sym index 4f71bc5..eed7f1b 100644 --- a/liberasurecode_rs_vand.sym +++ b/liberasurecode_rs_vand.sym @@ -10,8 +10,4 @@ T liberasurecode_rs_vand_encode T liberasurecode_rs_vand_reconstruct T make_systematic_matrix T print_matrix -T rs_galois_deinit_tables -T rs_galois_init_tables -T rs_galois_inverse -T rs_galois_mult T square_matrix_multiply diff --git a/src/backends/isa-l/isa_l_common.c b/src/backends/isa-l/isa_l_common.c index 63e7cca..0e9eb5c 100644 --- a/src/backends/isa-l/isa_l_common.c +++ b/src/backends/isa-l/isa_l_common.c @@ -36,6 +36,7 @@ #include "erasurecode_helpers_ext.h" #include "isa_l_common.h" +__attribute__ ((visibility ("internal"))) int isa_l_encode(void *desc, char **data, char **parity, int blocksize) { @@ -176,6 +177,7 @@ static unsigned char* get_inverse_rows(int k, return inverse_rows; } +__attribute__ ((visibility ("internal"))) int isa_l_decode(void *desc, char **data, char **parity, int *missing_idxs, int blocksize) { @@ -280,6 +282,7 @@ out: return ret; } +__attribute__ ((visibility ("internal"))) int isa_l_reconstruct(void *desc, char **data, char **parity, int *missing_idxs, int destination_idx, int blocksize) { @@ -392,6 +395,7 @@ out: return ret; } +__attribute__ ((visibility ("internal"))) int isa_l_min_fragments(void *desc, int *missing_idxs, int *fragments_to_exclude, int *fragments_needed) { @@ -424,11 +428,13 @@ int isa_l_min_fragments(void *desc, int *missing_idxs, * * Returns the size in bits! */ +__attribute__ ((visibility ("internal"))) int isa_l_element_size(void* desc) { return 8; } +__attribute__ ((visibility ("internal"))) int isa_l_exit(void *desc) { isa_l_descriptor *isa_l_desc = NULL; @@ -443,6 +449,7 @@ int isa_l_exit(void *desc) } +__attribute__ ((visibility ("internal"))) void * isa_l_common_init(struct ec_backend_args *args, void *backend_sohandle, const char* gen_matrix_func_name) { diff --git a/src/backends/isa-l/isa_l_rs_cauchy.c b/src/backends/isa-l/isa_l_rs_cauchy.c index a15f70a..a0bc2da 100644 --- a/src/backends/isa-l/isa_l_rs_cauchy.c +++ b/src/backends/isa-l/isa_l_rs_cauchy.c @@ -73,6 +73,7 @@ static struct ec_backend_op_stubs isa_l_rs_cauchy_op_stubs = { .GETENCODEOFFSET = get_encode_offset_zero, }; +__attribute__ ((visibility ("internal"))) struct ec_backend_common backend_isa_l_rs_cauchy = { .id = EC_BACKEND_ISA_L_RS_CAUCHY, .name = ISA_L_RS_CAUCHY_LIB_NAME, diff --git a/src/backends/isa-l/isa_l_rs_vand.c b/src/backends/isa-l/isa_l_rs_vand.c index 4577276..280f863 100644 --- a/src/backends/isa-l/isa_l_rs_vand.c +++ b/src/backends/isa-l/isa_l_rs_vand.c @@ -72,6 +72,7 @@ static struct ec_backend_op_stubs isa_l_rs_vand_op_stubs = { .GETENCODEOFFSET = get_encode_offset_zero, }; +__attribute__ ((visibility ("internal"))) struct ec_backend_common backend_isa_l_rs_vand = { .id = EC_BACKEND_ISA_L_RS_VAND, .name = ISA_L_RS_VAND_LIB_NAME, diff --git a/src/backends/jerasure/jerasure_rs_cauchy.c b/src/backends/jerasure/jerasure_rs_cauchy.c index d3d68a5..61099d1 100644 --- a/src/backends/jerasure/jerasure_rs_cauchy.c +++ b/src/backends/jerasure/jerasure_rs_cauchy.c @@ -462,6 +462,7 @@ static struct ec_backend_op_stubs jerasure_rs_cauchy_op_stubs = { .GETENCODEOFFSET = get_encode_offset_zero, }; +__attribute__ ((visibility ("internal"))) struct ec_backend_common backend_jerasure_rs_cauchy = { .id = EC_BACKEND_JERASURE_RS_CAUCHY, .name = JERASURE_RS_CAUCHY_LIB_NAME, diff --git a/src/backends/jerasure/jerasure_rs_vand.c b/src/backends/jerasure/jerasure_rs_vand.c index 3702b34..c536c24 100644 --- a/src/backends/jerasure/jerasure_rs_vand.c +++ b/src/backends/jerasure/jerasure_rs_vand.c @@ -370,6 +370,7 @@ static struct ec_backend_op_stubs jerasure_rs_vand_op_stubs = { .GETENCODEOFFSET = get_encode_offset_zero, }; +__attribute__ ((visibility ("internal"))) struct ec_backend_common backend_jerasure_rs_vand = { .id = EC_BACKEND_JERASURE_RS_VAND, .name = JERASURE_RS_VAND_LIB_NAME, diff --git a/src/backends/null/null.c b/src/backends/null/null.c index 5e61c20..1626e5f 100644 --- a/src/backends/null/null.c +++ b/src/backends/null/null.c @@ -226,6 +226,7 @@ static struct ec_backend_op_stubs null_op_stubs = { .GETENCODEOFFSET = get_encode_offset_zero, }; +__attribute__ ((visibility ("internal"))) struct ec_backend_common backend_null = { .id = EC_BACKEND_NULL, .name = NULL_LIB_NAME, diff --git a/src/backends/phazrio/libphazr.c b/src/backends/phazrio/libphazr.c index ce133d5..9b7739a 100644 --- a/src/backends/phazrio/libphazr.c +++ b/src/backends/phazrio/libphazr.c @@ -377,6 +377,7 @@ static struct ec_backend_op_stubs libphazr_op_stubs = { .GETENCODEOFFSET = pio_get_encode_offset, }; +__attribute__ ((visibility ("internal"))) struct ec_backend_common backend_libphazr = { .id = EC_BACKEND_LIBPHAZR, .name = LIBPHAZR_LIB_NAME, diff --git a/src/backends/rs_vand/liberasurecode_rs_vand.c b/src/backends/rs_vand/liberasurecode_rs_vand.c index c79d3fe..ed147e0 100644 --- a/src/backends/rs_vand/liberasurecode_rs_vand.c +++ b/src/backends/rs_vand/liberasurecode_rs_vand.c @@ -300,6 +300,7 @@ static struct ec_backend_op_stubs liberasurecode_rs_vand_op_stubs = { .GETENCODEOFFSET = get_encode_offset_zero, }; +__attribute__ ((visibility ("internal"))) struct ec_backend_common backend_liberasurecode_rs_vand = { .id = EC_BACKEND_LIBERASURECODE_RS_VAND, .name = LIBERASURECODE_RS_VAND_LIB_NAME, diff --git a/src/backends/shss/shss.c b/src/backends/shss/shss.c index e333505..7752e57 100644 --- a/src/backends/shss/shss.c +++ b/src/backends/shss/shss.c @@ -301,6 +301,7 @@ static struct ec_backend_op_stubs shss_op_stubs = { .GETENCODEOFFSET = get_encode_offset_zero, }; +__attribute__ ((visibility ("internal"))) struct ec_backend_common backend_shss = { .id = EC_BACKEND_SHSS, .name = SHSS_LIB_NAME, diff --git a/src/backends/xor/flat_xor_hd.c b/src/backends/xor/flat_xor_hd.c index 6673d06..735a7f9 100644 --- a/src/backends/xor/flat_xor_hd.c +++ b/src/backends/xor/flat_xor_hd.c @@ -180,6 +180,7 @@ static struct ec_backend_op_stubs flat_xor_hd_op_stubs = { .GETENCODEOFFSET = get_encode_offset_zero, }; +__attribute__ ((visibility ("internal"))) struct ec_backend_common backend_flat_xor_hd = { .id = EC_BACKEND_FLAT_XOR_HD, .name = FLAT_XOR_LIB_NAME, diff --git a/src/builtin/rs_vand/rs_galois.c b/src/builtin/rs_vand/rs_galois.c index 4d6c4f9..1cdb121 100644 --- a/src/builtin/rs_vand/rs_galois.c +++ b/src/builtin/rs_vand/rs_galois.c @@ -46,6 +46,7 @@ static int *ilog_table = NULL; static int *ilog_table_begin = NULL; static int init_counter = 0; +__attribute__ ((visibility ("internal"))) void rs_galois_init_tables(void) { if (init_counter++ > 0) { @@ -70,6 +71,7 @@ void rs_galois_init_tables(void) ilog_table = &ilog_table_begin[GROUP_SIZE]; } +__attribute__ ((visibility ("internal"))) void rs_galois_deinit_tables(void) { init_counter--; @@ -87,6 +89,7 @@ void rs_galois_deinit_tables(void) } } +__attribute__ ((visibility ("internal"))) int rs_galois_mult(int x, int y) { int sum; @@ -111,6 +114,7 @@ static int rs_galois_div(int x, int y) return ilog_table[diff]; } +__attribute__ ((visibility ("internal"))) int rs_galois_inverse(int x) { return rs_galois_div(1, x); diff --git a/src/builtin/xor_codes/xor_code.c b/src/builtin/xor_codes/xor_code.c index aa1753c..8d7a875 100644 --- a/src/builtin/xor_codes/xor_code.c +++ b/src/builtin/xor_codes/xor_code.c @@ -40,26 +40,31 @@ static const int g_bit_lookup[] = {0x1, 0x2, 0x4, 0x8, 0x1000000, 0x2000000, 0x4000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000}; +__attribute__ ((visibility ("internal"))) int is_data_in_parity(int data_idx, unsigned int parity_bm) { return ((g_bit_lookup[data_idx] & parity_bm) == g_bit_lookup[data_idx]); } +__attribute__ ((visibility ("internal"))) int does_parity_have_data(int parity_idx, unsigned int data_bm) { return ((g_bit_lookup[parity_idx] & data_bm) == g_bit_lookup[parity_idx]); } +__attribute__ ((visibility ("internal"))) int parity_bit_lookup(xor_code_t *code_desc, int index) { return g_bit_lookup[code_desc->k - index]; } +__attribute__ ((visibility ("internal"))) int data_bit_lookup(xor_code_t *code_desc, int index) { return g_bit_lookup[index]; } +__attribute__ ((visibility ("internal"))) int missing_elements_bm(xor_code_t *code_desc, int *missing_elements, int (*bit_lookup_func)(xor_code_t *code_desc, int index)) { int i = 0; @@ -73,6 +78,7 @@ int missing_elements_bm(xor_code_t *code_desc, int *missing_elements, int (*bit_ return bm; } +__attribute__ ((visibility ("internal"))) failure_pattern_t get_failure_pattern(xor_code_t *code_desc, int *missing_idxs) { int i = 0; @@ -127,6 +133,7 @@ failure_pattern_t get_failure_pattern(xor_code_t *code_desc, int *missing_idxs) return pattern; } +__attribute__ ((visibility ("internal"))) void fast_memcpy(char *dst, char *src, int size) { // Use _mm_stream_si128((__m128i*) _buf2, sum); @@ -138,6 +145,7 @@ void fast_memcpy(char *dst, char *src, int size) * * Store in buf2 (opposite of memcpy convention... Maybe change?) */ +__attribute__ ((visibility ("internal"))) void xor_bufs_and_store(char *buf1, char *buf2, int blocksize) { #ifdef INTEL_SSE2 @@ -190,6 +198,7 @@ void xor_code_encode(xor_code_t *code_desc, char **data, char **parity, int bloc } } +__attribute__ ((visibility ("internal"))) void selective_encode(xor_code_t *code_desc, char **data, char **parity, int *missing_parity, int blocksize) { int i; @@ -205,6 +214,7 @@ void selective_encode(xor_code_t *code_desc, char **data, char **parity, int *mi } } +__attribute__ ((visibility ("internal"))) int * get_missing_parity(xor_code_t *code_desc, int *missing_idxs) { int *missing_parity = (int*)malloc(sizeof(int)*MAX_PARITY); @@ -222,6 +232,7 @@ int * get_missing_parity(xor_code_t *code_desc, int *missing_idxs) return missing_parity; } +__attribute__ ((visibility ("internal"))) int * get_missing_data(xor_code_t *code_desc, int *missing_idxs) { int *missing_data = (int*)malloc(sizeof(int)*MAX_DATA); @@ -306,6 +317,7 @@ void xor_reconstruct_one(xor_code_t *code_desc, char **data, char **parity, int free(missing_parity); } +__attribute__ ((visibility ("internal"))) int num_missing_data_in_parity(xor_code_t *code_desc, int parity_idx, int *missing_data) { int i = 0; @@ -325,6 +337,7 @@ int num_missing_data_in_parity(xor_code_t *code_desc, int parity_idx, int *missi return num_missing_data; } +__attribute__ ((visibility ("internal"))) int index_of_connected_parity(xor_code_t *code_desc, int data_index, int *missing_parity, int *missing_data) { int parity_index = -1; @@ -360,6 +373,7 @@ int index_of_connected_parity(xor_code_t *code_desc, int data_index, int *missin return parity_index > -1 ? parity_index + code_desc->k : parity_index; } +__attribute__ ((visibility ("internal"))) void remove_from_missing_list(int element, int *missing_list) { int i = 0; diff --git a/src/erasurecode_helpers.c b/src/erasurecode_helpers.c index b38fd81..7ad6343 100644 --- a/src/erasurecode_helpers.c +++ b/src/erasurecode_helpers.c @@ -58,6 +58,7 @@ static bool is_fragment(char *buf) * The following methods provide wrappers for allocating and deallocating * memory. */ +__attribute__ ((visibility ("internal"))) void *get_aligned_buffer16(int size) { void *buf; @@ -81,6 +82,7 @@ void *get_aligned_buffer16(int size) * @param size integer size in bytes of buffer to allocate * @return pointer to start of allocated buffer or NULL on error */ +__attribute__ ((visibility ("internal"))) void * alloc_zeroed_buffer(int size) { return alloc_and_set_buffer(size, 0); @@ -113,6 +115,7 @@ void * alloc_and_set_buffer(int size, int value) { * * @return NULL */ +__attribute__ ((visibility ("internal"))) void * check_and_free_buffer(void * buf) { if (buf) @@ -120,6 +123,7 @@ void * check_and_free_buffer(void * buf) return NULL; } +__attribute__ ((visibility ("internal"))) char *alloc_fragment_buffer(int size) { char *buf; @@ -136,6 +140,7 @@ char *alloc_fragment_buffer(int size) return buf; } +__attribute__ ((visibility ("internal"))) int free_fragment_buffer(char *buf) { fragment_header_t *header; @@ -165,6 +170,7 @@ int free_fragment_buffer(char *buf) * * @return fragment size on disk */ +__attribute__ ((visibility ("internal"))) uint64_t get_fragment_size(char *buf) { @@ -182,6 +188,7 @@ uint64_t get_fragment_size(char *buf) * @param data_len - integer length of data in bytes * @return integer data length aligned with wordsize of EC algorithm */ +__attribute__ ((visibility ("internal"))) int get_aligned_data_size(ec_backend_t instance, int data_len) { int k = instance->args.uargs.k; @@ -215,6 +222,7 @@ char *get_data_ptr_from_fragment(char *buf) return buf; } +__attribute__ ((visibility ("internal"))) int get_data_ptr_array_from_fragments(char **data_array, char **fragments, int num_fragments) { @@ -231,6 +239,7 @@ int get_data_ptr_array_from_fragments(char **data_array, char **fragments, return num; } +__attribute__ ((visibility ("internal"))) int get_fragment_ptr_array_from_data(char **frag_array, char **data, int num_data) { @@ -247,6 +256,7 @@ int get_fragment_ptr_array_from_data(char **frag_array, char **data, return num; } +__attribute__ ((visibility ("internal"))) char *get_fragment_ptr_from_data_novalidate(char *buf) { buf -= sizeof(fragment_header_t); @@ -254,6 +264,7 @@ char *get_fragment_ptr_from_data_novalidate(char *buf) return buf; } +__attribute__ ((visibility ("internal"))) char *get_fragment_ptr_from_data(char *buf) { fragment_header_t *header; @@ -272,6 +283,7 @@ char *get_fragment_ptr_from_data(char *buf) /* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */ +__attribute__ ((visibility ("internal"))) int set_fragment_idx(char *buf, int idx) { fragment_header_t *header = (fragment_header_t *) buf; @@ -287,6 +299,7 @@ int set_fragment_idx(char *buf, int idx) return 0; } +__attribute__ ((visibility ("internal"))) int get_fragment_idx(char *buf) { fragment_header_t *header = (fragment_header_t *) buf; @@ -300,6 +313,7 @@ int get_fragment_idx(char *buf) return header->meta.idx; } +__attribute__ ((visibility ("internal"))) int set_fragment_payload_size(char *buf, int size) { fragment_header_t *header = (fragment_header_t *) buf; @@ -315,6 +329,7 @@ int set_fragment_payload_size(char *buf, int size) return 0; } +__attribute__ ((visibility ("internal"))) int get_fragment_payload_size(char *buf) { fragment_header_t *header = (fragment_header_t *) buf; @@ -328,6 +343,7 @@ int get_fragment_payload_size(char *buf) return header->meta.size; } +__attribute__ ((visibility ("internal"))) int set_fragment_backend_metadata_size(char *buf, int size) { fragment_header_t *header = (fragment_header_t *) buf; @@ -343,6 +359,7 @@ int set_fragment_backend_metadata_size(char *buf, int size) return 0; } +__attribute__ ((visibility ("internal"))) int get_fragment_backend_metadata_size(char *buf) { fragment_header_t *header = (fragment_header_t *) buf; @@ -356,6 +373,7 @@ int get_fragment_backend_metadata_size(char *buf) return header->meta.frag_backend_metadata_size; } +__attribute__ ((visibility ("internal"))) int get_fragment_buffer_size(char *buf) { fragment_header_t *header = (fragment_header_t *) buf; @@ -369,6 +387,7 @@ int get_fragment_buffer_size(char *buf) return header->meta.size + header->meta.frag_backend_metadata_size; } +__attribute__ ((visibility ("internal"))) int set_orig_data_size(char *buf, int orig_data_size) { fragment_header_t *header = (fragment_header_t *) buf; @@ -384,6 +403,7 @@ int set_orig_data_size(char *buf, int orig_data_size) return 0; } +__attribute__ ((visibility ("internal"))) int get_orig_data_size(char *buf) { fragment_header_t *header = (fragment_header_t *) buf; @@ -397,6 +417,7 @@ int get_orig_data_size(char *buf) return header->meta.orig_data_size; } +__attribute__ ((visibility ("internal"))) int set_libec_version(char *buf) { if (!is_fragment(buf)) { @@ -417,6 +438,7 @@ int get_libec_version(char *buf, uint32_t *ver) return 0; } +__attribute__ ((visibility ("internal"))) int set_backend_id(char *buf, ec_backend_id_t id) { if (!is_fragment(buf)) { @@ -437,6 +459,7 @@ int get_backend_id(char *buf, ec_backend_id_t *id) return 0; } +__attribute__ ((visibility ("internal"))) int set_backend_version(char *buf, uint32_t version) { if (!is_fragment(buf)) { @@ -459,6 +482,7 @@ int get_backend_version(char *buf, uint32_t *version) /* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */ +__attribute__ ((visibility ("internal"))) inline int set_checksum(ec_checksum_type_t ct, char *buf, int blocksize) { fragment_header_t* header = (fragment_header_t*) buf; diff --git a/src/erasurecode_postprocessing.c b/src/erasurecode_postprocessing.c index f665e60..4affb67 100644 --- a/src/erasurecode_postprocessing.c +++ b/src/erasurecode_postprocessing.c @@ -34,6 +34,7 @@ #include "erasurecode_stdinc.h" #include "alg_sig.h" +__attribute__ ((visibility ("internal"))) 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) @@ -70,6 +71,7 @@ void add_fragment_metadata(ec_backend_t be, char *fragment, } } +__attribute__ ((visibility ("internal"))) 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) diff --git a/src/erasurecode_preprocessing.c b/src/erasurecode_preprocessing.c index 57d13b5..aff4502 100644 --- a/src/erasurecode_preprocessing.c +++ b/src/erasurecode_preprocessing.c @@ -33,6 +33,7 @@ #include "erasurecode_preprocessing.h" #include "erasurecode_stdinc.h" +__attribute__ ((visibility ("internal"))) int prepare_fragments_for_encode(ec_backend_t instance, int k, int m, const char *orig_data, uint64_t orig_data_size, /* input */ @@ -117,6 +118,7 @@ out_error: * case, the caller has to free up in the success case, so it may as well do * so in the failure case. */ +__attribute__ ((visibility ("internal"))) int prepare_fragments_for_decode( int k, int m, char **data, char **parity, @@ -277,6 +279,7 @@ int get_fragment_partition( return (num_missing > m) ? -EINSUFFFRAGS : 0; } +__attribute__ ((visibility ("internal"))) int fragments_to_string(int k, int m, char **fragments, int num_fragments, char **orig_payload, uint64_t *payload_len) diff --git a/src/utils/chksum/alg_sig.c b/src/utils/chksum/alg_sig.c index f8d0e39..c016dd8 100644 --- a/src/utils/chksum/alg_sig.c +++ b/src/utils/chksum/alg_sig.c @@ -213,6 +213,7 @@ alg_sig_t *init_alg_sig_w16(void *jerasure_sohandle, int sig_len) return alg_sig_handle; } +__attribute__ ((visibility ("internal"))) alg_sig_t *init_alg_sig(int sig_len, int gf_w) { int i=0; @@ -243,6 +244,7 @@ alg_sig_t *init_alg_sig(int sig_len, int gf_w) return NULL; } +__attribute__ ((visibility ("internal"))) void destroy_alg_sig(alg_sig_t* alg_sig_handle) { if (alg_sig_handle == NULL) { @@ -422,6 +424,7 @@ int compute_alg_sig_64(alg_sig_t *alg_sig_handle, char *buf, int len, char *sig) return -1; } +__attribute__ ((visibility ("internal"))) int compute_alg_sig(alg_sig_t *alg_sig_handle, char *buf, int len, char *sig) { if (alg_sig_handle->sig_len == 32) {