Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
LzFindMt.c File Reference
#include "Precomp.h"
#include "CpuArch.h"
#include "LzHash.h"
#include "LzFindMt.h"

Macros

#define PRF(x)
 
#define LOG_ITER(x)
 
#define kMtHashBlockSize   ((UInt32)1 << 17)
 
#define kMtHashNumBlocks   (1 << 1)
 
#define GET_HASH_BLOCK_OFFSET(i)
 
#define kMtBtBlockSize   ((UInt32)1 << 16)
 
#define kMtBtNumBlocks   (1 << 4)
 
#define GET_BT_BLOCK_OFFSET(i)
 
#define MF(mt)
 
#define MF_CRC   (p->crc)
 
#define MT_HASH2_CALC    h2 = (MF_CRC[cur[0]] ^ cur[1]) & (kHash2Size - 1);
 
#define MT_HASH3_CALC
 
#define BUFFER_MUST_BE_LOCKED(p)
 
#define BUFFER_MUST_BE_UNLOCKED(p)
 
#define LOCK_BUFFER(p)
 
#define UNLOCK_BUFFER(p)
 
#define RINOK_THREAD(x)
 
#define kMtMaxValForNormalize   0xFFFFFFFF
 
#define GetUi24hi_from32(p)
 
#define GetHeads_DECL(name)
 
#define GetHeads_LOOP(v)
 
#define DEF_GetHeads2(name, v, action)
 
#define DEF_GetHeads(name, v)
 
#define USE_GetHeads_LOCAL_CRC
 
#define CYC_TO_POS_OFFSET   0
 
#define MFMT_GM_INLINE
 
#define kHashBufferSize   (kMtHashBlockSize * kMtHashNumBlocks)
 
#define kBtBufferSize   (kMtBtBlockSize * kMtBtNumBlocks)
 
#define GET_NEXT_BLOCK_IF_REQUIRED   if (p->btBufPos == p->btBufPosLimit) MatchFinderMt_GetNextBlock_Bt(p);
 
#define CHECK_FAILURE_LZ(_match_, _pos_)
 
#define INCREASE_LZ_POS   p->lzPos++; p->pointerToCurPos++;
 
#define BT_HASH_BYTES_MAX   5
 
#define SKIP_HEADER2_MT   do { GET_NEXT_BLOCK_IF_REQUIRED
 
#define SKIP_HEADER_MT(n)
 
#define SKIP_FOOTER_MT   } INCREASE_LZ_POS p->btBufPos += (size_t)*p->btBufPos + 1; } while (--num != 0);
 

Functions

 DEF_GetHeads2 (2, GetUi16(p), UNUSED_VAR(hashMask);UNUSED_VAR(crc);)
 
 GetHeads_DECL (4b)
 
 GetHeads_DECL (5)
 
 GetHeads_DECL (5b)
 
UInt32 *Z7_FASTCALL GetMatchesSpecN_2 (const Byte *lenLimit, size_t pos, const Byte *cur, CLzRef *son, UInt32 _cutValue, UInt32 *d, size_t _maxLen, const UInt32 *hash, const UInt32 *limit, const UInt32 *size, size_t _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 *posRes)
 
void MatchFinderMt_Construct (CMatchFinderMt *p)
 
void MatchFinderMt_Destruct (CMatchFinderMt *p, ISzAllocPtr alloc)
 
SRes MatchFinderMt_Create (CMatchFinderMt *p, UInt32 historySize, UInt32 keepAddBufferBefore, UInt32 matchMaxLen, UInt32 keepAddBufferAfter, ISzAllocPtr alloc)
 
SRes MatchFinderMt_InitMt (CMatchFinderMt *p)
 
void MatchFinderMt_ReleaseStream (CMatchFinderMt *p)
 

Macro Definition Documentation

◆ BT_HASH_BYTES_MAX

#define BT_HASH_BYTES_MAX   5

◆ BUFFER_MUST_BE_LOCKED

