lz4.c File Reference

#include "lz4.h"
#include <stdlib.h>
#include <string.h>

Classes

struct  LZ4_stream_t_internal
struct  LZ4_streamDecode_t_internal

Defines

#define HEAPMODE   0
#define ACCELERATION_DEFAULT   1
#define FORCE_INLINE   static
#define expect(expr, value)   (expr)
#define likely(expr)   expect((expr) != 0, 1)
#define unlikely(expr)   expect((expr) != 0, 0)
#define ALLOCATOR(n, s)   calloc(n,s)
#define FREEMEM   free
#define MEM_INIT   memset
#define STEPSIZE   sizeof(size_t)
#define MINMATCH   4
#define COPYLENGTH   8
#define LASTLITERALS   5
#define MFLIMIT   (COPYLENGTH+MINMATCH)
#define KB   *(1 <<10)
#define MB   *(1 <<20)
#define GB   *(1U<<30)
#define MAXD_LOG   16
#define MAX_DISTANCE   ((1 << MAXD_LOG) - 1)
#define ML_BITS   4
#define ML_MASK   ((1U<<ML_BITS)-1)
#define RUN_BITS   (8-ML_BITS)
#define RUN_MASK   ((1U<<RUN_BITS)-1)
#define LZ4_STATIC_ASSERT(c)   { enum { LZ4_static_assert = 1/(int)(!!(c)) }; }
#define LZ4_HASHLOG   (LZ4_MEMORY_USAGE-2)
#define HASHTABLESIZE   (1 << LZ4_MEMORY_USAGE)
#define HASH_SIZE_U32   (1 << LZ4_HASHLOG)
#define HASH_UNIT   sizeof(size_t)

Typedefs

typedef unsigned char BYTE
typedef unsigned short U16
typedef unsigned int U32
typedef signed int S32
typedef unsigned long long U64

Enumerations

enum  limitedOutput_directive { notLimited = 0, limitedOutput = 1 }
enum  tableType_t { byPtr, byU32, byU16 }
enum  dict_directive { noDict = 0, withPrefix64k, usingExtDict }
enum  dictIssue_directive { noDictIssue = 0, dictSmall }
enum  endCondition_directive { endOnOutputSize = 0, endOnInputSize = 1 }
enum  earlyEnd_directive { full = 0, partial = 1 }

Functions

