Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
zstd_v01.c File Reference
#include <stddef.h>
#include "zstd_v01.h"
#include "../common/error_private.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

Data Structures

struct  FSE_CStream_t
 
struct  FSE_CState_t
 
struct  FSE_DStream_t
 
struct  FSE_DState_t
 
struct  FSE_decode_t
 
struct  FSE_symbolCompressionTransform
 
struct  FSE_DTableHeader
 
struct  HUF_CElt_s
 
struct  nodeElt_s
 
struct  HUF_DElt
 
struct  blockProperties_t
 
struct  seqStore_t
 
struct  ZSTD_Cctx_s
 
struct  seq_t
 
struct  seqState_t
 
struct  ZSTDv01_Dctx_s
 

Macros

#define FSE_DTABLE_SIZE_U32(maxTableLog)
 
#define HUF_DTABLE_SIZE_U16(maxTableLog)
 
#define HUF_CREATE_STATIC_DTABLE(DTable, maxTableLog)
 
#define FSE_LIST_ERRORS(ITEM)
 
#define FSE_GENERATE_ENUM(ENUM)
 
#define FSE_MAX_MEMORY_USAGE   14
 
#define FSE_DEFAULT_MEMORY_USAGE   13
 
#define FSE_MAX_SYMBOL_VALUE   255
 
#define FSE_FUNCTION_TYPE   BYTE
 
#define FSE_FUNCTION_EXTENSION
 
#define GCC_VERSION   (__GNUC__ * 100 + __GNUC_MINOR__)
 
#define FORCE_INLINE   static
 
#define MEM_ACCESS_MODULE
 
#define FSE_MAX_TABLELOG   (FSE_MAX_MEMORY_USAGE-2)
 
#define FSE_MAX_TABLESIZE   (1U<<FSE_MAX_TABLELOG)
 
#define FSE_MAXTABLESIZE_MASK   (FSE_MAX_TABLESIZE-1)
 
#define FSE_DEFAULT_TABLELOG   (FSE_DEFAULT_MEMORY_USAGE-2)
 
#define FSE_MIN_TABLELOG   5
 
#define FSE_TABLELOG_ABSOLUTE_MAX   15
 
#define FSE_STATIC_ASSERT(c)
 
#define FSE_CAT(X, Y)
 
#define FSE_FUNCTION_NAME(X, Y)
 
#define FSE_TYPE_NAME(X, Y)
 
#define FSE_DECODE_TYPE   FSE_decode_t
 
#define FSE_GETSYMBOL(statePtr)
 
#define HUF_MAX_SYMBOL_VALUE   255
 
#define HUF_DEFAULT_TABLELOG   12 /* used by default, when not specified */
 
#define HUF_MAX_TABLELOG   12 /* max possible tableLog; for allocation purpose; can be modified */
 
#define HUF_ABSOLUTEMAX_TABLELOG   16 /* absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work */
 
#define HUF_DECODE_SYMBOL_0(n, Dstream)
 
#define HUF_DECODE_SYMBOL_1(n, Dstream)
 
#define HUF_DECODE_SYMBOL_2(n, Dstream)
 
#define ZSTD_MEMORY_USAGE   17
 
#define ZSTD_UNALIGNED_ACCESS   0
 
#define HASH_LOG   (ZSTD_MEMORY_USAGE - 2)
 
#define HASH_TABLESIZE   (1 << HASH_LOG)
 
#define HASH_MASK   (HASH_TABLESIZE - 1)
 
#define KNUTH   2654435761
 
#define BIT7   128
 
#define BIT6   64
 
#define BIT5   32
 
#define BIT4   16
 
#define KB   *(1 <<10)
 
#define MB   *(1 <<20)
 
#define GB   *(1U<<30)
 
#define BLOCKSIZE   (128 KB) /* define, for static allocation */
 
#define WORKPLACESIZE   (BLOCKSIZE*3)
 
#define MINMATCH   4
 
#define MLbits   7
 
#define LLbits   6
 
#define Offbits   5
 
