Index: contrib/zstd/lib/common/error_private.h =================================================================== --- contrib/zstd/lib/common/error_private.h +++ contrib/zstd/lib/common/error_private.h @@ -20,7 +20,11 @@ /* **************************************** * Dependencies ******************************************/ +#ifdef _KERNEL +#include /* size_t */ +#else #include /* size_t */ +#endif #include "zstd_errors.h" /* enum list */ Index: contrib/zstd/lib/common/fse.h =================================================================== --- contrib/zstd/lib/common/fse.h +++ contrib/zstd/lib/common/fse.h @@ -42,7 +42,11 @@ /*-***************************************** * Dependencies ******************************************/ +#ifdef _KERNEL +#include /* size_t, ptrdiff_t */ +#else #include /* size_t, ptrdiff_t */ +#endif /*-***************************************** Index: contrib/zstd/lib/common/fse_decompress.c =================================================================== --- contrib/zstd/lib/common/fse_decompress.c +++ contrib/zstd/lib/common/fse_decompress.c @@ -57,12 +57,20 @@ /* ************************************************************** * Includes ****************************************************************/ +#ifdef _KERNEL +#include /* memset */ +#else #include /* malloc, free, qsort */ #include /* memcpy, memset */ +#endif #include "bitstream.h" #define FSE_STATIC_LINKING_ONLY #include "fse.h" +#if defined(ZSTD_HEAPMODE) && (ZSTD_HEAPMODE==1) +#include "zstd_internal.h" /* defaultCustomMem */ +static ZSTD_customMem customMalloc = { ZSTD_defaultAllocFunction, ZSTD_defaultFreeFunction, NULL }; +#endif /* ************************************************************** * Error Management @@ -71,7 +79,7 @@ #define FSE_STATIC_ASSERT(c) { enum { FSE_static_assert = 1/(int)(!!(c)) }; } /* use only *after* variable declarations */ /* check and forward error code */ -#define CHECK_F(f) { size_t const e = f; if (FSE_isError(e)) return e; } +#define CHECK_FSE_F(f) { size_t const e = f; if (FSE_isError(e)) return e; } /* ************************************************************** @@ -98,6 +106,18 @@ /* Function templates */ +#if defined(ZSTD_HEAPMODE) && (ZSTD_HEAPMODE==1) +FSE_DTable* FSE_createDTable (unsigned tableLog) +{ + if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX; + return (FSE_DTable*)ZSTD_malloc( FSE_DTABLE_SIZE_U32(tableLog) * sizeof (U32), customMalloc ); +} + +void FSE_freeDTable (FSE_DTable* dt) +{ + ZSTD_free(dt, customMalloc); +} +#else FSE_DTable* FSE_createDTable (unsigned tableLog) { if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX; @@ -108,6 +128,7 @@ { free(dt); } +#endif size_t FSE_buildDTable(FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog) { @@ -231,7 +252,7 @@ FSE_DState_t state2; /* Init */ - CHECK_F(BIT_initDStream(&bitD, cSrc, cSrcSize)); + CHECK_FSE_F(BIT_initDStream(&bitD, cSrc, cSrcSize)); FSE_initDState(&state1, &bitD, dt); FSE_initDState(&state2, &bitD, dt); @@ -309,7 +330,7 @@ ip += NCountLength; cSrcSize -= NCountLength; - CHECK_F( FSE_buildDTable (workSpace, counting, maxSymbolValue, tableLog) ); + CHECK_FSE_F( FSE_buildDTable (workSpace, counting, maxSymbolValue, tableLog) ); return FSE_decompress_usingDTable (dst, dstCapacity, ip, cSrcSize, workSpace); /* always return, even if it is an error code */ } Index: contrib/zstd/lib/common/huf.h =================================================================== --- contrib/zstd/lib/common/huf.h +++ contrib/zstd/lib/common/huf.h @@ -40,7 +40,11 @@ /* *** Dependencies *** */ +#ifdef _KERNEL +#include /* size_t */ +#else #include /* size_t */ +#endif /* *** simple functions *** */ Index: contrib/zstd/lib/common/mem.h =================================================================== --- contrib/zstd/lib/common/mem.h +++ contrib/zstd/lib/common/mem.h @@ -17,8 +17,13 @@ /*-**************************************** * Dependencies ******************************************/ +#ifdef _KERNEL +#include /* size_t */ +#include /* memcpy */ +#else #include /* size_t, ptrdiff_t */ #include /* memcpy */ +#endif /*-**************************************** @@ -47,7 +52,9 @@ * Basic Types *****************************************************************/ #if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) +#ifndef _KERNEL # include +#endif typedef uint8_t BYTE; typedef uint16_t U16; typedef int16_t S16; Index: contrib/zstd/lib/common/pool.h =================================================================== --- contrib/zstd/lib/common/pool.h +++ contrib/zstd/lib/common/pool.h @@ -14,7 +14,11 @@ #endif +#ifdef _KERNEL +#include +#else #include /* size_t */ +#endif typedef struct POOL_ctx_s POOL_ctx; Index: contrib/zstd/lib/common/pool.c =================================================================== --- contrib/zstd/lib/common/pool.c +++ contrib/zstd/lib/common/pool.c @@ -9,8 +9,13 @@ /* ====== Dependencies ======= */ +#ifdef _KERNEL +#include +#include +#else #include /* size_t */ #include /* malloc, calloc, free */ +#endif #include "pool.h" /* ====== Compiler specifics ====== */ Index: contrib/zstd/lib/common/xxhash.h =================================================================== --- contrib/zstd/lib/common/xxhash.h +++ contrib/zstd/lib/common/xxhash.h @@ -75,7 +75,11 @@ /* **************************** * Definitions ******************************/ +#ifdef _KERNEL +#include /* size_t */ +#else #include /* size_t */ +#endif typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode; Index: contrib/zstd/lib/common/xxhash.c =================================================================== --- contrib/zstd/lib/common/xxhash.c +++ contrib/zstd/lib/common/xxhash.c @@ -97,11 +97,23 @@ ***************************************/ /* Modify the local functions below should you wish to use some other memory routines */ /* for malloc(), free() */ +#ifdef _KERNEL +#include +extern void *zstd_alloc(void *opaque, size_t size); +extern void zstd_free(void *opaque, void *ptr); +static void* XXH_malloc(size_t s) { return zstd_alloc("xxh", s); } +static void XXH_free (void* p) { zstd_free("xxh", p); } +#else #include static void* XXH_malloc(size_t s) { return malloc(s); } static void XXH_free (void* p) { free(p); } +#endif /* for memcpy() */ +#ifdef _KERNEL +#include +#else #include +#endif static void* XXH_memcpy(void* dest, const void* src, size_t size) { return memcpy(dest,src,size); } #ifndef XXH_STATIC_LINKING_ONLY @@ -135,7 +147,9 @@ #ifndef MEM_MODULE # define MEM_MODULE # if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) +#ifndef _KERNEL # include +#endif typedef uint8_t BYTE; typedef uint16_t U16; typedef uint32_t U32; Index: contrib/zstd/lib/common/zstd_common.c =================================================================== --- contrib/zstd/lib/common/zstd_common.c +++ contrib/zstd/lib/common/zstd_common.c @@ -12,7 +12,9 @@ /*-************************************* * Dependencies ***************************************/ +#ifndef _KERNEL #include /* malloc */ +#endif #include "error_private.h" #define ZSTD_STATIC_LINKING_ONLY #include "zstd.h" /* declaration of ZSTD_isError, ZSTD_getErrorName, ZSTD_getErrorCode, ZSTD_getErrorString, ZSTD_versionNumber */ @@ -50,15 +52,23 @@ /* default uses stdlib */ void* ZSTD_defaultAllocFunction(void* opaque, size_t size) { +#ifdef _KERNEL + void* address = zstd_alloc(opaque, size); +#else void* address = malloc(size); (void)opaque; +#endif return address; } void ZSTD_defaultFreeFunction(void* opaque, void* address) { +#ifdef _KERNEL + zstd_free(opaque, address); +#else (void)opaque; free(address); +#endif } void* ZSTD_malloc(size_t size, ZSTD_customMem customMem) Index: contrib/zstd/lib/common/zstd_errors.h =================================================================== --- contrib/zstd/lib/common/zstd_errors.h +++ contrib/zstd/lib/common/zstd_errors.h @@ -15,7 +15,11 @@ #endif /*===== dependency =====*/ +#ifdef _KERNEL +#include /* size_t */ +#else #include /* size_t */ +#endif /* ===== ZSTDERRORLIB_API : control library symbols visibility ===== */ Index: contrib/zstd/lib/common/zstd_internal.h =================================================================== --- contrib/zstd/lib/common/zstd_internal.h +++ contrib/zstd/lib/common/zstd_internal.h @@ -58,8 +58,10 @@ /*-************************************* * shared macros ***************************************/ +#ifndef MIN #define MIN(a,b) ((a)<(b) ? (a) : (b)) #define MAX(a,b) ((a)>(b) ? (a) : (b)) +#endif #define CHECK_F(f) { size_t const errcod = f; if (ERR_isError(errcod)) return errcod; } /* check and Forward error code */ #define CHECK_E(f, e) { size_t const errcod = f; if (ERR_isError(errcod)) return ERROR(e); } /* check and send Error code */ Index: contrib/zstd/lib/compress/fse_compress.c =================================================================== --- contrib/zstd/lib/compress/fse_compress.c +++ contrib/zstd/lib/compress/fse_compress.c @@ -56,13 +56,21 @@ /* ************************************************************** * Includes ****************************************************************/ +#ifdef _KERNEL +#include /* memcpy, memset */ +#else #include /* malloc, free, qsort */ #include /* memcpy, memset */ #include /* printf (debug) */ +#endif #include "bitstream.h" #define FSE_STATIC_LINKING_ONLY #include "fse.h" +#if defined(ZSTD_HEAPMODE) && (ZSTD_HEAPMODE==1) +#include "zstd_internal.h" /* defaultCustomMem */ +static ZSTD_customMem customMalloc = { ZSTD_defaultAllocFunction, ZSTD_defaultFreeFunction, NULL }; +#endif /* ************************************************************** * Error Management @@ -468,10 +476,18 @@ size_t size; if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX; size = FSE_CTABLE_SIZE_U32 (tableLog, maxSymbolValue) * sizeof(U32); +#if defined(ZSTD_HEAPMODE) && (ZSTD_HEAPMODE==1) + return (FSE_CTable*)ZSTD_malloc(size, customMalloc); +#else return (FSE_CTable*)malloc(size); +#endif } +#if defined(ZSTD_HEAPMODE) && (ZSTD_HEAPMODE==1) +void FSE_freeCTable (FSE_CTable* ct) { ZSTD_free(ct, customMalloc); } +#else void FSE_freeCTable (FSE_CTable* ct) { free(ct); } +#endif /* provides the minimum logSize to safely represent a distribution */ static unsigned FSE_minTableLog(size_t srcSize, unsigned maxSymbolValue) @@ -782,7 +798,7 @@ size_t FSE_compressBound(size_t size) { return FSE_COMPRESSBOUND(size); } #define CHECK_V_F(e, f) size_t const e = f; if (ERR_isError(e)) return f -#define CHECK_F(f) { CHECK_V_F(_var_err__, f); } +#define CHECK_FSE_F(f) { CHECK_V_F(_var_err__, f); } /* FSE_compress_wksp() : * Same as FSE_compress2(), but using an externally allocated scratch buffer (`workSpace`). @@ -815,7 +831,7 @@ } tableLog = FSE_optimalTableLog(tableLog, srcSize, maxSymbolValue); - CHECK_F( FSE_normalizeCount(norm, tableLog, count, srcSize, maxSymbolValue) ); + CHECK_FSE_F( FSE_normalizeCount(norm, tableLog, count, srcSize, maxSymbolValue) ); /* Write table description header */ { CHECK_V_F(nc_err, FSE_writeNCount(op, oend-op, norm, maxSymbolValue, tableLog) ); @@ -823,7 +839,7 @@ } /* Compress */ - CHECK_F( FSE_buildCTable_wksp(CTable, norm, maxSymbolValue, tableLog, scratchBuffer, scratchBufferSize) ); + CHECK_FSE_F( FSE_buildCTable_wksp(CTable, norm, maxSymbolValue, tableLog, scratchBuffer, scratchBufferSize) ); { CHECK_V_F(cSize, FSE_compress_usingCTable(op, oend - op, src, srcSize, CTable) ); if (cSize == 0) return 0; /* not enough space for compressed data */ op += cSize; Index: contrib/zstd/lib/compress/huf_compress.c =================================================================== --- contrib/zstd/lib/compress/huf_compress.c +++ contrib/zstd/lib/compress/huf_compress.c @@ -43,21 +43,29 @@ /* ************************************************************** * Includes ****************************************************************/ +#ifdef _KERNEL +#include /* memcpy, memset */ +#else #include /* memcpy, memset */ #include /* printf (debug) */ +#endif #include "bitstream.h" #define FSE_STATIC_LINKING_ONLY /* FSE_optimalTableLog_internal */ #include "fse.h" /* header compression */ #define HUF_STATIC_LINKING_ONLY #include "huf.h" +#if defined(ZSTD_HEAPMODE) && (ZSTD_HEAPMODE==1) +#include "zstd_internal.h" /* defaultCustomMem */ +static ZSTD_customMem customMalloc = { ZSTD_defaultAllocFunction, ZSTD_defaultFreeFunction, NULL }; +#endif /* ************************************************************** * Error Management ****************************************************************/ #define HUF_STATIC_ASSERT(c) { enum { HUF_static_assert = 1/(int)(!!(c)) }; } /* use only *after* variable declarations */ #define CHECK_V_F(e, f) size_t const e = f; if (ERR_isError(e)) return f -#define CHECK_F(f) { CHECK_V_F(_var_err__, f); } +#define CHECK_HUF_F(f) { CHECK_V_F(_var_err__, f); } /* ************************************************************** @@ -103,7 +111,7 @@ } tableLog = FSE_optimalTableLog(tableLog, wtSize, maxSymbolValue); - CHECK_F( FSE_normalizeCount(norm, tableLog, count, wtSize, maxSymbolValue) ); + CHECK_HUF_F( FSE_normalizeCount(norm, tableLog, count, wtSize, maxSymbolValue) ); /* Write table description header */ { CHECK_V_F(hSize, FSE_writeNCount(op, oend-op, norm, maxSymbolValue, tableLog) ); @@ -111,7 +119,7 @@ } /* Compress */ - CHECK_F( FSE_buildCTable_wksp(CTable, norm, maxSymbolValue, tableLog, scratchBuffer, sizeof(scratchBuffer)) ); + CHECK_HUF_F( FSE_buildCTable_wksp(CTable, norm, maxSymbolValue, tableLog, scratchBuffer, sizeof(scratchBuffer)) ); { CHECK_V_F(cSize, FSE_compress_usingCTable(op, oend - op, weightTable, wtSize, CTable) ); if (cSize == 0) return 0; /* not enough space for compressed data */ op += cSize; Index: contrib/zstd/lib/compress/zstd_compress.c =================================================================== --- contrib/zstd/lib/compress/zstd_compress.c +++ contrib/zstd/lib/compress/zstd_compress.c @@ -11,7 +11,11 @@ /*-************************************* * Dependencies ***************************************/ +#ifdef _KERNEL +#include /* memcpy, memset */ +#else #include /* memset */ +#endif #include "mem.h" #define FSE_STATIC_LINKING_ONLY /* FSE_encodeSymbol */ #include "fse.h" Index: contrib/zstd/lib/decompress/huf_decompress.c =================================================================== --- contrib/zstd/lib/decompress/huf_decompress.c +++ contrib/zstd/lib/decompress/huf_decompress.c @@ -54,12 +54,20 @@ /* ************************************************************** * Dependencies ****************************************************************/ +#ifdef _KERNEL +#include /* memcpy, memset */ +#else #include /* memcpy, memset */ +#endif #include "bitstream.h" /* BIT_* */ #include "fse.h" /* header compression */ #define HUF_STATIC_LINKING_ONLY #include "huf.h" +#if defined(ZSTD_HEAPMODE) && (ZSTD_HEAPMODE==1) +#include "zstd_internal.h" /* defaultCustomMem */ +static ZSTD_customMem customMalloc = { ZSTD_defaultAllocFunction, ZSTD_defaultFreeFunction, NULL }; +#endif /* ************************************************************** * Error Management Index: contrib/zstd/lib/decompress/zstd_decompress.c =================================================================== --- contrib/zstd/lib/decompress/zstd_decompress.c +++ contrib/zstd/lib/decompress/zstd_decompress.c @@ -41,7 +41,11 @@ /*-******************************************************* * Dependencies *********************************************************/ +#ifdef _KERNEL +#include /* memcpy, memset */ +#else #include /* memcpy, memmove, memset */ +#endif #include "mem.h" /* low level memory routines */ #define FSE_STATIC_LINKING_ONLY #include "fse.h" Index: contrib/zstd/lib/zstd.h =================================================================== --- contrib/zstd/lib/zstd.h +++ contrib/zstd/lib/zstd.h @@ -15,7 +15,13 @@ #define ZSTD_H_235446 /* ====== Dependency ======*/ +#ifdef _KERNEL +#include /* size_t */ +extern void *zstd_alloc(void *opaque, size_t size); +extern void zstd_free(void *opaque, void *ptr); +#else #include /* size_t */ +#endif /* ===== ZSTDLIB_API : control library symbols visibility ===== */