mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-03-11 04:46:18 +03:00
This commit builds on the previous zstd library update and adds the necessary ZFS integration and build system changes required to make zstd 1.5.7 compile and function correctly. Changes: - Add zstd_preSplit.c (new in 1.5.7) to all build systems. - Enable x86_64 assembly in userspace (huf_decompress_amd64.S). - Disable assembly in kernel for RETHUNK/IBT compatibility. - Disable intrinsics in kernel for EL10 x86_64-v3 baseline. - Disable tracing in kernel builds for AArch64 compatibility. - Fix ZSTD_isError symbol renaming with __asm__ directive. - Rename abs64 to ZSTD_abs64 (FreeBSD kernel conflict). - Fix bitstream.h attributes (MEM_STATIC -> FORCE_INLINE_TEMPLATE). - Remove xxhash.c from BSD build (now header-only). - Update symbol names in zstd_compat_wrapper.h. - Ignore checkstyle for zstd-in.c. Kernel assembly disabled for security mitigation compatibility. User space retains full performance. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Alexander Moch <mail@alexmoch.com> Closes #18089
50 lines
1.7 KiB
C
50 lines
1.7 KiB
C
/*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under both the BSD-style license (found in the
|
|
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
|
|
* in the COPYING file in the root directory of this source tree).
|
|
* You may select, at your option, one of the above-listed licenses.
|
|
*/
|
|
|
|
|
|
|
|
/*-*************************************
|
|
* Dependencies
|
|
***************************************/
|
|
#define ZSTD_DEPS_NEED_MALLOC
|
|
#include "error_private.h"
|
|
#include "zstd_internal.h"
|
|
|
|
|
|
/*-****************************************
|
|
* Version
|
|
******************************************/
|
|
unsigned ZSTD_versionNumber(void) { return ZSTD_VERSION_NUMBER; }
|
|
|
|
const char* ZSTD_versionString(void) { return ZSTD_VERSION_STRING; }
|
|
|
|
|
|
/*-****************************************
|
|
* ZSTD Error Management
|
|
******************************************/
|
|
#undef ZSTD_isError /* defined within zstd_internal.h */
|
|
/*! 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() :
|
|
* provides error code string from function result (useful for debugging) */
|
|
const char* ZSTD_getErrorName(size_t code) { return ERR_getErrorName(code); }
|
|
|
|
/*! ZSTD_getError() :
|
|
* convert a `size_t` function result into a proper ZSTD_errorCode enum */
|
|
ZSTD_ErrorCode ZSTD_getErrorCode(size_t code) { return ERR_getErrorCode(code); }
|
|
|
|
/*! ZSTD_getErrorString() :
|
|
* provides error code string from enum */
|
|
const char* ZSTD_getErrorString(ZSTD_ErrorCode code) { return ERR_getErrorString(code); }
|