diff --git a/Makefile.am b/Makefile.am index f78c38edc..73382f86e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -133,6 +133,7 @@ cstyle: ! -name 'zfs_config.*' ! -name '*.mod.c' \ ! -name 'opt_global.h' ! -name '*_if*.h' \ ! -name 'zstd_compat_wrapper.h' \ + ! -path './module/zstd/zstd-in.c' \ ! -path './module/zstd/lib/*' \ ! -path './include/sys/lua/*' \ ! -path './module/lua/l*.[ch]' \ diff --git a/lib/libzstd/Makefile.am b/lib/libzstd/Makefile.am index 0788342d9..73c5ac749 100644 --- a/lib/libzstd/Makefile.am +++ b/lib/libzstd/Makefile.am @@ -26,10 +26,16 @@ nodist_libzstd_la_SOURCES = \ module/zstd/lib/compress/zstd_lazy.c \ module/zstd/lib/compress/zstd_ldm.c \ module/zstd/lib/compress/zstd_opt.c \ + module/zstd/lib/compress/zstd_preSplit.c \ module/zstd/lib/decompress/huf_decompress.c \ module/zstd/lib/decompress/zstd_ddict.c \ module/zstd/lib/decompress/zstd_decompress.c \ module/zstd/lib/decompress/zstd_decompress_block.c \ module/zstd/zfs_zstd.c +if TARGET_CPU_X86_64 +nodist_libzstd_la_SOURCES += \ + module/zstd/lib/decompress/huf_decompress_amd64.S +endif + libzstd_la_CFLAGS += -include $(top_srcdir)/module/zstd/include/zstd_compat_wrapper.h -fno-tree-vectorize -Wp,-w $(AM_CFLAGS) diff --git a/module/Kbuild.in b/module/Kbuild.in index fd91c7a5c..de093df3d 100644 --- a/module/Kbuild.in +++ b/module/Kbuild.in @@ -265,6 +265,15 @@ ZFS_ZSTD_FLAGS += -U__BMI__ # Quiet warnings about frame size due to unused code in unmodified zstd lib ZFS_ZSTD_FLAGS += -Wframe-larger-than=20480 +# Disable assembly for kernel compatibility +ZFS_ZSTD_FLAGS += -DZSTD_DISABLE_ASM + +# Disable intrinsics for EL10 x86_64-v3 baseline +ZFS_ZSTD_FLAGS += -DZSTD_NO_INTRINSICS + +# Disable tracing for kernel builds +ZFS_ZSTD_FLAGS += -DZSTD_TRACE=0 + ZSTD_OBJS := \ zfs_zstd.o \ zstd_sparc.o @@ -287,6 +296,7 @@ ZSTD_UPSTREAM_OBJS := \ lib/compress/zstd_lazy.o \ lib/compress/zstd_ldm.o \ lib/compress/zstd_opt.o \ + lib/compress/zstd_preSplit.o \ lib/decompress/huf_decompress.o \ lib/decompress/zstd_ddict.o \ lib/decompress/zstd_decompress.o \ diff --git a/module/Makefile.bsd b/module/Makefile.bsd index e93f3c35a..7a1bef646 100644 --- a/module/Makefile.bsd +++ b/module/Makefile.bsd @@ -384,7 +384,6 @@ SRCS+= entropy_common.c \ error_private.c \ fse_decompress.c \ pool.c \ - xxhash.c \ zstd_common.c \ #zstd/compress @@ -399,7 +398,8 @@ SRCS+= fse_compress.c \ zstd_fast.c \ zstd_lazy.c \ zstd_ldm.c \ - zstd_opt.c + zstd_opt.c \ + zstd_preSplit.c #zstd/decompress SRCS+= huf_decompress.c \ diff --git a/module/zstd/include/zstd_compat_wrapper.h b/module/zstd/include/zstd_compat_wrapper.h index 51e67ab6b..b7ff1e9b0 100644 --- a/module/zstd/include/zstd_compat_wrapper.h +++ b/module/zstd/include/zstd_compat_wrapper.h @@ -62,87 +62,197 @@ #define FSE_getErrorName zfs_FSE_getErrorName #define FSE_isError zfs_FSE_isError #define FSE_readNCount zfs_FSE_readNCount +#define FSE_readNCount_bmi2 zfs_FSE_readNCount_bmi2 #define FSE_versionNumber zfs_FSE_versionNumber #define HUF_getErrorName zfs_HUF_getErrorName #define HUF_isError zfs_HUF_isError #define HUF_readStats zfs_HUF_readStats +#define HUF_readStats_wksp zfs_HUF_readStats_wksp /* lib/common/error_private.o: */ #define ERR_getErrorString zfs_ERR_getErrorString /* lib/common/fse_decompress.o: */ -#define FSE_buildDTable_raw zfs_FSE_buildDTable_raw -#define FSE_buildDTable_rle zfs_FSE_buildDTable_rle -#define FSE_buildDTable zfs_FSE_buildDTable -#define FSE_decompress_usingDTable zfs_FSE_decompress_usingDTable -#define FSE_decompress_wksp zfs_FSE_decompress_wksp -#define FSE_decompress zfs_FSE_decompress +#define FSE_buildDTable_wksp zfs_FSE_buildDTable_wksp +#define FSE_decompress_wksp_bmi2 zfs_FSE_decompress_wksp_bmi2 /* lib/common/pool.o: */ #define POOL_add zfs_POOL_add -#define POOL_create_advanced zfs_POOL_create_advanced #define POOL_create zfs_POOL_create +#define POOL_create_advanced zfs_POOL_create_advanced #define POOL_free zfs_POOL_free +#define POOL_joinJobs zfs_POOL_joinJobs #define POOL_resize zfs_POOL_resize #define POOL_sizeof zfs_POOL_sizeof #define POOL_tryAdd zfs_POOL_tryAdd /* lib/common/zstd_common.o: */ -#define ZSTD_calloc zfs_ZSTD_calloc -#define ZSTD_free zfs_ZSTD_free #define ZSTD_getErrorCode zfs_ZSTD_getErrorCode #define ZSTD_getErrorName zfs_ZSTD_getErrorName #define ZSTD_getErrorString zfs_ZSTD_getErrorString #define ZSTD_isError zfs_ZSTD_isError -#define ZSTD_malloc zfs_ZSTD_malloc #define ZSTD_versionNumber zfs_ZSTD_versionNumber #define ZSTD_versionString zfs_ZSTD_versionString /* lib/compress/fse_compress.o: */ -#define FSE_buildCTable_raw zfs_FSE_buildCTable_raw +#define FSE_NCountWriteBound zfs_FSE_NCountWriteBound #define FSE_buildCTable_rle zfs_FSE_buildCTable_rle #define FSE_buildCTable_wksp zfs_FSE_buildCTable_wksp -#define FSE_buildCTable zfs_FSE_buildCTable -#define FSE_compress2 zfs_FSE_compress2 #define FSE_compressBound zfs_FSE_compressBound #define FSE_compress_usingCTable zfs_FSE_compress_usingCTable -#define FSE_compress_wksp zfs_FSE_compress_wksp -#define FSE_compress zfs_FSE_compress -#define FSE_createCTable zfs_FSE_createCTable -#define FSE_freeCTable zfs_FSE_freeCTable -#define FSE_NCountWriteBound zfs_FSE_NCountWriteBound #define FSE_normalizeCount zfs_FSE_normalizeCount -#define FSE_optimalTableLog_internal zfs_FSE_optimalTableLog_internal #define FSE_optimalTableLog zfs_FSE_optimalTableLog +#define FSE_optimalTableLog_internal zfs_FSE_optimalTableLog_internal #define FSE_writeNCount zfs_FSE_writeNCount /* lib/compress/hist.o: */ -#define HIST_countFast_wksp zfs_HIST_countFast_wksp +#define HIST_add zfs_HIST_add +#define HIST_count zfs_HIST_count #define HIST_countFast zfs_HIST_countFast +#define HIST_countFast_wksp zfs_HIST_countFast_wksp #define HIST_count_simple zfs_HIST_count_simple #define HIST_count_wksp zfs_HIST_count_wksp -#define HIST_count zfs_HIST_count #define HIST_isError zfs_HIST_isError /* lib/compress/huf_compress.o: */ #define HUF_buildCTable_wksp zfs_HUF_buildCTable_wksp -#define HUF_buildCTable zfs_HUF_buildCTable +#define HUF_cardinality zfs_HUF_cardinality #define HUF_compress1X_repeat zfs_HUF_compress1X_repeat #define HUF_compress1X_usingCTable zfs_HUF_compress1X_usingCTable -#define HUF_compress1X_wksp zfs_HUF_compress1X_wksp -#define HUF_compress1X zfs_HUF_compress1X -#define HUF_compress2 zfs_HUF_compress2 #define HUF_compress4X_repeat zfs_HUF_compress4X_repeat #define HUF_compress4X_usingCTable zfs_HUF_compress4X_usingCTable -#define HUF_compress4X_wksp zfs_HUF_compress4X_wksp #define HUF_compressBound zfs_HUF_compressBound -#define HUF_compress zfs_HUF_compress #define HUF_estimateCompressedSize zfs_HUF_estimateCompressedSize -#define HUF_getNbBits zfs_HUF_getNbBits +#define HUF_getNbBitsFromCTable zfs_HUF_getNbBitsFromCTable +#define HUF_minTableLog zfs_HUF_minTableLog #define HUF_optimalTableLog zfs_HUF_optimalTableLog #define HUF_readCTable zfs_HUF_readCTable +#define HUF_readCTableHeader zfs_HUF_readCTableHeader #define HUF_validateCTable zfs_HUF_validateCTable -#define HUF_writeCTable zfs_HUF_writeCTable +#define HUF_writeCTable_wksp zfs_HUF_writeCTable_wksp + +/* lib/compress/zstd_compress.o: */ +#define ZSTD_CCtxParams_getParameter zfs_ZSTD_CCtxParams_getParameter +#define ZSTD_CCtxParams_init zfs_ZSTD_CCtxParams_init +#define ZSTD_CCtxParams_init_advanced zfs_ZSTD_CCtxParams_init_advanced +#define ZSTD_CCtxParams_registerSequenceProducer zfs_ZSTD_CCtxParams_registerSequenceProducer +#define ZSTD_CCtxParams_reset zfs_ZSTD_CCtxParams_reset +#define ZSTD_CCtxParams_setParameter zfs_ZSTD_CCtxParams_setParameter +#define ZSTD_CCtx_getParameter zfs_ZSTD_CCtx_getParameter +#define ZSTD_CCtx_loadDictionary zfs_ZSTD_CCtx_loadDictionary +#define ZSTD_CCtx_loadDictionary_advanced zfs_ZSTD_CCtx_loadDictionary_advanced +#define ZSTD_CCtx_loadDictionary_byReference zfs_ZSTD_CCtx_loadDictionary_byReference +#define ZSTD_CCtx_refCDict zfs_ZSTD_CCtx_refCDict +#define ZSTD_CCtx_refPrefix zfs_ZSTD_CCtx_refPrefix +#define ZSTD_CCtx_refPrefix_advanced zfs_ZSTD_CCtx_refPrefix_advanced +#define ZSTD_CCtx_refThreadPool zfs_ZSTD_CCtx_refThreadPool +#define ZSTD_CCtx_reset zfs_ZSTD_CCtx_reset +#define ZSTD_CCtx_setCParams zfs_ZSTD_CCtx_setCParams +#define ZSTD_CCtx_setFParams zfs_ZSTD_CCtx_setFParams +#define ZSTD_CCtx_setParameter zfs_ZSTD_CCtx_setParameter +#define ZSTD_CCtx_setParametersUsingCCtxParams zfs_ZSTD_CCtx_setParametersUsingCCtxParams +#define ZSTD_CCtx_setParams zfs_ZSTD_CCtx_setParams +#define ZSTD_CCtx_setPledgedSrcSize zfs_ZSTD_CCtx_setPledgedSrcSize +#define ZSTD_CCtx_trace zfs_ZSTD_CCtx_trace +#define ZSTD_CStreamInSize zfs_ZSTD_CStreamInSize +#define ZSTD_CStreamOutSize zfs_ZSTD_CStreamOutSize +#define ZSTD_adjustCParams zfs_ZSTD_adjustCParams +#define ZSTD_buildBlockEntropyStats zfs_ZSTD_buildBlockEntropyStats +#define ZSTD_cParam_getBounds zfs_ZSTD_cParam_getBounds +#define ZSTD_checkCParams zfs_ZSTD_checkCParams +#define ZSTD_compress zfs_ZSTD_compress +#define ZSTD_compress2 zfs_ZSTD_compress2 +#define ZSTD_compressBegin zfs_ZSTD_compressBegin +#define ZSTD_compressBegin_advanced zfs_ZSTD_compressBegin_advanced +#define ZSTD_compressBegin_advanced_internal zfs_ZSTD_compressBegin_advanced_internal +#define ZSTD_compressBegin_usingCDict zfs_ZSTD_compressBegin_usingCDict +#define ZSTD_compressBegin_usingCDict_advanced zfs_ZSTD_compressBegin_usingCDict_advanced +#define ZSTD_compressBegin_usingCDict_deprecated zfs_ZSTD_compressBegin_usingCDict_deprecated +#define ZSTD_compressBegin_usingDict zfs_ZSTD_compressBegin_usingDict +#define ZSTD_compressBlock zfs_ZSTD_compressBlock +#define ZSTD_compressBlock_deprecated zfs_ZSTD_compressBlock_deprecated +#define ZSTD_compressBound zfs_ZSTD_compressBound +#define ZSTD_compressCCtx zfs_ZSTD_compressCCtx +#define ZSTD_compressContinue zfs_ZSTD_compressContinue +#define ZSTD_compressContinue_public zfs_ZSTD_compressContinue_public +#define ZSTD_compressEnd zfs_ZSTD_compressEnd +#define ZSTD_compressEnd_public zfs_ZSTD_compressEnd_public +#define ZSTD_compressSequences zfs_ZSTD_compressSequences +#define ZSTD_compressSequencesAndLiterals zfs_ZSTD_compressSequencesAndLiterals +#define ZSTD_compressStream zfs_ZSTD_compressStream +#define ZSTD_compressStream2 zfs_ZSTD_compressStream2 +#define ZSTD_compressStream2_simpleArgs zfs_ZSTD_compressStream2_simpleArgs +#define ZSTD_compress_advanced zfs_ZSTD_compress_advanced +#define ZSTD_compress_advanced_internal zfs_ZSTD_compress_advanced_internal +#define ZSTD_compress_usingCDict zfs_ZSTD_compress_usingCDict +#define ZSTD_compress_usingCDict_advanced zfs_ZSTD_compress_usingCDict_advanced +#define ZSTD_compress_usingDict zfs_ZSTD_compress_usingDict +#define ZSTD_convertBlockSequences zfs_ZSTD_convertBlockSequences +#define ZSTD_copyCCtx zfs_ZSTD_copyCCtx +#define ZSTD_createCCtx zfs_ZSTD_createCCtx +#define ZSTD_createCCtxParams zfs_ZSTD_createCCtxParams +#define ZSTD_createCCtx_advanced zfs_ZSTD_createCCtx_advanced +#define ZSTD_createCDict zfs_ZSTD_createCDict +#define ZSTD_createCDict_advanced zfs_ZSTD_createCDict_advanced +#define ZSTD_createCDict_advanced2 zfs_ZSTD_createCDict_advanced2 +#define ZSTD_createCDict_byReference zfs_ZSTD_createCDict_byReference +#define ZSTD_createCStream zfs_ZSTD_createCStream +#define ZSTD_createCStream_advanced zfs_ZSTD_createCStream_advanced +#define ZSTD_cycleLog zfs_ZSTD_cycleLog +#define ZSTD_defaultCLevel zfs_ZSTD_defaultCLevel +#define ZSTD_endStream zfs_ZSTD_endStream +#define ZSTD_estimateCCtxSize zfs_ZSTD_estimateCCtxSize +#define ZSTD_estimateCCtxSize_usingCCtxParams zfs_ZSTD_estimateCCtxSize_usingCCtxParams +#define ZSTD_estimateCCtxSize_usingCParams zfs_ZSTD_estimateCCtxSize_usingCParams +#define ZSTD_estimateCDictSize zfs_ZSTD_estimateCDictSize +#define ZSTD_estimateCDictSize_advanced zfs_ZSTD_estimateCDictSize_advanced +#define ZSTD_estimateCStreamSize zfs_ZSTD_estimateCStreamSize +#define ZSTD_estimateCStreamSize_usingCCtxParams zfs_ZSTD_estimateCStreamSize_usingCCtxParams +#define ZSTD_estimateCStreamSize_usingCParams zfs_ZSTD_estimateCStreamSize_usingCParams +#define ZSTD_flushStream zfs_ZSTD_flushStream +#define ZSTD_freeCCtx zfs_ZSTD_freeCCtx +#define ZSTD_freeCCtxParams zfs_ZSTD_freeCCtxParams +#define ZSTD_freeCDict zfs_ZSTD_freeCDict +#define ZSTD_freeCStream zfs_ZSTD_freeCStream +#define ZSTD_generateSequences zfs_ZSTD_generateSequences +#define ZSTD_get1BlockSummary zfs_ZSTD_get1BlockSummary +#define ZSTD_getBlockSize zfs_ZSTD_getBlockSize +#define ZSTD_getCParams zfs_ZSTD_getCParams +#define ZSTD_getCParamsFromCCtxParams zfs_ZSTD_getCParamsFromCCtxParams +#define ZSTD_getCParamsFromCDict zfs_ZSTD_getCParamsFromCDict +#define ZSTD_getDictID_fromCDict zfs_ZSTD_getDictID_fromCDict +#define ZSTD_getFrameProgression zfs_ZSTD_getFrameProgression +#define ZSTD_getParams zfs_ZSTD_getParams +#define ZSTD_getSeqStore zfs_ZSTD_getSeqStore +#define ZSTD_initCStream zfs_ZSTD_initCStream +#define ZSTD_initCStream_advanced zfs_ZSTD_initCStream_advanced +#define ZSTD_initCStream_internal zfs_ZSTD_initCStream_internal +#define ZSTD_initCStream_srcSize zfs_ZSTD_initCStream_srcSize +#define ZSTD_initCStream_usingCDict zfs_ZSTD_initCStream_usingCDict +#define ZSTD_initCStream_usingCDict_advanced zfs_ZSTD_initCStream_usingCDict_advanced +#define ZSTD_initCStream_usingDict zfs_ZSTD_initCStream_usingDict +#define ZSTD_initStaticCCtx zfs_ZSTD_initStaticCCtx +#define ZSTD_initStaticCDict zfs_ZSTD_initStaticCDict +#define ZSTD_initStaticCStream zfs_ZSTD_initStaticCStream +#define ZSTD_invalidateRepCodes zfs_ZSTD_invalidateRepCodes +#define ZSTD_loadCEntropy zfs_ZSTD_loadCEntropy +#define ZSTD_maxCLevel zfs_ZSTD_maxCLevel +#define ZSTD_mergeBlockDelimiters zfs_ZSTD_mergeBlockDelimiters +#define ZSTD_minCLevel zfs_ZSTD_minCLevel +#define ZSTD_referenceExternalSequences zfs_ZSTD_referenceExternalSequences +#define ZSTD_registerSequenceProducer zfs_ZSTD_registerSequenceProducer +#define ZSTD_resetCStream zfs_ZSTD_resetCStream +#define ZSTD_resetSeqStore zfs_ZSTD_resetSeqStore +#define ZSTD_reset_compressedBlockState zfs_ZSTD_reset_compressedBlockState +#define ZSTD_selectBlockCompressor zfs_ZSTD_selectBlockCompressor +#define ZSTD_seqToCodes zfs_ZSTD_seqToCodes +#define ZSTD_sequenceBound zfs_ZSTD_sequenceBound +#define ZSTD_sizeof_CCtx zfs_ZSTD_sizeof_CCtx +#define ZSTD_sizeof_CDict zfs_ZSTD_sizeof_CDict +#define ZSTD_sizeof_CStream zfs_ZSTD_sizeof_CStream +#define ZSTD_toFlushNow zfs_ZSTD_toFlushNow +#define ZSTD_writeLastEmptyBlock zfs_ZSTD_writeLastEmptyBlock +#define ZSTD_writeSkippableFrame zfs_ZSTD_writeSkippableFrame /* lib/compress/zstd_compress_literals.o: */ #define ZSTD_compressLiterals zfs_ZSTD_compressLiterals @@ -159,133 +269,49 @@ /* lib/compress/zstd_compress_superblock.o: */ #define ZSTD_compressSuperBlock zfs_ZSTD_compressSuperBlock -/* lib/compress/zstd_compress.o: */ -#define ZSTD_adjustCParams zfs_ZSTD_adjustCParams -#define ZSTD_CCtx_getParameter zfs_ZSTD_CCtx_getParameter -#define ZSTD_CCtx_loadDictionary_advanced zfs_ZSTD_CCtx_loadDictionary_advanced -#define ZSTD_CCtx_loadDictionary_byReference zfs_ZSTD_CCtx_loadDictionary_byReference -#define ZSTD_CCtx_loadDictionary zfs_ZSTD_CCtx_loadDictionary -#define ZSTD_CCtxParams_getParameter zfs_ZSTD_CCtxParams_getParameter -#define ZSTD_CCtxParams_init_advanced zfs_ZSTD_CCtxParams_init_advanced -#define ZSTD_CCtxParams_init zfs_ZSTD_CCtxParams_init -#define ZSTD_CCtxParams_reset zfs_ZSTD_CCtxParams_reset -#define ZSTD_CCtxParams_setParameter zfs_ZSTD_CCtxParams_setParameter -#define ZSTD_CCtx_refCDict zfs_ZSTD_CCtx_refCDict -#define ZSTD_CCtx_refPrefix_advanced zfs_ZSTD_CCtx_refPrefix_advanced -#define ZSTD_CCtx_refPrefix zfs_ZSTD_CCtx_refPrefix -#define ZSTD_CCtx_reset zfs_ZSTD_CCtx_reset -#define ZSTD_CCtx_setParametersUsingCCtxParams zfs_ZSTD_CCtx_setParametersUsingCCtxParams -#define ZSTD_CCtx_setParameter zfs_ZSTD_CCtx_setParameter -#define ZSTD_CCtx_setPledgedSrcSize zfs_ZSTD_CCtx_setPledgedSrcSize -#define ZSTD_checkCParams zfs_ZSTD_checkCParams -#define ZSTD_compress2 zfs_ZSTD_compress2 -#define ZSTD_compress_advanced_internal zfs_ZSTD_compress_advanced_internal -#define ZSTD_compress_advanced zfs_ZSTD_compress_advanced -#define ZSTD_compressBegin_advanced_internal zfs_ZSTD_compressBegin_advanced_internal -#define ZSTD_compressBegin_advanced zfs_ZSTD_compressBegin_advanced -#define ZSTD_compressBegin_usingCDict_advanced zfs_ZSTD_compressBegin_usingCDict_advanced -#define ZSTD_compressBegin_usingCDict zfs_ZSTD_compressBegin_usingCDict -#define ZSTD_compressBegin_usingDict zfs_ZSTD_compressBegin_usingDict -#define ZSTD_compressBegin zfs_ZSTD_compressBegin -#define ZSTD_compressBlock zfs_ZSTD_compressBlock -#define ZSTD_compressBound zfs_ZSTD_compressBound -#define ZSTD_compressCCtx zfs_ZSTD_compressCCtx -#define ZSTD_compressContinue zfs_ZSTD_compressContinue -#define ZSTD_compressEnd zfs_ZSTD_compressEnd -#define ZSTD_compressStream2_simpleArgs zfs_ZSTD_compressStream2_simpleArgs -#define ZSTD_compressStream2 zfs_ZSTD_compressStream2 -#define ZSTD_compressStream zfs_ZSTD_compressStream -#define ZSTD_compress_usingCDict_advanced zfs_ZSTD_compress_usingCDict_advanced -#define ZSTD_compress_usingCDict zfs_ZSTD_compress_usingCDict -#define ZSTD_compress_usingDict zfs_ZSTD_compress_usingDict -#define ZSTD_compress zfs_ZSTD_compress -#define ZSTD_copyCCtx zfs_ZSTD_copyCCtx -#define ZSTD_cParam_getBounds zfs_ZSTD_cParam_getBounds -#define ZSTD_createCCtx_advanced zfs_ZSTD_createCCtx_advanced -#define ZSTD_createCCtxParams zfs_ZSTD_createCCtxParams -#define ZSTD_createCCtx zfs_ZSTD_createCCtx -#define ZSTD_createCDict_advanced zfs_ZSTD_createCDict_advanced -#define ZSTD_createCDict_byReference zfs_ZSTD_createCDict_byReference -#define ZSTD_createCDict zfs_ZSTD_createCDict -#define ZSTD_createCStream_advanced zfs_ZSTD_createCStream_advanced -#define ZSTD_createCStream zfs_ZSTD_createCStream -#define ZSTD_CStreamInSize zfs_ZSTD_CStreamInSize -#define ZSTD_CStreamOutSize zfs_ZSTD_CStreamOutSize -#define ZSTD_cycleLog zfs_ZSTD_cycleLog -#define ZSTD_endStream zfs_ZSTD_endStream -#define ZSTD_estimateCCtxSize_usingCCtxParams zfs_ZSTD_estimateCCtxSize_usingCCtxParams -#define ZSTD_estimateCCtxSize_usingCParams zfs_ZSTD_estimateCCtxSize_usingCParams -#define ZSTD_estimateCCtxSize zfs_ZSTD_estimateCCtxSize -#define ZSTD_estimateCDictSize_advanced zfs_ZSTD_estimateCDictSize_advanced -#define ZSTD_estimateCDictSize zfs_ZSTD_estimateCDictSize -#define ZSTD_estimateCStreamSize_usingCCtxParams zfs_ZSTD_estimateCStreamSize_usingCCtxParams -#define ZSTD_estimateCStreamSize_usingCParams zfs_ZSTD_estimateCStreamSize_usingCParams -#define ZSTD_estimateCStreamSize zfs_ZSTD_estimateCStreamSize -#define ZSTD_flushStream zfs_ZSTD_flushStream -#define ZSTD_freeCCtxParams zfs_ZSTD_freeCCtxParams -#define ZSTD_freeCCtx zfs_ZSTD_freeCCtx -#define ZSTD_freeCDict zfs_ZSTD_freeCDict -#define ZSTD_freeCStream zfs_ZSTD_freeCStream -#define ZSTD_getBlockSize zfs_ZSTD_getBlockSize -#define ZSTD_getCParamsFromCCtxParams zfs_ZSTD_getCParamsFromCCtxParams -#define ZSTD_getCParamsFromCDict zfs_ZSTD_getCParamsFromCDict -#define ZSTD_getCParams zfs_ZSTD_getCParams -#define ZSTD_getFrameProgression zfs_ZSTD_getFrameProgression -#define ZSTD_getParams zfs_ZSTD_getParams -#define ZSTD_getSeqStore zfs_ZSTD_getSeqStore -#define ZSTD_getSequences zfs_ZSTD_getSequences -#define ZSTD_initCStream_advanced zfs_ZSTD_initCStream_advanced -#define ZSTD_initCStream_internal zfs_ZSTD_initCStream_internal -#define ZSTD_initCStream_srcSize zfs_ZSTD_initCStream_srcSize -#define ZSTD_initCStream_usingCDict_advanced zfs_ZSTD_initCStream_usingCDict_advanced -#define ZSTD_initCStream_usingCDict zfs_ZSTD_initCStream_usingCDict -#define ZSTD_initCStream_usingDict zfs_ZSTD_initCStream_usingDict -#define ZSTD_initCStream zfs_ZSTD_initCStream -#define ZSTD_initStaticCCtx zfs_ZSTD_initStaticCCtx -#define ZSTD_initStaticCDict zfs_ZSTD_initStaticCDict -#define ZSTD_initStaticCStream zfs_ZSTD_initStaticCStream -#define ZSTD_invalidateRepCodes zfs_ZSTD_invalidateRepCodes -#define ZSTD_loadCEntropy zfs_ZSTD_loadCEntropy -#define ZSTD_maxCLevel zfs_ZSTD_maxCLevel -#define ZSTD_minCLevel zfs_ZSTD_minCLevel -#define ZSTD_referenceExternalSequences zfs_ZSTD_referenceExternalSequences -#define ZSTD_reset_compressedBlockState zfs_ZSTD_reset_compressedBlockState -#define ZSTD_resetCStream zfs_ZSTD_resetCStream -#define ZSTD_resetSeqStore zfs_ZSTD_resetSeqStore -#define ZSTD_selectBlockCompressor zfs_ZSTD_selectBlockCompressor -#define ZSTD_seqToCodes zfs_ZSTD_seqToCodes -#define ZSTD_sizeof_CCtx zfs_ZSTD_sizeof_CCtx -#define ZSTD_sizeof_CDict zfs_ZSTD_sizeof_CDict -#define ZSTD_sizeof_CStream zfs_ZSTD_sizeof_CStream -#define ZSTD_toFlushNow zfs_ZSTD_toFlushNow -#define ZSTD_writeLastEmptyBlock zfs_ZSTD_writeLastEmptyBlock - /* lib/compress/zstd_double_fast.o: */ +#define ZSTD_compressBlock_doubleFast zfs_ZSTD_compressBlock_doubleFast #define ZSTD_compressBlock_doubleFast_dictMatchState zfs_ZSTD_compressBlock_doubleFast_dictMatchState #define ZSTD_compressBlock_doubleFast_extDict zfs_ZSTD_compressBlock_doubleFast_extDict -#define ZSTD_compressBlock_doubleFast zfs_ZSTD_compressBlock_doubleFast #define ZSTD_fillDoubleHashTable zfs_ZSTD_fillDoubleHashTable /* lib/compress/zstd_fast.o: */ +#define ZSTD_compressBlock_fast zfs_ZSTD_compressBlock_fast #define ZSTD_compressBlock_fast_dictMatchState zfs_ZSTD_compressBlock_fast_dictMatchState #define ZSTD_compressBlock_fast_extDict zfs_ZSTD_compressBlock_fast_extDict -#define ZSTD_compressBlock_fast zfs_ZSTD_compressBlock_fast #define ZSTD_fillHashTable zfs_ZSTD_fillHashTable /* lib/compress/zstd_lazy.o: */ +#define ZSTD_compressBlock_btlazy2 zfs_ZSTD_compressBlock_btlazy2 #define ZSTD_compressBlock_btlazy2_dictMatchState zfs_ZSTD_compressBlock_btlazy2_dictMatchState #define ZSTD_compressBlock_btlazy2_extDict zfs_ZSTD_compressBlock_btlazy2_extDict -#define ZSTD_compressBlock_btlazy2 zfs_ZSTD_compressBlock_btlazy2 -#define ZSTD_compressBlock_greedy_dictMatchState zfs_ZSTD_compressBlock_greedy_dictMatchState -#define ZSTD_compressBlock_greedy_extDict zfs_ZSTD_compressBlock_greedy_extDict #define ZSTD_compressBlock_greedy zfs_ZSTD_compressBlock_greedy -#define ZSTD_compressBlock_lazy2_dictMatchState zfs_ZSTD_compressBlock_lazy2_dictMatchState -#define ZSTD_compressBlock_lazy2_extDict zfs_ZSTD_compressBlock_lazy2_extDict -#define ZSTD_compressBlock_lazy2 zfs_ZSTD_compressBlock_lazy2 -#define ZSTD_compressBlock_lazy_dictMatchState zfs_ZSTD_compressBlock_lazy_dictMatchState -#define ZSTD_compressBlock_lazy_extDict zfs_ZSTD_compressBlock_lazy_extDict +#define ZSTD_compressBlock_greedy_dedicatedDictSearch zfs_ZSTD_compressBlock_greedy_dedicatedDictSearch +#define ZSTD_compressBlock_greedy_dedicatedDictSearch_row zfs_ZSTD_compressBlock_greedy_dedicatedDictSearch_row +#define ZSTD_compressBlock_greedy_dictMatchState zfs_ZSTD_compressBlock_greedy_dictMatchState +#define ZSTD_compressBlock_greedy_dictMatchState_row zfs_ZSTD_compressBlock_greedy_dictMatchState_row +#define ZSTD_compressBlock_greedy_extDict zfs_ZSTD_compressBlock_greedy_extDict +#define ZSTD_compressBlock_greedy_extDict_row zfs_ZSTD_compressBlock_greedy_extDict_row +#define ZSTD_compressBlock_greedy_row zfs_ZSTD_compressBlock_greedy_row #define ZSTD_compressBlock_lazy zfs_ZSTD_compressBlock_lazy +#define ZSTD_compressBlock_lazy2 zfs_ZSTD_compressBlock_lazy2 +#define ZSTD_compressBlock_lazy2_dedicatedDictSearch zfs_ZSTD_compressBlock_lazy2_dedicatedDictSearch +#define ZSTD_compressBlock_lazy2_dedicatedDictSearch_row zfs_ZSTD_compressBlock_lazy2_dedicatedDictSearch_row +#define ZSTD_compressBlock_lazy2_dictMatchState zfs_ZSTD_compressBlock_lazy2_dictMatchState +#define ZSTD_compressBlock_lazy2_dictMatchState_row zfs_ZSTD_compressBlock_lazy2_dictMatchState_row +#define ZSTD_compressBlock_lazy2_extDict zfs_ZSTD_compressBlock_lazy2_extDict +#define ZSTD_compressBlock_lazy2_extDict_row zfs_ZSTD_compressBlock_lazy2_extDict_row +#define ZSTD_compressBlock_lazy2_row zfs_ZSTD_compressBlock_lazy2_row +#define ZSTD_compressBlock_lazy_dedicatedDictSearch zfs_ZSTD_compressBlock_lazy_dedicatedDictSearch +#define ZSTD_compressBlock_lazy_dedicatedDictSearch_row zfs_ZSTD_compressBlock_lazy_dedicatedDictSearch_row +#define ZSTD_compressBlock_lazy_dictMatchState zfs_ZSTD_compressBlock_lazy_dictMatchState +#define ZSTD_compressBlock_lazy_dictMatchState_row zfs_ZSTD_compressBlock_lazy_dictMatchState_row +#define ZSTD_compressBlock_lazy_extDict zfs_ZSTD_compressBlock_lazy_extDict +#define ZSTD_compressBlock_lazy_extDict_row zfs_ZSTD_compressBlock_lazy_extDict_row +#define ZSTD_compressBlock_lazy_row zfs_ZSTD_compressBlock_lazy_row +#define ZSTD_dedicatedDictSearch_lazy_loadDictionary zfs_ZSTD_dedicatedDictSearch_lazy_loadDictionary #define ZSTD_insertAndFindFirstIndex zfs_ZSTD_insertAndFindFirstIndex +#define ZSTD_row_update zfs_ZSTD_row_update /* lib/compress/zstd_ldm.o: */ #define ZSTD_ldm_adjustParameters zfs_ZSTD_ldm_adjustParameters @@ -294,60 +320,40 @@ #define ZSTD_ldm_generateSequences zfs_ZSTD_ldm_generateSequences #define ZSTD_ldm_getMaxNbSeq zfs_ZSTD_ldm_getMaxNbSeq #define ZSTD_ldm_getTableSize zfs_ZSTD_ldm_getTableSize +#define ZSTD_ldm_skipRawSeqStoreBytes zfs_ZSTD_ldm_skipRawSeqStoreBytes #define ZSTD_ldm_skipSequences zfs_ZSTD_ldm_skipSequences /* lib/compress/zstd_opt.o: */ +#define ZSTD_compressBlock_btopt zfs_ZSTD_compressBlock_btopt #define ZSTD_compressBlock_btopt_dictMatchState zfs_ZSTD_compressBlock_btopt_dictMatchState #define ZSTD_compressBlock_btopt_extDict zfs_ZSTD_compressBlock_btopt_extDict -#define ZSTD_compressBlock_btopt zfs_ZSTD_compressBlock_btopt +#define ZSTD_compressBlock_btultra zfs_ZSTD_compressBlock_btultra #define ZSTD_compressBlock_btultra2 zfs_ZSTD_compressBlock_btultra2 #define ZSTD_compressBlock_btultra_dictMatchState zfs_ZSTD_compressBlock_btultra_dictMatchState #define ZSTD_compressBlock_btultra_extDict zfs_ZSTD_compressBlock_btultra_extDict -#define ZSTD_compressBlock_btultra zfs_ZSTD_compressBlock_btultra #define ZSTD_updateTree zfs_ZSTD_updateTree +/* lib/compress/zstd_preSplit.o: */ +#define ZSTD_splitBlock zfs_ZSTD_splitBlock + /* lib/decompress/huf_decompress.o: */ -#define HUF_decompress1X1_DCtx_wksp_bmi2 zfs_HUF_decompress1X1_DCtx_wksp_bmi2 #define HUF_decompress1X1_DCtx_wksp zfs_HUF_decompress1X1_DCtx_wksp -#define HUF_decompress1X1_DCtx zfs_HUF_decompress1X1_DCtx -#define HUF_decompress1X1_usingDTable zfs_HUF_decompress1X1_usingDTable -#define HUF_decompress1X1 zfs_HUF_decompress1X1 #define HUF_decompress1X2_DCtx_wksp zfs_HUF_decompress1X2_DCtx_wksp -#define HUF_decompress1X2_DCtx zfs_HUF_decompress1X2_DCtx -#define HUF_decompress1X2_usingDTable zfs_HUF_decompress1X2_usingDTable -#define HUF_decompress1X2 zfs_HUF_decompress1X2 #define HUF_decompress1X_DCtx_wksp zfs_HUF_decompress1X_DCtx_wksp -#define HUF_decompress1X_DCtx zfs_HUF_decompress1X_DCtx -#define HUF_decompress1X_usingDTable_bmi2 zfs_HUF_decompress1X_usingDTable_bmi2 #define HUF_decompress1X_usingDTable zfs_HUF_decompress1X_usingDTable -#define HUF_decompress4X1_DCtx_wksp zfs_HUF_decompress4X1_DCtx_wksp -#define HUF_decompress4X1_DCtx zfs_HUF_decompress4X1_DCtx -#define HUF_decompress4X1_usingDTable zfs_HUF_decompress4X1_usingDTable -#define HUF_decompress4X1 zfs_HUF_decompress4X1 -#define HUF_decompress4X2_DCtx_wksp zfs_HUF_decompress4X2_DCtx_wksp -#define HUF_decompress4X2_DCtx zfs_HUF_decompress4X2_DCtx -#define HUF_decompress4X2_usingDTable zfs_HUF_decompress4X2_usingDTable -#define HUF_decompress4X2 zfs_HUF_decompress4X2 -#define HUF_decompress4X_DCtx zfs_HUF_decompress4X_DCtx -#define HUF_decompress4X_hufOnly_wksp_bmi2 zfs_HUF_decompress4X_hufOnly_wksp_bmi2 #define HUF_decompress4X_hufOnly_wksp zfs_HUF_decompress4X_hufOnly_wksp -#define HUF_decompress4X_hufOnly zfs_HUF_decompress4X_hufOnly -#define HUF_decompress4X_usingDTable_bmi2 zfs_HUF_decompress4X_usingDTable_bmi2 #define HUF_decompress4X_usingDTable zfs_HUF_decompress4X_usingDTable -#define HUF_decompress zfs_HUF_decompress #define HUF_readDTableX1_wksp zfs_HUF_readDTableX1_wksp -#define HUF_readDTableX1 zfs_HUF_readDTableX1 #define HUF_readDTableX2_wksp zfs_HUF_readDTableX2_wksp -#define HUF_readDTableX2 zfs_HUF_readDTableX2 #define HUF_selectDecoder zfs_HUF_selectDecoder /* lib/decompress/zstd_ddict.o: */ -#define ZSTD_copyDDictParameters zfs_ZSTD_copyDDictParameters -#define ZSTD_createDDict_advanced zfs_ZSTD_createDDict_advanced -#define ZSTD_createDDict_byReference zfs_ZSTD_createDDict_byReference -#define ZSTD_createDDict zfs_ZSTD_createDDict #define ZSTD_DDict_dictContent zfs_ZSTD_DDict_dictContent #define ZSTD_DDict_dictSize zfs_ZSTD_DDict_dictSize +#define ZSTD_copyDDictParameters zfs_ZSTD_copyDDictParameters +#define ZSTD_createDDict zfs_ZSTD_createDDict +#define ZSTD_createDDict_advanced zfs_ZSTD_createDDict_advanced +#define ZSTD_createDDict_byReference zfs_ZSTD_createDDict_byReference #define ZSTD_estimateDDictSize zfs_ZSTD_estimateDDictSize #define ZSTD_freeDDict zfs_ZSTD_freeDDict #define ZSTD_getDictID_fromDDict zfs_ZSTD_getDictID_fromDDict @@ -355,39 +361,41 @@ #define ZSTD_sizeof_DDict zfs_ZSTD_sizeof_DDict /* lib/decompress/zstd_decompress.o: */ -#define ZSTD_copyDCtx zfs_ZSTD_copyDCtx -#define ZSTD_createDCtx_advanced zfs_ZSTD_createDCtx_advanced -#define ZSTD_createDCtx zfs_ZSTD_createDCtx -#define ZSTD_createDStream_advanced zfs_ZSTD_createDStream_advanced -#define ZSTD_createDStream zfs_ZSTD_createDStream +#define ZSTD_DCtx_getParameter zfs_ZSTD_DCtx_getParameter +#define ZSTD_DCtx_loadDictionary zfs_ZSTD_DCtx_loadDictionary #define ZSTD_DCtx_loadDictionary_advanced zfs_ZSTD_DCtx_loadDictionary_advanced #define ZSTD_DCtx_loadDictionary_byReference zfs_ZSTD_DCtx_loadDictionary_byReference -#define ZSTD_DCtx_loadDictionary zfs_ZSTD_DCtx_loadDictionary #define ZSTD_DCtx_refDDict zfs_ZSTD_DCtx_refDDict -#define ZSTD_DCtx_refPrefix_advanced zfs_ZSTD_DCtx_refPrefix_advanced #define ZSTD_DCtx_refPrefix zfs_ZSTD_DCtx_refPrefix +#define ZSTD_DCtx_refPrefix_advanced zfs_ZSTD_DCtx_refPrefix_advanced #define ZSTD_DCtx_reset zfs_ZSTD_DCtx_reset #define ZSTD_DCtx_setFormat zfs_ZSTD_DCtx_setFormat #define ZSTD_DCtx_setMaxWindowSize zfs_ZSTD_DCtx_setMaxWindowSize #define ZSTD_DCtx_setParameter zfs_ZSTD_DCtx_setParameter +#define ZSTD_DStreamInSize zfs_ZSTD_DStreamInSize +#define ZSTD_DStreamOutSize zfs_ZSTD_DStreamOutSize +#define ZSTD_copyDCtx zfs_ZSTD_copyDCtx +#define ZSTD_createDCtx zfs_ZSTD_createDCtx +#define ZSTD_createDCtx_advanced zfs_ZSTD_createDCtx_advanced +#define ZSTD_createDStream zfs_ZSTD_createDStream +#define ZSTD_createDStream_advanced zfs_ZSTD_createDStream_advanced +#define ZSTD_dParam_getBounds zfs_ZSTD_dParam_getBounds #define ZSTD_decodingBufferSize_min zfs_ZSTD_decodingBufferSize_min +#define ZSTD_decompress zfs_ZSTD_decompress +#define ZSTD_decompressBegin zfs_ZSTD_decompressBegin #define ZSTD_decompressBegin_usingDDict zfs_ZSTD_decompressBegin_usingDDict #define ZSTD_decompressBegin_usingDict zfs_ZSTD_decompressBegin_usingDict -#define ZSTD_decompressBegin zfs_ZSTD_decompressBegin #define ZSTD_decompressBound zfs_ZSTD_decompressBound #define ZSTD_decompressContinue zfs_ZSTD_decompressContinue #define ZSTD_decompressDCtx zfs_ZSTD_decompressDCtx -#define ZSTD_decompressStream_simpleArgs zfs_ZSTD_decompressStream_simpleArgs #define ZSTD_decompressStream zfs_ZSTD_decompressStream +#define ZSTD_decompressStream_simpleArgs zfs_ZSTD_decompressStream_simpleArgs #define ZSTD_decompress_usingDDict zfs_ZSTD_decompress_usingDDict #define ZSTD_decompress_usingDict zfs_ZSTD_decompress_usingDict -#define ZSTD_decompress zfs_ZSTD_decompress -#define ZSTD_dParam_getBounds zfs_ZSTD_dParam_getBounds -#define ZSTD_DStreamInSize zfs_ZSTD_DStreamInSize -#define ZSTD_DStreamOutSize zfs_ZSTD_DStreamOutSize +#define ZSTD_decompressionMargin zfs_ZSTD_decompressionMargin #define ZSTD_estimateDCtxSize zfs_ZSTD_estimateDCtxSize -#define ZSTD_estimateDStreamSize_fromFrame zfs_ZSTD_estimateDStreamSize_fromFrame #define ZSTD_estimateDStreamSize zfs_ZSTD_estimateDStreamSize +#define ZSTD_estimateDStreamSize_fromFrame zfs_ZSTD_estimateDStreamSize_fromFrame #define ZSTD_findDecompressedSize zfs_ZSTD_findDecompressedSize #define ZSTD_findFrameCompressedSize zfs_ZSTD_findFrameCompressedSize #define ZSTD_frameHeaderSize zfs_ZSTD_frameHeaderSize @@ -397,18 +405,20 @@ #define ZSTD_getDictID_fromDict zfs_ZSTD_getDictID_fromDict #define ZSTD_getDictID_fromFrame zfs_ZSTD_getDictID_fromFrame #define ZSTD_getFrameContentSize zfs_ZSTD_getFrameContentSize -#define ZSTD_getFrameHeader_advanced zfs_ZSTD_getFrameHeader_advanced #define ZSTD_getFrameHeader zfs_ZSTD_getFrameHeader +#define ZSTD_getFrameHeader_advanced zfs_ZSTD_getFrameHeader_advanced +#define ZSTD_initDStream zfs_ZSTD_initDStream #define ZSTD_initDStream_usingDDict zfs_ZSTD_initDStream_usingDDict #define ZSTD_initDStream_usingDict zfs_ZSTD_initDStream_usingDict -#define ZSTD_initDStream zfs_ZSTD_initDStream #define ZSTD_initStaticDCtx zfs_ZSTD_initStaticDCtx #define ZSTD_initStaticDStream zfs_ZSTD_initStaticDStream #define ZSTD_insertBlock zfs_ZSTD_insertBlock #define ZSTD_isFrame zfs_ZSTD_isFrame +#define ZSTD_isSkippableFrame zfs_ZSTD_isSkippableFrame #define ZSTD_loadDEntropy zfs_ZSTD_loadDEntropy #define ZSTD_nextInputType zfs_ZSTD_nextInputType #define ZSTD_nextSrcSizeToDecompress zfs_ZSTD_nextSrcSizeToDecompress +#define ZSTD_readSkippableFrame zfs_ZSTD_readSkippableFrame #define ZSTD_resetDStream zfs_ZSTD_resetDStream #define ZSTD_sizeof_DCtx zfs_ZSTD_sizeof_DCtx #define ZSTD_sizeof_DStream zfs_ZSTD_sizeof_DStream @@ -416,8 +426,9 @@ /* lib/decompress/zstd_decompress_block.o: */ #define ZSTD_buildFSETable zfs_ZSTD_buildFSETable #define ZSTD_checkContinuity zfs_ZSTD_checkContinuity -#define ZSTD_decodeLiteralsBlock zfs_ZSTD_decodeLiteralsBlock +#define ZSTD_decodeLiteralsBlock_wrapper zfs_ZSTD_decodeLiteralsBlock_wrapper #define ZSTD_decodeSeqHeaders zfs_ZSTD_decodeSeqHeaders -#define ZSTD_decompressBlock_internal zfs_ZSTD_decompressBlock_internal #define ZSTD_decompressBlock zfs_ZSTD_decompressBlock +#define ZSTD_decompressBlock_deprecated zfs_ZSTD_decompressBlock_deprecated +#define ZSTD_decompressBlock_internal zfs_ZSTD_decompressBlock_internal #define ZSTD_getcBlockSize zfs_ZSTD_getcBlockSize diff --git a/module/zstd/lib/common/bitstream.h b/module/zstd/lib/common/bitstream.h index 3b7ad483d..6ff482a83 100644 --- a/module/zstd/lib/common/bitstream.h +++ b/module/zstd/lib/common/bitstream.h @@ -102,8 +102,8 @@ typedef enum { BIT_DStream_unfinished = 0, /* fully refilled */ } BIT_DStream_status; /* result of BIT_reloadDStream() */ MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, size_t srcSize); -MEM_STATIC BitContainerType BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits); -MEM_STATIC BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD); +FORCE_INLINE_TEMPLATE BitContainerType BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits); +FORCE_INLINE_TEMPLATE BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD); MEM_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t* bitD); diff --git a/module/zstd/lib/common/zstd_common.c b/module/zstd/lib/common/zstd_common.c index 3f04c22ab..77cdfe15b 100644 --- a/module/zstd/lib/common/zstd_common.c +++ b/module/zstd/lib/common/zstd_common.c @@ -33,6 +33,7 @@ const char* ZSTD_versionString(void) { return ZSTD_VERSION_STRING; } /*! ZSTD_isError() : * tells if a return value is an error code * symbol is required for external callers */ +unsigned ZSTD_isError(size_t code) __asm__("zfs_ZSTD_isError"); unsigned ZSTD_isError(size_t code) { return ERR_isError(code); } /*! ZSTD_getErrorName() : diff --git a/module/zstd/lib/compress/zstd_preSplit.c b/module/zstd/lib/compress/zstd_preSplit.c index d820c20ac..67ab89f02 100644 --- a/module/zstd/lib/compress/zstd_preSplit.c +++ b/module/zstd/lib/compress/zstd_preSplit.c @@ -90,7 +90,7 @@ ZSTD_GEN_RECORD_FINGERPRINT(11, 9) ZSTD_GEN_RECORD_FINGERPRINT(43, 8) -static U64 abs64(S64 s64) { return (U64)((s64 < 0) ? -s64 : s64); } +static U64 ZSTD_abs64(S64 s64) { return (U64)((s64 < 0) ? -s64 : s64); } static U64 fpDistance(const Fingerprint* fp1, const Fingerprint* fp2, unsigned hashLog) { @@ -99,7 +99,7 @@ static U64 fpDistance(const Fingerprint* fp1, const Fingerprint* fp2, unsigned h assert(hashLog <= HASHLOG_MAX); for (n = 0; n < ((size_t)1 << hashLog); n++) { distance += - abs64((S64)fp1->events[n] * (S64)fp2->nbEvents - (S64)fp2->events[n] * (S64)fp1->nbEvents); + ZSTD_abs64((S64)fp1->events[n] * (S64)fp2->nbEvents - (S64)fp2->events[n] * (S64)fp1->nbEvents); } return distance; } @@ -219,7 +219,7 @@ static size_t ZSTD_splitBlock_fromBorders(const void* blockStart, size_t blockSi { U64 const distFromBegin = fpDistance(&fpstats->pastEvents, middleEvents, 8); U64 const distFromEnd = fpDistance(&fpstats->newEvents, middleEvents, 8); U64 const minDistance = SEGMENT_SIZE * SEGMENT_SIZE / 3; - if (abs64((S64)distFromBegin - (S64)distFromEnd) < minDistance) + if (ZSTD_abs64((S64)distFromBegin - (S64)distFromEnd) < minDistance) return 64 KB; return (distFromBegin > distFromEnd) ? 32 KB : 96 KB; }