Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
huf_decompress.c File Reference

Data Structures

struct  DTableDesc
 
struct  HUF_DecompressFastArgs
 
struct  HUF_DEltX1
 
struct  HUF_ReadDTableX1_Workspace
 
struct  HUF_DEltX2
 
struct  sortedSymbol_t
 
struct  HUF_ReadDTableX2_Workspace
 
struct  algo_time_t
 

Macros

#define HUF_DECODER_FAST_TABLELOG   11
 
#define HUF_FAST_BMI2_ATTRS
 
#define HUF_EXTERN_C
 
#define HUF_ASM_DECL   HUF_EXTERN_C
 
#define HUF_NEED_BMI2_FUNCTION   0
 
#define HUF_isError   ERR_isError
 
#define HUF_ALIGN(x, a)
 
#define HUF_ALIGN_MASK(x, mask)
 
#define HUF_DGEN(fn)
 
#define HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr)
 
#define HUF_DECODE_SYMBOLX1_1(ptr, DStreamPtr)
 
#define HUF_DECODE_SYMBOLX1_2(ptr, DStreamPtr)
 
#define HUF_DECODE_SYMBOLX2_0(ptr, DStreamPtr)
 
#define HUF_DECODE_SYMBOLX2_1(ptr, DStreamPtr)
 
#define HUF_DECODE_SYMBOLX2_2(ptr, DStreamPtr)
 

Typedefs

typedef size_t(* HUF_DecompressUsingDTableFn) (void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
 
typedef void(* HUF_DecompressFastLoopFn) (HUF_DecompressFastArgs *)
 

Functions

size_t HUF_readDTableX1_wksp (HUF_DTable *DTable, const void *src, size_t srcSize, void *workSpace, size_t wkspSize, int flags)
 
FORCE_INLINE_TEMPLATE BYTE HUF_decodeSymbolX1 (BIT_DStream_t *Dstream, const HUF_DEltX1 *dt, const U32 dtLog)
 
HINT_INLINE size_t HUF_decodeStreamX1 (BYTE *p, BIT_DStream_t *const bitDPtr, BYTE *const pEnd, const HUF_DEltX1 *const dt, const U32 dtLog)
 
FORCE_INLINE_TEMPLATE size_t HUF_decompress1X1_usingDTable_internal_body (void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
 
FORCE_INLINE_TEMPLATE size_t HUF_decompress4X1_usingDTable_internal_body (void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
 
size_t HUF_readDTableX2_wksp (HUF_DTable *DTable, const void *src, size_t srcSize, void *workSpace, size_t wkspSize, int flags)
 
FORCE_INLINE_TEMPLATE U32 HUF_decodeSymbolX2 (void *op, BIT_DStream_t *DStream, const HUF_DEltX2 *dt, const U32 dtLog)
 
FORCE_INLINE_TEMPLATE U32 HUF_decodeLastSymbolX2 (void *op, BIT_DStream_t *DStream, const HUF_DEltX2 *dt, const U32 dtLog)
 
HINT_INLINE size_t HUF_decodeStreamX2 (BYTE *p, BIT_DStream_t *bitDPtr, BYTE *const pEnd, const HUF_DEltX2 *const dt, const U32 dtLog)
 
FORCE_INLINE_TEMPLATE size_t HUF_decompress1X2_usingDTable_internal_body (void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
 
FORCE_INLINE_TEMPLATE size_t HUF_decompress4X2_usingDTable_internal_body (void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
 
size_t HUF_decompress1X2_DCtx_wksp (HUF_DTable *DCtx, void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize, void *workSpace, size_t wkspSize, int flags)
 
U32 HUF_selectDecoder (size_t dstSize, size_t cSrcSize)
 
size_t HUF_decompress1X_DCtx_wksp (HUF_DTable *dctx, void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize, void *workSpace, size_t wkspSize, int flags)
 
size_t HUF_decompress1X_usingDTable (void *dst, size_t maxDstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable, int flags)
 
size_t HUF_decompress1X1_DCtx_wksp (HUF_DTable *dctx, void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize, void *workSpace, size_t wkspSize, int flags)
 
size_t HUF_decompress4X_usingDTable (void *dst, size_t maxDstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable, int flags)
 
size_t HUF_decompress4X_hufOnly_wksp (HUF_DTable *dctx, void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize, void *workSpace, size_t wkspSize, int flags)
 

Macro Definition Documentation

◆ HUF_ALIGN

#define HUF_ALIGN ( x,
a )
Value:
HUF_ALIGN_MASK((x), (a) - 1)
#define a(i)
Definition sha256.c:41
#define HUF_ALIGN_MASK(x, mask)
Definition huf_decompress.c:81

◆ HUF_ALIGN_MASK

#define HUF_ALIGN_MASK ( x,
mask )
Value:
(((x) + (mask)) & ~(mask))

◆ HUF_ASM_DECL

#define HUF_ASM_DECL   HUF_EXTERN_C

◆ HUF_DECODE_SYMBOLX1_0

#define HUF_DECODE_SYMBOLX1_0 ( ptr,
DStreamPtr )
Value:
*ptr++ = HUF_decodeSymbolX1(DStreamPtr, dt, dtLog)
FORCE_INLINE_TEMPLATE BYTE HUF_decodeSymbolX1(BIT_DStream_t *Dstream, const HUF_DEltX1 *dt, const U32 dtLog)
Definition huf_decompress.c:481

◆ HUF_DECODE_SYMBOLX1_1

#define HUF_DECODE_SYMBOLX1_1 ( ptr,
DStreamPtr )
Value:
if (MEM_64bits() || (HUF_TABLELOG_MAX<=12)) \
HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr)
MEM_STATIC unsigned MEM_64bits(void)
Definition mem.h:95
#define HUF_TABLELOG_MAX
Definition huf.h:42