#define BUFFER_MUST_BE_LOCKED ( p)

◆ BUFFER_MUST_BE_UNLOCKED

#define BUFFER_MUST_BE_UNLOCKED ( p)

◆ CHECK_FAILURE_LZ

#define CHECK_FAILURE_LZ ( _match_,
_pos_ )

◆ CYC_TO_POS_OFFSET

#define CYC_TO_POS_OFFSET   0

◆ DEF_GetHeads

#define DEF_GetHeads ( name,
v )
Value:
#define DEF_GetHeads2(name, v, action)
Definition LzFindMt.c:307
char name[NAME_LEN_MAX+1]
Name of the filter.
Definition string_conversion.c:450

◆ DEF_GetHeads2

#define DEF_GetHeads2 ( name,
v,
action )
Value:
GetHeads_DECL(name) { action \
GetHeads_LOOP(v) }
#define GetHeads_DECL(name)
Definition LzFindMt.c:296

◆ GET_BT_BLOCK_OFFSET

#define GET_BT_BLOCK_OFFSET ( i)
Value:
(((i) & (kMtBtNumBlocks - 1)) * (size_t)kMtBtBlockSize)
#define kMtBtNumBlocks
Definition LzFindMt.c:40
#define kMtBtBlockSize
Definition LzFindMt.c:39
lzma_index ** i
Definition index.h:629

◆ GET_HASH_BLOCK_OFFSET

#define GET_HASH_BLOCK_OFFSET ( i)
Value:
#define kMtHashBlockSize
Definition LzFindMt.c:34
#define kMtHashNumBlocks
Definition LzFindMt.c:35

◆ GET_NEXT_BLOCK_IF_REQUIRED

#define GET_NEXT_BLOCK_IF_REQUIRED   if (p->btBufPos == p->btBufPosLimit) MatchFinderMt_GetNextBlock_Bt(p);

◆ GetHeads_DECL

#define GetHeads_DECL ( name)
Value:
static void GetHeads ## name(const Byte *p, UInt32 pos, \
UInt32 *hash, UInt32 hashMask, UInt32 *heads, UInt32 numHeads, const UInt32 *crc)
unsigned int UInt32
Definition bzlib_private.h:45
unsigned char Byte
Definition zconf.h:391

◆ GetHeads_LOOP

#define GetHeads_LOOP ( v)
Value:
for (; numHeads != 0; numHeads--) { \
const UInt32 value = (v); \
p++; \
*heads++ = pos - hash[value]; \
hash[value] = pos++; }

◆ GetUi24hi_from32

#define GetUi24hi_from32 ( p)
Value:
((p)[1] ^ ((UInt32)(p)[2] << 8) ^ ((UInt32)(p)[3] << 16))

◆ INCREASE_LZ_POS

#define INCREASE_LZ_POS   p->lzPos++; p->pointerToCurPos++;

◆ kBtBufferSize

#define kBtBufferSize   (kMtBtBlockSize * kMtBtNumBlocks)

◆ kHashBufferSize

#define kHashBufferSize   (kMtHashBlockSize * kMtHashNumBlocks)

◆ kMtBtBlockSize

#define kMtBtBlockSize   ((UInt32)1 << 16)

◆ kMtBtNumBlocks

#define kMtBtNumBlocks   (1 << 4)

◆ kMtHashBlockSize

#define kMtHashBlockSize   ((UInt32)1 << 17)

◆ kMtHashNumBlocks

#define kMtHashNumBlocks   (1 << 1)

◆ kMtMaxValForNormalize

#define kMtMaxValForNormalize   0xFFFFFFFF

◆ LOCK_BUFFER

#define LOCK_BUFFER ( p)
Value:
{ \
BUFFER_MUST_BE_UNLOCKED(p); \
CriticalSection_Enter(&(p)->cs); \
(p)->csWasEntered = True; }
#define True
Definition bzlib_private.h:49

◆ LOG_ITER

#define LOG_ITER ( x)

◆ MF