#define MaxML   ((1<<MLbits )-1)
 
#define MaxLL   ((1<<LLbits )-1)
 
#define MaxOff   ((1<<Offbits)-1)
 
#define LitFSELog   11
 
#define MLFSELog   10
 
#define LLFSELog   10
 
#define OffFSELog   9
 
#define MAX(a, b)
 
#define MaxSeq   MAX(MaxLL, MaxML)
 
#define LITERAL_NOENTROPY   63
 
#define COMMAND_NOENTROPY   7 /* to remove */
 
#define ZSTD_CONTENTSIZE_ERROR   (0ULL - 2)
 
#define COPY8(d, s)
 
#define ZSTD_VERSION_MAJOR   0 /* for breaking interface changes */
 
#define ZSTD_VERSION_MINOR   1 /* for new (non-breaking) interface capabilities */
 
#define ZSTD_VERSION_RELEASE   3 /* for tweaks, bug-fixes, or development */
 
#define ZSTD_VERSION_NUMBER   (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE)
 

Typedefs

typedef U32 DTable_max_t[FSE_DTABLE_SIZE_U32(FSE_MAX_TABLELOG)]
 
typedef struct HUF_CElt_s HUF_CElt
 
typedef struct nodeElt_s nodeElt
 
typedef struct ZSTD_Cctx_s ZSTD_Cctx
 
typedef struct ZSTD_Cctx_s cctxi_t
 
typedef struct ZSTDv01_Dctx_s dctx_t
 

Enumerations

enum  FSE_errorCodes { FSE_LIST_ERRORS =(FSE_GENERATE_ENUM) }
 
enum  FSE_DStream_status { FSE_DStream_unfinished = 0 , FSE_DStream_endOfBuffer = 1 , FSE_DStream_completed = 2 , FSE_DStream_tooFar = 3 }
 
enum  blockType_t { bt_compressed , bt_raw , bt_rle , bt_end }
 

Functions

FORCE_INLINE unsigned FSE_highbit32 (U32 val)
 
FORCE_INLINE size_t FSE_decompress_usingDTable_generic (void *dst, size_t maxDstSize, const void *cSrc, size_t cSrcSize, const FSE_DTable *dt, const unsigned fast)
 
unsigned ZSTDv01_isError (size_t code)
 
size_t ZSTDv01_decompressDCtx (void *ctx, void *dst, size_t maxDstSize, const void *src, size_t srcSize)
 
size_t ZSTDv01_decompress (void *dst, size_t maxDstSize, const void *src, size_t srcSize)
 
void ZSTDv01_findFrameSizeInfoLegacy (const void *src, size_t srcSize, size_t *cSize, unsigned long long *dBound)
 
size_t ZSTDv01_resetDCtx (ZSTDv01_Dctx *dctx)
 
ZSTDv01_DctxZSTDv01_createDCtx (void)
 
size_t ZSTDv01_freeDCtx (ZSTDv01_Dctx *dctx)
 
size_t ZSTDv01_nextSrcSizeToDecompress (ZSTDv01_Dctx *dctx)
 
size_t ZSTDv01_decompressContinue (ZSTDv01_Dctx *dctx, void *dst, size_t maxDstSize, const void *src, size_t srcSize)
 

Macro Definition Documentation

◆ BIT4

#define BIT4   16

◆ BIT5

#define BIT5   32

◆ BIT6

#define BIT6   64

◆ BIT7

#define BIT7   128

◆ BLOCKSIZE

#define BLOCKSIZE   (128 KB) /* define, for static allocation */

◆ COMMAND_NOENTROPY

#define COMMAND_NOENTROPY   7 /* to remove */

◆ COPY8

#define COPY8 ( d,
s )
Value:
{ ZSTD_copy8(d,s); d+=8; s+=8; }
#define d(i)
Definition sha256.c:44

◆ FORCE_INLINE

#define FORCE_INLINE   static

◆ FSE_CAT

#define FSE_CAT ( X,
Y )
Value:
X##Y
#define X(name, r, bit)
Definition cpu.h:110