◆ HUF_DECODE_SYMBOLX1_2

#define HUF_DECODE_SYMBOLX1_2 ( ptr,
DStreamPtr )
Value:
if (MEM_64bits()) \
HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr)

◆ HUF_DECODE_SYMBOLX2_0

#define HUF_DECODE_SYMBOLX2_0 ( ptr,
DStreamPtr )
Value:
ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog)
FORCE_INLINE_TEMPLATE U32 HUF_decodeSymbolX2(void *op, BIT_DStream_t *DStream, const HUF_DEltX2 *dt, const U32 dtLog)
Definition huf_decompress.c:1139

◆ HUF_DECODE_SYMBOLX2_1

#define HUF_DECODE_SYMBOLX2_1 ( ptr,
DStreamPtr )
Value:
if (MEM_64bits() || (HUF_TABLELOG_MAX<=12)) \
ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog)

◆ HUF_DECODE_SYMBOLX2_2

#define HUF_DECODE_SYMBOLX2_2 ( ptr,
DStreamPtr )
Value:
if (MEM_64bits()) \
ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog)

◆ HUF_DECODER_FAST_TABLELOG

#define HUF_DECODER_FAST_TABLELOG   11

◆ HUF_DGEN

#define HUF_DGEN ( fn)
Value:
static size_t fn(void* dst, size_t dstSize, void const* cSrc, \
size_t cSrcSize, HUF_DTable const* DTable, int flags) \
{ \
(void)flags; \
return fn##_body(dst, dstSize, cSrc, cSrcSize, DTable); \
}
char * dst
Definition lz4.h:833
uint32_t flags
Definition container.h:628
U32 HUF_DTable
Definition huf.h:69

◆ HUF_EXTERN_C

#define HUF_EXTERN_C

◆ HUF_FAST_BMI2_ATTRS

#define HUF_FAST_BMI2_ATTRS

◆ HUF_isError

#define HUF_isError   ERR_isError

◆ HUF_NEED_BMI2_FUNCTION

#define HUF_NEED_BMI2_FUNCTION   0

Typedef Documentation

◆ HUF_DecompressFastLoopFn

typedef void(* HUF_DecompressFastLoopFn) (HUF_DecompressFastArgs *)

◆ HUF_DecompressUsingDTableFn

typedef size_t(* HUF_DecompressUsingDTableFn) (void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)

Function Documentation

◆ HUF_decodeLastSymbolX2()

FORCE_INLINE_TEMPLATE U32 HUF_decodeLastSymbolX2 ( void * op,
BIT_DStream_t * DStream,
const HUF_DEltX2 * dt,
const U32 dtLog )

◆ HUF_decodeStreamX1()

HINT_INLINE size_t HUF_decodeStreamX1 ( BYTE * p,
BIT_DStream_t *const bitDPtr,
BYTE *const pEnd,
const HUF_DEltX1 *const dt,
const U32 dtLog )

◆ HUF_decodeStreamX2()