#define MF ( mt)
Value:
((mt)->MatchFinder)

◆ MF_CRC

#define MF_CRC   (p->crc)

◆ MFMT_GM_INLINE

#define MFMT_GM_INLINE

◆ MT_HASH2_CALC

#define MT_HASH2_CALC    h2 = (MF_CRC[cur[0]] ^ cur[1]) & (kHash2Size - 1);

◆ MT_HASH3_CALC

#define MT_HASH3_CALC
Value:
{ \
UInt32 temp = MF_CRC[cur[0]] ^ cur[1]; \
h2 = temp & (kHash2Size - 1); \
h3 = (temp ^ ((UInt32)cur[2] << 8)) & (kHash3Size - 1); }
#define MF_CRC
Definition LzFindMt.c:54
#define kHash2Size
Definition LzHash.h:12
#define kHash3Size
Definition LzHash.h:13

◆ PRF

#define PRF ( x)

◆ RINOK_THREAD

#define RINOK_THREAD ( x)
Value:
#define RINOK_WRes(x)
Definition 7zTypes.h:168

◆ SKIP_FOOTER_MT

#define SKIP_FOOTER_MT   } INCREASE_LZ_POS p->btBufPos += (size_t)*p->btBufPos + 1; } while (--num != 0);

◆ SKIP_HEADER2_MT

#define SKIP_HEADER2_MT   do { GET_NEXT_BLOCK_IF_REQUIRED

◆ SKIP_HEADER_MT

#define SKIP_HEADER_MT ( n)
Value:
SKIP_HEADER2_MT if (p->btNumAvailBytes-- >= (n)) { const Byte *cur = p->pointerToCurPos; UInt32 *hash = p->hash;
#define SKIP_HEADER2_MT
Definition LzFindMt.c:1319

◆ UNLOCK_BUFFER

#define UNLOCK_BUFFER ( p)
Value:
{ \
BUFFER_MUST_BE_LOCKED(p); \
CriticalSection_Leave(&(p)->cs); \
(p)->csWasEntered = False; }
#define False
Definition bzlib_private.h:50

◆ USE_GetHeads_LOCAL_CRC

#define USE_GetHeads_LOCAL_CRC

Function Documentation

◆ DEF_GetHeads2()

DEF_GetHeads2 ( 2 ,
GetUi16(p) ,
UNUSED_VAR(hashMask);UNUSED_VAR(crc);  )

◆ GetHeads_DECL() [1/3]

GetHeads_DECL ( 4b )

◆ GetHeads_DECL() [2/3]

GetHeads_DECL ( 5 )

◆ GetHeads_DECL() [3/3]

GetHeads_DECL ( 5b )

◆ GetMatchesSpecN_2()

Z7_NO_INLINE UInt32 *Z7_FASTCALL GetMatchesSpecN_2 ( const Byte * lenLimit,
size_t pos,
const Byte * cur,
CLzRef * son,
UInt32 _cutValue,
UInt32 * d,
size_t _maxLen,
const UInt32 * hash,
const UInt32 * limit,
const UInt32 * size,
size_t _cyclicBufferPos,
UInt32 _cyclicBufferSize,
UInt32 * posRes )

◆ MatchFinderMt_Construct()

void MatchFinderMt_Construct ( CMatchFinderMt * p)

◆ MatchFinderMt_Create()

SRes MatchFinderMt_Create ( CMatchFinderMt * p,
UInt32 historySize,
UInt32 keepAddBufferBefore,
UInt32 matchMaxLen,
UInt32 keepAddBufferAfter,
ISzAllocPtr alloc )

◆ MatchFinderMt_Destruct()

void MatchFinderMt_Destruct ( CMatchFinderMt * p,
ISzAllocPtr alloc )

◆ MatchFinderMt_InitMt()

SRes MatchFinderMt_InitMt ( CMatchFinderMt * p)

◆ MatchFinderMt_ReleaseStream()

void MatchFinderMt_ReleaseStream ( CMatchFinderMt * p)