Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(214)

Side by Side Diff: third_party/lzma_sdk/C/LzFindMt.h

Issue 6730044: Upgrading lzma_sdk to version 9.20. Base URL: svn://chrome-svn.corp.google.com/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/lzma_sdk/C/LzFind.c ('k') | third_party/lzma_sdk/C/LzFindMt.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Added: svn:executable
+ *
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 /* LzFindMt.h -- multithreaded Match finder for LZ algorithms
2 2009-02-07 : Igor Pavlov : Public domain */
3
4 #ifndef __LZ_FIND_MT_H
5 #define __LZ_FIND_MT_H
6
7 #include "LzFind.h"
8 #include "Threads.h"
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 #define kMtHashBlockSize (1 << 13)
15 #define kMtHashNumBlocks (1 << 3)
16 #define kMtHashNumBlocksMask (kMtHashNumBlocks - 1)
17
18 #define kMtBtBlockSize (1 << 14)
19 #define kMtBtNumBlocks (1 << 6)
20 #define kMtBtNumBlocksMask (kMtBtNumBlocks - 1)
21
22 typedef struct _CMtSync
23 {
24 Bool wasCreated;
25 Bool needStart;
26 Bool exit;
27 Bool stopWriting;
28
29 CThread thread;
30 CAutoResetEvent canStart;
31 CAutoResetEvent wasStarted;
32 CAutoResetEvent wasStopped;
33 CSemaphore freeSemaphore;
34 CSemaphore filledSemaphore;
35 Bool csWasInitialized;
36 Bool csWasEntered;
37 CCriticalSection cs;
38 UInt32 numProcessedBlocks;
39 } CMtSync;
40
41 typedef UInt32 * (*Mf_Mix_Matches)(void *p, UInt32 matchMinPos, UInt32 *distance s);
42
43 /* kMtCacheLineDummy must be >= size_of_CPU_cache_line */
44 #define kMtCacheLineDummy 128
45
46 typedef void (*Mf_GetHeads)(const Byte *buffer, UInt32 pos,
47 UInt32 *hash, UInt32 hashMask, UInt32 *heads, UInt32 numHeads, const UInt32 *c rc);
48
49 typedef struct _CMatchFinderMt
50 {
51 /* LZ */
52 const Byte *pointerToCurPos;
53 UInt32 *btBuf;
54 UInt32 btBufPos;
55 UInt32 btBufPosLimit;
56 UInt32 lzPos;
57 UInt32 btNumAvailBytes;
58
59 UInt32 *hash;
60 UInt32 fixedHashSize;
61 UInt32 historySize;
62 const UInt32 *crc;
63
64 Mf_Mix_Matches MixMatchesFunc;
65
66 /* LZ + BT */
67 CMtSync btSync;
68 Byte btDummy[kMtCacheLineDummy];
69
70 /* BT */
71 UInt32 *hashBuf;
72 UInt32 hashBufPos;
73 UInt32 hashBufPosLimit;
74 UInt32 hashNumAvail;
75
76 CLzRef *son;
77 UInt32 matchMaxLen;
78 UInt32 numHashBytes;
79 UInt32 pos;
80 Byte *buffer;
81 UInt32 cyclicBufferPos;
82 UInt32 cyclicBufferSize; /* it must be historySize + 1 */
83 UInt32 cutValue;
84
85 /* BT + Hash */
86 CMtSync hashSync;
87 /* Byte hashDummy[kMtCacheLineDummy]; */
88
89 /* Hash */
90 Mf_GetHeads GetHeadsFunc;
91 CMatchFinder *MatchFinder;
92 } CMatchFinderMt;
93
94 void MatchFinderMt_Construct(CMatchFinderMt *p);
95 void MatchFinderMt_Destruct(CMatchFinderMt *p, ISzAlloc *alloc);
96 SRes MatchFinderMt_Create(CMatchFinderMt *p, UInt32 historySize, UInt32 keepAddB ufferBefore,
97 UInt32 matchMaxLen, UInt32 keepAddBufferAfter, ISzAlloc *alloc);
98 void MatchFinderMt_CreateVTable(CMatchFinderMt *p, IMatchFinder *vTable);
99 void MatchFinderMt_ReleaseStream(CMatchFinderMt *p);
100
101 #ifdef __cplusplus
102 }
103 #endif
104
105 #endif
OLDNEW
« no previous file with comments | « third_party/lzma_sdk/C/LzFind.c ('k') | third_party/lzma_sdk/C/LzFindMt.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698