◆ FSE_DECODE_TYPE

#define FSE_DECODE_TYPE   FSE_decode_t

◆ FSE_DEFAULT_MEMORY_USAGE

#define FSE_DEFAULT_MEMORY_USAGE   13

◆ FSE_DEFAULT_TABLELOG

#define FSE_DEFAULT_TABLELOG   (FSE_DEFAULT_MEMORY_USAGE-2)

◆ FSE_DTABLE_SIZE_U32

#define FSE_DTABLE_SIZE_U32 ( maxTableLog)
Value:
(1 + (1<<maxTableLog))

◆ FSE_FUNCTION_EXTENSION

#define FSE_FUNCTION_EXTENSION

◆ FSE_FUNCTION_NAME

#define FSE_FUNCTION_NAME ( X,
Y )
Value:
#define FSE_CAT(X, Y)
Definition zstd_v01.c:379

◆ FSE_FUNCTION_TYPE

#define FSE_FUNCTION_TYPE   BYTE

◆ FSE_GENERATE_ENUM

#define FSE_GENERATE_ENUM ( ENUM)
Value:
ENUM,

◆ FSE_GETSYMBOL

#define FSE_GETSYMBOL ( statePtr)
Value:
fast ? FSE_decodeSymbolFast(statePtr, &bitD) : FSE_decodeSymbol(statePtr, &bitD)

◆ FSE_LIST_ERRORS

#define FSE_LIST_ERRORS ( ITEM)
Value:
ITEM(FSE_OK_NoError) ITEM(FSE_ERROR_GENERIC) \
ITEM(FSE_ERROR_tableLog_tooLarge) ITEM(FSE_ERROR_maxSymbolValue_tooLarge) ITEM(FSE_ERROR_maxSymbolValue_tooSmall) \
ITEM(FSE_ERROR_dstSize_tooSmall) ITEM(FSE_ERROR_srcSize_wrong)\
ITEM(FSE_ERROR_corruptionDetected) \
ITEM(FSE_ERROR_maxCode)

◆ FSE_MAX_MEMORY_USAGE

#define FSE_MAX_MEMORY_USAGE   14

◆ FSE_MAX_SYMBOL_VALUE

#define FSE_MAX_SYMBOL_VALUE   255

◆ FSE_MAX_TABLELOG

#define FSE_MAX_TABLELOG   (FSE_MAX_MEMORY_USAGE-2)

◆ FSE_MAX_TABLESIZE

#define FSE_MAX_TABLESIZE   (1U<<FSE_MAX_TABLELOG)

◆ FSE_MAXTABLESIZE_MASK

#define FSE_MAXTABLESIZE_MASK   (FSE_MAX_TABLESIZE-1)

◆ FSE_MIN_TABLELOG

#define FSE_MIN_TABLELOG   5

◆ FSE_STATIC_ASSERT

#define FSE_STATIC_ASSERT ( c)
Value:
{ enum { FSE_static_assert = 1/(int)(!!(c)) }; } /* use only *after* variable declarations */
int
Definition lzoconf.h:340
#define c(i)
Definition sha256.c:43

◆ FSE_TABLELOG_ABSOLUTE_MAX

#define FSE_TABLELOG_ABSOLUTE_MAX   15

◆ FSE_TYPE_NAME

#define FSE_TYPE_NAME ( X,
Y )
Value:

◆ GB

#define GB   *(1U<<30)

◆ GCC_VERSION

#define GCC_VERSION   (__GNUC__ * 100 + __GNUC_MINOR__)

◆ HASH_LOG

#define HASH_LOG   (ZSTD_MEMORY_USAGE - 2)

◆ HASH_MASK

#define HASH_MASK   (HASH_TABLESIZE - 1)

◆ HASH_TABLESIZE

#define HASH_TABLESIZE   (1 << HASH_LOG)

◆ HUF_ABSOLUTEMAX_TABLELOG

#define HUF_ABSOLUTEMAX_TABLELOG   16 /* absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work */

◆ HUF_CREATE_STATIC_DTABLE