static unsigned LZ4_64bits (void)
static unsigned LZ4_isLittleEndian (void)
static U16 LZ4_read16 (const void *memPtr)
static U16 LZ4_readLE16 (const void *memPtr)
static void LZ4_writeLE16 (void *memPtr, U16 value)
static U32 LZ4_read32 (const void *memPtr)
static U64 LZ4_read64 (const void *memPtr)
static size_t LZ4_read_ARCH (const void *p)
static void LZ4_copy4 (void *dstPtr, const void *srcPtr)
static void LZ4_copy8 (void *dstPtr, const void *srcPtr)
static void LZ4_wildCopy (void *dstPtr, const void *srcPtr, void *dstEnd)
static unsigned LZ4_NbCommonBytes (register size_t val)
static unsigned LZ4_count (const BYTE *pIn, const BYTE *pMatch, const BYTE *pInLimit)
int LZ4_versionNumber (void)
int LZ4_compressBound (int isize)
int LZ4_sizeofState ()
static U32 LZ4_hashSequence (U32 sequence, tableType_t const tableType)
static U32 LZ4_hashSequence64 (size_t sequence, tableType_t const tableType)
static U32 LZ4_hashSequenceT (size_t sequence, tableType_t const tableType)
static U32 LZ4_hashPosition (const void *p, tableType_t tableType)
static void LZ4_putPositionOnHash (const BYTE *p, U32 h, void *tableBase, tableType_t const tableType, const BYTE *srcBase)
static void LZ4_putPosition (const BYTE *p, void *tableBase, tableType_t tableType, const BYTE *srcBase)
static const BYTELZ4_getPositionOnHash (U32 h, void *tableBase, tableType_t tableType, const BYTE *srcBase)
static const BYTELZ4_getPosition (const BYTE *p, void *tableBase, tableType_t tableType, const BYTE *srcBase)
FORCE_INLINE int LZ4_compress_generic (void *const ctx, const char *const source, char *const dest, const int inputSize, const int maxOutputSize, const limitedOutput_directive outputLimited, const tableType_t tableType, const dict_directive dict, const dictIssue_directive dictIssue, const U32 acceleration)
int LZ4_compress_fast_extState (void *state, const char *source, char *dest, int inputSize, int maxOutputSize, int acceleration)
int LZ4_compress_fast (const char *source, char *dest, int inputSize, int maxOutputSize, int acceleration)
int LZ4_compress_default (const char *source, char *dest, int inputSize, int maxOutputSize)
int LZ4_compress_fast_force (const char *source, char *dest, int inputSize, int maxOutputSize, int acceleration)
static int LZ4_compress_destSize_generic (void *const ctx, const char *const src, char *const dst, int *const srcSizePtr, const int targetDstSize, const tableType_t tableType)
static int LZ4_compress_destSize_extState (void *state, const char *src, char *dst, int *srcSizePtr, int targetDstSize)
int LZ4_compress_destSize (const char *src, char *dst, int *srcSizePtr, int targetDstSize)
LZ4_stream_tLZ4_createStream (void)
void LZ4_resetStream (LZ4_stream_t *LZ4_stream)
int LZ4_freeStream (LZ4_stream_t *LZ4_stream)
int LZ4_loadDict (LZ4_stream_t *LZ4_dict, const char *dictionary, int dictSize)
static void LZ4_renormDictT (LZ4_stream_t_internal *LZ4_dict, const BYTE *src)
int LZ4_compress_fast_continue (LZ4_stream_t *LZ4_stream, const char *source, char *dest, int inputSize, int maxOutputSize, int acceleration)
int LZ4_compress_forceExtDict (LZ4_stream_t *LZ4_dict, const char *source, char *dest, int inputSize)
int LZ4_saveDict (LZ4_stream_t *LZ4_dict, char *safeBuffer, int dictSize)
FORCE_INLINE int LZ4_decompress_generic (const char *const source, char *const dest, int inputSize, int outputSize, int endOnInput, int partialDecoding, int targetOutputSize, int dict, const BYTE *const lowPrefix, const BYTE *const dictStart, const size_t dictSize)
int LZ4_decompress_safe (const char *source, char *dest, int compressedSize, int maxDecompressedSize)
int LZ4_decompress_safe_partial (const char *source, char *dest, int compressedSize, int targetOutputSize, int maxDecompressedSize)
int LZ4_decompress_fast (const char *source, char *dest, int originalSize)
LZ4_streamDecode_tLZ4_createStreamDecode (void)
int LZ4_freeStreamDecode (LZ4_streamDecode_t *LZ4_stream)
int LZ4_setStreamDecode (LZ4_streamDecode_t *LZ4_streamDecode, const char *dictionary, int dictSize)
int LZ4_decompress_safe_continue (LZ4_streamDecode_t *LZ4_streamDecode, const char *source, char *dest, int compressedSize, int maxOutputSize)
int LZ4_decompress_fast_continue (LZ4_streamDecode_t *LZ4_streamDecode, const char *source, char *dest, int originalSize)
FORCE_INLINE int LZ4_decompress_usingDict_generic (const char *source, char *dest, int compressedSize, int maxOutputSize, int safe, const char *dictStart, int dictSize)
int LZ4_decompress_safe_usingDict (const char *source, char *dest, int compressedSize, int maxOutputSize, const char *dictStart, int dictSize)
int LZ4_decompress_fast_usingDict (const char *source, char *dest, int originalSize, const char *dictStart, int dictSize)
int LZ4_decompress_safe_forceExtDict (const char *source, char *dest, int compressedSize, int maxOutputSize, const char *dictStart, int dictSize)
int LZ4_compress_limitedOutput (const char *source, char *dest, int inputSize, int maxOutputSize)
int LZ4_compress (const char *source, char *dest, int inputSize)
int LZ4_compress_limitedOutput_withState (void *state, const char *src, char *dst, int srcSize, int dstSize)
int LZ4_compress_withState (void *state, const char *src, char *dst, int srcSize)
int LZ4_compress_limitedOutput_continue (LZ4_stream_t *LZ4_stream, const char *src, char *dst, int srcSize, int maxDstSize)
int LZ4_compress_continue (LZ4_stream_t *LZ4_stream, const char *source, char *dest, int inputSize)
int LZ4_uncompress (const char *source, char *dest, int outputSize)
int LZ4_uncompress_unknownOutputSize (const char *source, char *dest, int isize, int maxOutputSize)
int LZ4_sizeofStreamState ()
static void LZ4_init (LZ4_stream_t_internal *lz4ds, BYTE *base)
int LZ4_resetStreamState (void *state, char *inputBuffer)
void * LZ4_create (char *inputBuffer)
char * LZ4_slideInputBuffer (void *LZ4_Data)
int LZ4_decompress_safe_withPrefix64k (const char *source, char *dest, int compressedSize, int maxOutputSize)
int LZ4_decompress_fast_withPrefix64k (const char *source, char *dest, int originalSize)

