diff --git a/lib/arch/avx/codec.c b/lib/arch/avx/codec.c index b80276b2..c9b9e181 100644 --- a/lib/arch/avx/codec.c +++ b/lib/arch/avx/codec.c @@ -33,7 +33,8 @@ #endif // HAVE_AVX -BASE64_ENC_FUNCTION(avx) +void +base64_stream_encode_avx BASE64_ENC_PARAMS { #if HAVE_AVX #include "../generic/enc_head.c" @@ -54,7 +55,8 @@ BASE64_ENC_FUNCTION(avx) #endif } -BASE64_DEC_FUNCTION(avx) +int +base64_stream_decode_avx BASE64_DEC_PARAMS { #if HAVE_AVX #include "../generic/dec_head.c" diff --git a/lib/arch/avx2/codec.c b/lib/arch/avx2/codec.c index eff56f18..638815a3 100644 --- a/lib/arch/avx2/codec.c +++ b/lib/arch/avx2/codec.c @@ -33,7 +33,8 @@ #endif // HAVE_AVX2 -BASE64_ENC_FUNCTION(avx2) +void +base64_stream_encode_avx2 BASE64_ENC_PARAMS { #if HAVE_AVX2 #include "../generic/enc_head.c" @@ -44,7 +45,8 @@ BASE64_ENC_FUNCTION(avx2) #endif } -BASE64_DEC_FUNCTION(avx2) +int +base64_stream_decode_avx2 BASE64_DEC_PARAMS { #if HAVE_AVX2 #include "../generic/dec_head.c" diff --git a/lib/arch/avx512/codec.c b/lib/arch/avx512/codec.c index cd44a4e0..9667ae51 100644 --- a/lib/arch/avx512/codec.c +++ b/lib/arch/avx512/codec.c @@ -18,7 +18,8 @@ #endif // HAVE_AVX512 -BASE64_ENC_FUNCTION(avx512) +void +base64_stream_encode_avx512 BASE64_ENC_PARAMS { #if HAVE_AVX512 #include "../generic/enc_head.c" @@ -30,7 +31,8 @@ BASE64_ENC_FUNCTION(avx512) } // Reuse AVX2 decoding. Not supporting AVX512 at present -BASE64_DEC_FUNCTION(avx512) +int +base64_stream_decode_avx512 BASE64_DEC_PARAMS { #if HAVE_AVX512 #include "../generic/dec_head.c" diff --git a/lib/arch/generic/codec.c b/lib/arch/generic/codec.c index 8dd5af23..303e6245 100644 --- a/lib/arch/generic/codec.c +++ b/lib/arch/generic/codec.c @@ -18,7 +18,8 @@ # include "32/dec_loop.c" #endif -BASE64_ENC_FUNCTION(plain) +void +base64_stream_encode_plain BASE64_ENC_PARAMS { #include "enc_head.c" #if BASE64_WORDSIZE == 32 @@ -29,7 +30,8 @@ BASE64_ENC_FUNCTION(plain) #include "enc_tail.c" } -BASE64_DEC_FUNCTION(plain) +int +base64_stream_decode_plain BASE64_DEC_PARAMS { #include "dec_head.c" #if BASE64_WORDSIZE >= 32 diff --git a/lib/arch/neon32/codec.c b/lib/arch/neon32/codec.c index 2727f3d9..70c80e48 100644 --- a/lib/arch/neon32/codec.c +++ b/lib/arch/neon32/codec.c @@ -52,7 +52,8 @@ vqtbl1q_u8 (const uint8x16_t lut, const uint8x16_t indices) // (48 bytes encode, 32 bytes decode) that we inline the // uint32 codec to stay performant on smaller inputs. -BASE64_ENC_FUNCTION(neon32) +void +base64_stream_encode_neon32 BASE64_ENC_PARAMS { #ifdef BASE64_USE_NEON32 #include "../generic/enc_head.c" @@ -64,7 +65,8 @@ BASE64_ENC_FUNCTION(neon32) #endif } -BASE64_DEC_FUNCTION(neon32) +int +base64_stream_decode_neon32 BASE64_DEC_PARAMS { #ifdef BASE64_USE_NEON32 #include "../generic/dec_head.c" diff --git a/lib/arch/neon64/codec.c b/lib/arch/neon64/codec.c index 2a22b937..f5cda63e 100644 --- a/lib/arch/neon64/codec.c +++ b/lib/arch/neon64/codec.c @@ -72,7 +72,8 @@ load_64byte_table (const uint8_t *p) // (48 bytes encode, 64 bytes decode) that we inline the // uint64 codec to stay performant on smaller inputs. -BASE64_ENC_FUNCTION(neon64) +void +base64_stream_encode_neon64 BASE64_ENC_PARAMS { #ifdef BASE64_USE_NEON64 #include "../generic/enc_head.c" @@ -84,7 +85,8 @@ BASE64_ENC_FUNCTION(neon64) #endif } -BASE64_DEC_FUNCTION(neon64) +int +base64_stream_decode_neon64 BASE64_DEC_PARAMS { #ifdef BASE64_USE_NEON64 #include "../generic/dec_head.c" diff --git a/lib/arch/sse41/codec.c b/lib/arch/sse41/codec.c index 33c675a1..54dae585 100644 --- a/lib/arch/sse41/codec.c +++ b/lib/arch/sse41/codec.c @@ -33,7 +33,8 @@ #endif // HAVE_SSE41 -BASE64_ENC_FUNCTION(sse41) +void +base64_stream_encode_sse41 BASE64_ENC_PARAMS { #if HAVE_SSE41 #include "../generic/enc_head.c" @@ -44,7 +45,8 @@ BASE64_ENC_FUNCTION(sse41) #endif } -BASE64_DEC_FUNCTION(sse41) +int +base64_stream_decode_sse41 BASE64_DEC_PARAMS { #if HAVE_SSE41 #include "../generic/dec_head.c" diff --git a/lib/arch/sse42/codec.c b/lib/arch/sse42/codec.c index cdfec7e9..daa0b587 100644 --- a/lib/arch/sse42/codec.c +++ b/lib/arch/sse42/codec.c @@ -33,7 +33,8 @@ #endif // HAVE_SSE42 -BASE64_ENC_FUNCTION(sse42) +void +base64_stream_encode_sse42 BASE64_ENC_PARAMS { #if HAVE_SSE42 #include "../generic/enc_head.c" @@ -44,7 +45,8 @@ BASE64_ENC_FUNCTION(sse42) #endif } -BASE64_DEC_FUNCTION(sse42) +int +base64_stream_decode_sse42 BASE64_DEC_PARAMS { #if HAVE_SSE42 #include "../generic/dec_head.c" diff --git a/lib/arch/ssse3/codec.c b/lib/arch/ssse3/codec.c index 59b07a36..9d210e79 100644 --- a/lib/arch/ssse3/codec.c +++ b/lib/arch/ssse3/codec.c @@ -35,7 +35,8 @@ #endif // HAVE_SSSE3 -BASE64_ENC_FUNCTION(ssse3) +void +base64_stream_encode_ssse3 BASE64_ENC_PARAMS { #if HAVE_SSSE3 #include "../generic/enc_head.c" @@ -46,7 +47,8 @@ BASE64_ENC_FUNCTION(ssse3) #endif } -BASE64_DEC_FUNCTION(ssse3) +int +base64_stream_decode_ssse3 BASE64_DEC_PARAMS { #if HAVE_SSSE3 #include "../generic/dec_head.c" diff --git a/lib/codec_choose.c b/lib/codec_choose.c index abef3f2a..756f8015 100644 --- a/lib/codec_choose.c +++ b/lib/codec_choose.c @@ -78,9 +78,9 @@ #endif // Function declarations: -#define BASE64_CODEC_FUNCS(arch) \ - BASE64_ENC_FUNCTION(arch); \ - BASE64_DEC_FUNCTION(arch); \ +#define BASE64_CODEC_FUNCS(arch) \ + extern void base64_stream_encode_ ## arch BASE64_ENC_PARAMS; \ + extern int base64_stream_decode_ ## arch BASE64_DEC_PARAMS; BASE64_CODEC_FUNCS(avx512) BASE64_CODEC_FUNCS(avx2) diff --git a/lib/codecs.h b/lib/codecs.h index e2dddaea..f6af0e73 100644 --- a/lib/codecs.h +++ b/lib/codecs.h @@ -18,18 +18,6 @@ , size_t *outlen \ ) -// Function signature for encoding functions: -#define BASE64_ENC_FUNCTION(arch) \ - void \ - base64_stream_encode_ ## arch \ - BASE64_ENC_PARAMS - -// Function signature for decoding functions: -#define BASE64_DEC_FUNCTION(arch) \ - int \ - base64_stream_decode_ ## arch \ - BASE64_DEC_PARAMS - // This function is used as a stub when a certain encoder is not compiled in. // It discards the inputs and returns zero output bytes. static inline void