#define HUF_CREATE_STATIC_DTABLE ( DTable,
maxTableLog )
Value:
unsigned short DTable[HUF_DTABLE_SIZE_U16(maxTableLog)] = { maxTableLog }
#define HUF_DTABLE_SIZE_U16(maxTableLog)
Definition zstd_v01.c:27

◆ HUF_DECODE_SYMBOL_0

#define HUF_DECODE_SYMBOL_0 ( n,
Dstream )
Value:
op[n] = HUF_decodeSymbol(&Dstream, dt, dtLog);
#define op

◆ HUF_DECODE_SYMBOL_1

#define HUF_DECODE_SYMBOL_1 ( n,
Dstream )
Value:
op[n] = HUF_decodeSymbol(&Dstream, dt, dtLog); \
if (FSE_32bits() && (HUF_MAX_TABLELOG>12)) FSE_reloadDStream(&Dstream)
#define HUF_MAX_TABLELOG
Definition zstd_v01.c:930

◆ HUF_DECODE_SYMBOL_2

#define HUF_DECODE_SYMBOL_2 ( n,
Dstream )
Value:
op[n] = HUF_decodeSymbol(&Dstream, dt, dtLog); \
if (FSE_32bits()) FSE_reloadDStream(&Dstream)

◆ HUF_DEFAULT_TABLELOG

#define HUF_DEFAULT_TABLELOG   12 /* used by default, when not specified */

◆ HUF_DTABLE_SIZE_U16

#define HUF_DTABLE_SIZE_U16 ( maxTableLog)
Value:
(1 + (1<<maxTableLog))

◆ HUF_MAX_SYMBOL_VALUE

#define HUF_MAX_SYMBOL_VALUE   255

◆ HUF_MAX_TABLELOG

#define HUF_MAX_TABLELOG   12 /* max possible tableLog; for allocation purpose; can be modified */

◆ KB

#define KB   *(1 <<10)

◆ KNUTH

#define KNUTH   2654435761

◆ LITERAL_NOENTROPY

#define LITERAL_NOENTROPY   63

◆ LitFSELog

#define LitFSELog   11

◆ LLbits

#define LLbits   6

◆ LLFSELog

#define LLFSELog   10

◆ MAX

#define MAX ( a,
b )
Value:
((a)<(b)?(b):(a))
#define b(i)
Definition sha256.c:42
#define a(i)
Definition sha256.c:41

◆ MaxLL

#define MaxLL   ((1<<LLbits )-1)

◆ MaxML

#define MaxML   ((1<<MLbits )-1)

◆ MaxOff

#define MaxOff   ((1<<Offbits)-1)

◆ MaxSeq

#define MaxSeq   MAX(MaxLL, MaxML)

◆ MB

#define MB   *(1 <<20)

◆ MEM_ACCESS_MODULE

#define MEM_ACCESS_MODULE

◆ MINMATCH

#define MINMATCH   4

◆ MLbits

#define MLbits   7

◆ MLFSELog

#define MLFSELog   10

◆ Offbits

#define Offbits   5

◆ OffFSELog

#define OffFSELog   9

◆ WORKPLACESIZE

#define WORKPLACESIZE   (BLOCKSIZE*3)

◆ ZSTD_CONTENTSIZE_ERROR

#define ZSTD_CONTENTSIZE_ERROR   (0ULL - 2)

◆ ZSTD_MEMORY_USAGE

#define ZSTD_MEMORY_USAGE   17

◆ ZSTD_UNALIGNED_ACCESS

#define ZSTD_UNALIGNED_ACCESS   0

◆ ZSTD_VERSION_MAJOR

#define ZSTD_VERSION_MAJOR   0 /* for breaking interface changes */

◆ ZSTD_VERSION_MINOR

#define ZSTD_VERSION_MINOR   1 /* for new (non-breaking) interface capabilities */

◆ ZSTD_VERSION_NUMBER

#define ZSTD_VERSION_NUMBER   (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE)

◆ ZSTD_VERSION_RELEASE