Variables

static const int LZ4_minLength = (MFLIMIT+1)
static const int LZ4_64Klimit = ((64 KB) + (MFLIMIT-1))
static const U32 LZ4_skipTrigger = 6
static const U64 prime5bytes = 889523592379ULL

Define Documentation

#define ACCELERATION_DEFAULT   1
#define ALLOCATOR ( n,
 )     calloc(n,s)
#define COPYLENGTH   8

Referenced by LZ4_decompress_generic().

#define expect ( expr,
value   )     (expr)
#define FORCE_INLINE   static
#define FREEMEM   free
#define GB   *(1U<<30)

Referenced by LZ4_loadDict().

#define HASH_SIZE_U32   (1 << LZ4_HASHLOG)

Referenced by LZ4_renormDictT().

#define HASH_UNIT   sizeof(size_t)

Referenced by LZ4_loadDict().

#define HASHTABLESIZE   (1 << LZ4_MEMORY_USAGE)
#define HEAPMODE   0
#define KB   *(1 <<10)
#define LASTLITERALS   5
#define likely ( expr   )     expect((expr) != 0, 1)
#define LZ4_HASHLOG   (LZ4_MEMORY_USAGE-2)
#define LZ4_STATIC_ASSERT (  )     { enum { LZ4_static_assert = 1/(int)(!!(c)) }; }

Referenced by LZ4_createStream().

#define MAX_DISTANCE   ((1 << MAXD_LOG) - 1)
#define MAXD_LOG   16
#define MB   *(1 <<20)
#define MEM_INIT   memset

Referenced by LZ4_init(), and LZ4_resetStream().

#define MFLIMIT   (COPYLENGTH+MINMATCH)
#define MINMATCH   4
#define ML_BITS   4
#define ML_MASK   ((1U<<ML_BITS)-1)
#define RUN_BITS   (8-ML_BITS)
#define RUN_MASK   ((1U<<RUN_BITS)-1)
#define STEPSIZE   sizeof(size_t)

Referenced by LZ4_count().

#define unlikely ( expr   )     expect((expr) != 0, 0)

Typedef Documentation

typedef unsigned char BYTE
typedef signed int S32
typedef unsigned short U16
typedef unsigned int U32
typedef unsigned long long U64

Enumeration Type Documentation

Enumerator:
noDict 
withPrefix64k 
usingExtDict 
Enumerator:
noDictIssue 
dictSmall 
Enumerator:
full 
partial 
Enumerator:
endOnOutputSize 
endOnInputSize 
Enumerator:
notLimited 
limitedOutput 
Enumerator:
byPtr 
byU32 
byU16 

Function Documentation