HINT_INLINE size_t HUF_decodeStreamX2 ( BYTE * p,
BIT_DStream_t * bitDPtr,
BYTE *const pEnd,
const HUF_DEltX2 *const dt,
const U32 dtLog )

◆ HUF_decodeSymbolX1()

FORCE_INLINE_TEMPLATE BYTE HUF_decodeSymbolX1 ( BIT_DStream_t * Dstream,
const HUF_DEltX1 * dt,
const U32 dtLog )

◆ HUF_decodeSymbolX2()

FORCE_INLINE_TEMPLATE U32 HUF_decodeSymbolX2 ( void * op,
BIT_DStream_t * DStream,
const HUF_DEltX2 * dt,
const U32 dtLog )

◆ HUF_decompress1X1_DCtx_wksp()

size_t HUF_decompress1X1_DCtx_wksp ( HUF_DTable * dctx,
void * dst,
size_t dstSize,
const void * cSrc,
size_t cSrcSize,
void * workSpace,
size_t wkspSize,
int flags )

◆ HUF_decompress1X1_usingDTable_internal_body()

FORCE_INLINE_TEMPLATE size_t HUF_decompress1X1_usingDTable_internal_body ( void * dst,
size_t dstSize,
const void * cSrc,
size_t cSrcSize,
const HUF_DTable * DTable )

◆ HUF_decompress1X2_DCtx_wksp()

size_t HUF_decompress1X2_DCtx_wksp ( HUF_DTable * dctx,
void * dst,
size_t dstSize,
const void * cSrc,
size_t cSrcSize,
void * workSpace,
size_t wkspSize,
int flags )

double-symbols decoder

◆ HUF_decompress1X2_usingDTable_internal_body()

FORCE_INLINE_TEMPLATE size_t HUF_decompress1X2_usingDTable_internal_body ( void * dst,
size_t dstSize,
const void * cSrc,
size_t cSrcSize,
const HUF_DTable * DTable )

◆ HUF_decompress1X_DCtx_wksp()

size_t HUF_decompress1X_DCtx_wksp ( HUF_DTable * dctx,
void * dst,
size_t dstSize,
const void * cSrc,
size_t cSrcSize,
void * workSpace,
size_t wkspSize,
int flags )

◆ HUF_decompress1X_usingDTable()

size_t HUF_decompress1X_usingDTable ( void * dst,
size_t maxDstSize,
const void * cSrc,
size_t cSrcSize,
const HUF_DTable * DTable,
int flags )

◆ HUF_decompress4X1_usingDTable_internal_body()

FORCE_INLINE_TEMPLATE size_t HUF_decompress4X1_usingDTable_internal_body ( void * dst,
size_t dstSize,
const void * cSrc,
size_t cSrcSize,
const HUF_DTable * DTable )

◆ HUF_decompress4X2_usingDTable_internal_body()

FORCE_INLINE_TEMPLATE size_t HUF_decompress4X2_usingDTable_internal_body ( void * dst,
size_t dstSize,
const void * cSrc,
size_t cSrcSize,
const HUF_DTable * DTable )

◆ HUF_decompress4X_hufOnly_wksp()

size_t HUF_decompress4X_hufOnly_wksp ( HUF_DTable * dctx,
void * dst,
size_t dstSize,
const void * cSrc,
size_t cSrcSize,
void * workSpace,
size_t wkspSize,
int flags )

◆ HUF_decompress4X_usingDTable()

size_t HUF_decompress4X_usingDTable ( void * dst,
size_t maxDstSize,
const void * cSrc,
size_t cSrcSize,
const HUF_DTable * DTable,
int flags )

◆ HUF_readDTableX1_wksp()

size_t HUF_readDTableX1_wksp ( HUF_DTable * DTable,
const void * src,
size_t srcSize,
void * workSpace,
size_t wkspSize,
int flags )

◆ HUF_readDTableX2_wksp()

size_t HUF_readDTableX2_wksp ( HUF_DTable * DTable,
const void * src,
size_t srcSize,
void * workSpace,
size_t wkspSize,
int flags )

◆ HUF_selectDecoder()

U32 HUF_selectDecoder ( size_t dstSize,
size_t cSrcSize )

HUF_selectDecoder() : Tells which decoder is likely to decode faster, based on a set of pre-computed metrics.

Returns
: 0==HUF_decompress4X1, 1==HUF_decompress4X2 . Assumption : 0 < dstSize <= 128 KB