#define ZSTD_VERSION_RELEASE   3 /* for tweaks, bug-fixes, or development */

Typedef Documentation

◆ cctxi_t

typedef struct ZSTD_Cctx_s cctxi_t

◆ dctx_t

typedef struct ZSTDv01_Dctx_s dctx_t

◆ DTable_max_t

typedef U32 DTable_max_t[FSE_DTABLE_SIZE_U32(FSE_MAX_TABLELOG)]

◆ HUF_CElt

typedef size_t HUF_CElt

◆ nodeElt

typedef struct nodeElt_s nodeElt

◆ ZSTD_Cctx

typedef struct ZSTD_Cctx_s ZSTD_Cctx

Enumeration Type Documentation

◆ blockType_t

Enumerator
bt_compressed 
bt_raw 
bt_rle 
bt_end 

◆ FSE_DStream_status

Enumerator
FSE_DStream_unfinished 
FSE_DStream_endOfBuffer 
FSE_DStream_completed 
FSE_DStream_tooFar 

◆ FSE_errorCodes

Enumerator
FSE_LIST_ERRORS 

Function Documentation

◆ FSE_decompress_usingDTable_generic()

FORCE_INLINE size_t FSE_decompress_usingDTable_generic ( void * dst,
size_t maxDstSize,
const void * cSrc,
size_t cSrcSize,
const FSE_DTable * dt,
const unsigned fast )

◆ FSE_highbit32()

FORCE_INLINE unsigned FSE_highbit32 ( U32 val)

◆ ZSTDv01_createDCtx()

ZSTDv01_Dctx * ZSTDv01_createDCtx ( void )

◆ ZSTDv01_decompress()

size_t ZSTDv01_decompress ( void * dst,
size_t maxOriginalSize,
const void * src,
size_t compressedSize )

ZSTDv01_decompress() : decompress ZSTD frames compliant with v0.1.x format compressedSize : is the exact source size maxOriginalSize : is the size of the 'dst' buffer, which must be already allocated. It must be equal or larger than originalSize, otherwise decompression will fail. return : the number of bytes decompressed into destination buffer (originalSize) or an errorCode if it fails (which can be tested using ZSTDv01_isError())

◆ ZSTDv01_decompressContinue()

size_t ZSTDv01_decompressContinue ( ZSTDv01_Dctx * dctx,
void * dst,
size_t maxDstSize,
const void * src,
size_t srcSize )

◆ ZSTDv01_decompressDCtx()

size_t ZSTDv01_decompressDCtx ( void * ctx,
void * dst,
size_t maxDstSize,
const void * src,
size_t srcSize )

◆ ZSTDv01_findFrameSizeInfoLegacy()

void ZSTDv01_findFrameSizeInfoLegacy ( const void * src,
size_t srcSize,
size_t * cSize,
unsigned long long * dBound )

ZSTDv01_findFrameSizeInfoLegacy() : get the source length and decompressed bound of a ZSTD frame compliant with v0.1.x format srcSize : The size of the 'src' buffer, at least as large as the frame pointed to by 'src' cSize (output parameter) : the number of bytes that would be read to decompress this frame or an error code if it fails (which can be tested using ZSTDv01_isError()) dBound (output parameter) : an upper-bound for the decompressed size of the data in the frame or ZSTD_CONTENTSIZE_ERROR if an error occurs

note : assumes cSize and dBound are not NULL.

◆ ZSTDv01_freeDCtx()

size_t ZSTDv01_freeDCtx ( ZSTDv01_Dctx * dctx)

◆ ZSTDv01_isError()

unsigned ZSTDv01_isError ( size_t code)

ZSTDv01_isError() : tells if the result of ZSTDv01_decompress() is an error

◆ ZSTDv01_nextSrcSizeToDecompress()

size_t ZSTDv01_nextSrcSizeToDecompress ( ZSTDv01_Dctx * dctx)

◆ ZSTDv01_resetDCtx()

size_t ZSTDv01_resetDCtx ( ZSTDv01_Dctx * dctx)