static unsigned LZ4_64bits ( void   )  [static]
int LZ4_compress ( const char *  source,
char *  dest,
int  inputSize 
)
int LZ4_compress_continue ( LZ4_stream_t LZ4_stream,
const char *  source,
char *  dest,
int  inputSize 
)
int LZ4_compress_default ( const char *  source,
char *  dest,
int  inputSize,
int  maxOutputSize 
)
int LZ4_compress_destSize ( const char *  src,
char *  dst,
int srcSizePtr,
int  targetDstSize 
)
static int LZ4_compress_destSize_extState ( void *  state,
const char *  src,
char *  dst,
int srcSizePtr,
int  targetDstSize 
) [static]
static int LZ4_compress_destSize_generic ( void *const   ctx,
const char *const   src,
char *const   dst,
int *const   srcSizePtr,
const int  targetDstSize,
const tableType_t  tableType 
) [static]
int LZ4_compress_fast ( const char *  source,
char *  dest,
int  inputSize,
int  maxOutputSize,
int  acceleration 
)
int LZ4_compress_fast_continue ( LZ4_stream_t LZ4_stream,
const char *  source,
char *  dest,
int  inputSize,
int  maxOutputSize,
int  acceleration 
)
int LZ4_compress_fast_extState ( void *  state,
const char *  source,
char *  dest,
int  inputSize,
int  maxOutputSize,
int  acceleration 
)
int LZ4_compress_fast_force ( const char *  source,
char *  dest,
int  inputSize,
int  maxOutputSize,
int  acceleration 
)
int LZ4_compress_forceExtDict ( LZ4_stream_t LZ4_dict,
const char *  source,
char *  dest,
int  inputSize 
)
FORCE_INLINE int LZ4_compress_generic ( void *const   ctx,
const char *const   source,
char *const   dest,
const int  inputSize,
const int  maxOutputSize,
const limitedOutput_directive  outputLimited,
const tableType_t  tableType,
const dict_directive  dict,
const dictIssue_directive  dictIssue,
const U32  acceleration 
)
int LZ4_compress_limitedOutput ( const char *  source,
char *  dest,
int  inputSize,
int  maxOutputSize 
)
int LZ4_compress_limitedOutput_continue ( LZ4_stream_t LZ4_stream,
const char *  src,
char *  dst,
int  srcSize,
int  maxDstSize 
)
int LZ4_compress_limitedOutput_withState ( void *  state,
const char *  src,
char *  dst,
int  srcSize,
int  dstSize 
)
int LZ4_compress_withState ( void *  state,
const char *  src,
char *  dst,
int  srcSize 
)
int LZ4_compressBound ( int  isize  ) 
static void LZ4_copy4 ( void *  dstPtr,
const void *  srcPtr 
) [static]

Referenced by LZ4_decompress_generic().

static void LZ4_copy8 ( void *  dstPtr,
const void *  srcPtr 
) [static]
static unsigned LZ4_count ( const BYTE pIn,
const BYTE pMatch,
const BYTE pInLimit 
) [static]
void* LZ4_create ( char *  inputBuffer  ) 
LZ4_stream_t* LZ4_createStream ( void   ) 
LZ4_streamDecode_t* LZ4_createStreamDecode ( void   ) 

References ALLOCATOR.

int LZ4_decompress_fast ( const char *  source,
char *  dest,
int  originalSize 
)
int LZ4_decompress_fast_continue ( LZ4_streamDecode_t LZ4_streamDecode,
const char *  source,
char *  dest,
int  originalSize 
)
int LZ4_decompress_fast_usingDict ( const char *  source,
char *  dest,
int  originalSize,
const char *  dictStart,
int  dictSize 
)
int LZ4_decompress_fast_withPrefix64k ( const char *  source,
char *  dest,
int  originalSize 
)
FORCE_INLINE int LZ4_decompress_generic ( const char *const   source,
char *const   dest,
int  inputSize,
int  outputSize,
int  endOnInput,
int  partialDecoding,
int  targetOutputSize,
int  dict,
const BYTE *const   lowPrefix,
const BYTE *const   dictStart,
const size_t  dictSize 
)
int LZ4_decompress_safe ( const char *  source,
char *  dest,
int  compressedSize,
int  maxDecompressedSize 
)
int LZ4_decompress_safe_continue ( LZ4_streamDecode_t LZ4_streamDecode,
const char *  source,
char *  dest,
int  compressedSize,
int  maxOutputSize 
)
int LZ4_decompress_safe_forceExtDict ( const char *  source,
char *  dest,
int  compressedSize,
int  maxOutputSize,
const char *  dictStart,
int  dictSize 
)
int LZ4_decompress_safe_partial ( const char *  source,
char *  dest,
int  compressedSize,
int  targetOutputSize,
int  maxDecompressedSize 
)
int LZ4_decompress_safe_usingDict ( const char *  source,
char *  dest,
int  compressedSize,
int  maxOutputSize,
const char *  dictStart,
int  dictSize 
)
int LZ4_decompress_safe_withPrefix64k ( const char *  source,
char *  dest,
int  compressedSize,
int  maxOutputSize 
)
FORCE_INLINE int LZ4_decompress_usingDict_generic ( const char *  source,
char *  dest,
int  compressedSize,
int  maxOutputSize,
int  safe,
const char *  dictStart,
int  dictSize 
)
int LZ4_freeStream ( LZ4_stream_t LZ4_stream  ) 

References FREEMEM.

int LZ4_freeStreamDecode ( LZ4_streamDecode_t LZ4_stream  ) 

References FREEMEM.

static const BYTE* LZ4_getPosition ( const BYTE p,
void *  tableBase,
tableType_t  tableType,
const BYTE srcBase 
) [static]
static const BYTE* LZ4_getPositionOnHash ( U32  h,
void *  tableBase,
tableType_t  tableType,
const BYTE srcBase 
) [static]
static U32 LZ4_hashPosition ( const void *  p,
tableType_t  tableType 
) [static]
static U32 LZ4_hashSequence ( U32  sequence,
tableType_t const   tableType 
) [static]

References byU16, LZ4_HASHLOG, and MINMATCH.

Referenced by LZ4_hashSequenceT().

static U32 LZ4_hashSequence64 ( size_t  sequence,
tableType_t const   tableType 
) [static]

References byU16, and LZ4_HASHLOG.

Referenced by LZ4_hashSequenceT().

static U32 LZ4_hashSequenceT ( size_t  sequence,
tableType_t const   tableType 
) [static]
static void LZ4_init ( LZ4_stream_t_internal lz4ds,
BYTE base 
) [static]
static unsigned LZ4_isLittleEndian ( void   )  [static]
int LZ4_loadDict ( LZ4_stream_t LZ4_dict,
const char *  dictionary,
int  dictSize 
)
static unsigned LZ4_NbCommonBytes ( register size_t  val  )  [static]

References LZ4_64bits(), and LZ4_isLittleEndian().

Referenced by LZ4_count().

static void LZ4_putPosition ( const BYTE p,
void *  tableBase,
tableType_t  tableType,
const BYTE srcBase 
) [static]
static void LZ4_putPositionOnHash ( const BYTE p,
U32  h,
void *  tableBase,
tableType_t const   tableType,
const BYTE srcBase 
) [static]
static U16 LZ4_read16 ( const void *  memPtr  )  [static]

Referenced by LZ4_count(), and LZ4_readLE16().

static U32 LZ4_read32 ( const void *  memPtr  )  [static]
static U64 LZ4_read64 ( const void *  memPtr  )  [static]

Referenced by LZ4_read_ARCH().

static size_t LZ4_read_ARCH ( const void *  p  )  [static]

References LZ4_64bits(), LZ4_read32(), and LZ4_read64().

Referenced by LZ4_count(), and LZ4_hashPosition().

static U16 LZ4_readLE16 ( const void *  memPtr  )  [static]
static void LZ4_renormDictT ( LZ4_stream_t_internal LZ4_dict,
const BYTE src 
) [static]
void LZ4_resetStream ( LZ4_stream_t LZ4_stream  ) 
int LZ4_resetStreamState ( void *  state,
char *  inputBuffer 
)

References LZ4_init().

int LZ4_saveDict ( LZ4_stream_t LZ4_dict,
char *  safeBuffer,
int  dictSize 
)
int LZ4_setStreamDecode ( LZ4_streamDecode_t LZ4_streamDecode,
const char *  dictionary,
int  dictSize 
)
int LZ4_sizeofState ( void   ) 

References LZ4_STREAMSIZE.

int LZ4_sizeofStreamState (  ) 

References LZ4_STREAMSIZE.

char* LZ4_slideInputBuffer ( void *  LZ4_Data  ) 
int LZ4_uncompress ( const char *  source,
char *  dest,
int  outputSize 
)

References LZ4_decompress_fast().

int LZ4_uncompress_unknownOutputSize ( const char *  source,
char *  dest,
int  isize,
int  maxOutputSize 
)

References LZ4_decompress_safe().

int LZ4_versionNumber ( void   ) 

References LZ4_VERSION_NUMBER.

static void LZ4_wildCopy ( void *  dstPtr,
const void *  srcPtr,
void *  dstEnd 
) [static]
static void LZ4_writeLE16 ( void *  memPtr,
U16  value 
) [static]

Variable Documentation

const int LZ4_64Klimit = ((64 KB) + (MFLIMIT-1)) [static]
const int LZ4_minLength = (MFLIMIT+1) [static]
const U32 LZ4_skipTrigger = 6 [static]
const U64 prime5bytes = 889523592379ULL [static]

Generated on 28 May 2018 for CAFE by  doxygen 1.6.1