lzoruby 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. data/{README.txt → README} +3 -7
  2. data/ext/extconf.rb +4 -1
  3. metadata +24 -131
  4. data/ext/compr1b.h +0 -81
  5. data/ext/compr1c.h +0 -81
  6. data/ext/config1.h +0 -61
  7. data/ext/config1a.h +0 -196
  8. data/ext/config1b.h +0 -140
  9. data/ext/config1c.h +0 -145
  10. data/ext/config1f.h +0 -97
  11. data/ext/config1x.h +0 -118
  12. data/ext/config1y.h +0 -66
  13. data/ext/config1z.h +0 -65
  14. data/ext/config2a.h +0 -155
  15. data/ext/lzo/lzo1.h +0 -96
  16. data/ext/lzo/lzo1a.h +0 -96
  17. data/ext/lzo/lzo1b.h +0 -160
  18. data/ext/lzo/lzo1c.h +0 -160
  19. data/ext/lzo/lzo1f.h +0 -108
  20. data/ext/lzo/lzo1x.h +0 -177
  21. data/ext/lzo/lzo1y.h +0 -145
  22. data/ext/lzo/lzo1z.h +0 -150
  23. data/ext/lzo/lzo2a.h +0 -92
  24. data/ext/lzo/lzo_asm.h +0 -139
  25. data/ext/lzo/lzoconf.h +0 -417
  26. data/ext/lzo/lzodefs.h +0 -1807
  27. data/ext/lzo/lzoutil.h +0 -73
  28. data/ext/lzo1.c +0 -635
  29. data/ext/lzo1_99.c +0 -130
  30. data/ext/lzo1_cm.ch +0 -52
  31. data/ext/lzo1_d.ch +0 -155
  32. data/ext/lzo1a.c +0 -657
  33. data/ext/lzo1a_99.c +0 -130
  34. data/ext/lzo1a_cm.ch +0 -242
  35. data/ext/lzo1a_cr.ch +0 -128
  36. data/ext/lzo1a_de.h +0 -158
  37. data/ext/lzo1b_1.c +0 -46
  38. data/ext/lzo1b_2.c +0 -46
  39. data/ext/lzo1b_3.c +0 -46
  40. data/ext/lzo1b_4.c +0 -46
  41. data/ext/lzo1b_5.c +0 -46
  42. data/ext/lzo1b_6.c +0 -46
  43. data/ext/lzo1b_7.c +0 -46
  44. data/ext/lzo1b_8.c +0 -46
  45. data/ext/lzo1b_9.c +0 -46
  46. data/ext/lzo1b_99.c +0 -49
  47. data/ext/lzo1b_9x.c +0 -365
  48. data/ext/lzo1b_c.ch +0 -270
  49. data/ext/lzo1b_cc.c +0 -167
  50. data/ext/lzo1b_cc.h +0 -93
  51. data/ext/lzo1b_cm.ch +0 -294
  52. data/ext/lzo1b_cr.ch +0 -126
  53. data/ext/lzo1b_d.ch +0 -282
  54. data/ext/lzo1b_d1.c +0 -46
  55. data/ext/lzo1b_d2.c +0 -46
  56. data/ext/lzo1b_de.h +0 -344
  57. data/ext/lzo1b_r.ch +0 -117
  58. data/ext/lzo1b_rr.c +0 -43
  59. data/ext/lzo1b_sm.ch +0 -210
  60. data/ext/lzo1b_tm.ch +0 -99
  61. data/ext/lzo1b_xx.c +0 -98
  62. data/ext/lzo1c_1.c +0 -46
  63. data/ext/lzo1c_2.c +0 -46
  64. data/ext/lzo1c_3.c +0 -46
  65. data/ext/lzo1c_4.c +0 -46
  66. data/ext/lzo1c_5.c +0 -46
  67. data/ext/lzo1c_6.c +0 -46
  68. data/ext/lzo1c_7.c +0 -46
  69. data/ext/lzo1c_8.c +0 -46
  70. data/ext/lzo1c_9.c +0 -46
  71. data/ext/lzo1c_99.c +0 -49
  72. data/ext/lzo1c_9x.c +0 -379
  73. data/ext/lzo1c_cc.c +0 -167
  74. data/ext/lzo1c_cc.h +0 -93
  75. data/ext/lzo1c_d1.c +0 -46
  76. data/ext/lzo1c_d2.c +0 -46
  77. data/ext/lzo1c_rr.c +0 -43
  78. data/ext/lzo1c_xx.c +0 -98
  79. data/ext/lzo1f_1.c +0 -312
  80. data/ext/lzo1f_9x.c +0 -345
  81. data/ext/lzo1f_d.ch +0 -223
  82. data/ext/lzo1f_d1.c +0 -46
  83. data/ext/lzo1f_d2.c +0 -46
  84. data/ext/lzo1x_1.c +0 -50
  85. data/ext/lzo1x_1k.c +0 -50
  86. data/ext/lzo1x_1l.c +0 -50
  87. data/ext/lzo1x_1o.c +0 -50
  88. data/ext/lzo1x_9x.c +0 -881
  89. data/ext/lzo1x_c.ch +0 -351
  90. data/ext/lzo1x_d.ch +0 -466
  91. data/ext/lzo1x_d1.c +0 -46
  92. data/ext/lzo1x_d2.c +0 -46
  93. data/ext/lzo1x_d3.c +0 -108
  94. data/ext/lzo1x_o.c +0 -45
  95. data/ext/lzo1x_oo.ch +0 -366
  96. data/ext/lzo1y_1.c +0 -50
  97. data/ext/lzo1y_9x.c +0 -42
  98. data/ext/lzo1y_d1.c +0 -46
  99. data/ext/lzo1y_d2.c +0 -46
  100. data/ext/lzo1y_d3.c +0 -45
  101. data/ext/lzo1y_o.c +0 -45
  102. data/ext/lzo1z_9x.c +0 -42
  103. data/ext/lzo1z_d1.c +0 -46
  104. data/ext/lzo1z_d2.c +0 -46
  105. data/ext/lzo1z_d3.c +0 -45
  106. data/ext/lzo2a_9x.c +0 -357
  107. data/ext/lzo2a_d.ch +0 -188
  108. data/ext/lzo2a_d1.c +0 -46
  109. data/ext/lzo2a_d2.c +0 -46
  110. data/ext/lzo_conf.h +0 -323
  111. data/ext/lzo_crc.c +0 -167
  112. data/ext/lzo_dict.h +0 -316
  113. data/ext/lzo_dll.ch +0 -64
  114. data/ext/lzo_init.c +0 -176
  115. data/ext/lzo_mchw.ch +0 -242
  116. data/ext/lzo_ptr.c +0 -92
  117. data/ext/lzo_ptr.h +0 -154
  118. data/ext/lzo_str.c +0 -71
  119. data/ext/lzo_swd.ch +0 -707
  120. data/ext/lzo_util.c +0 -165
  121. data/ext/miniacc.h +0 -6553
  122. data/ext/stats1a.h +0 -137
  123. data/ext/stats1b.h +0 -142
  124. data/ext/stats1c.h +0 -61
@@ -1,46 +0,0 @@
1
- /* lzo1b_d1.c -- LZO1B decompression
2
-
3
- This file is part of the LZO real-time data compression library.
4
-
5
- Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
6
- Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
7
- Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
8
- Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
9
- Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
10
- Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
11
- Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
12
- Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
13
- Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
14
- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
15
- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
16
- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
17
- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
18
- All Rights Reserved.
19
-
20
- The LZO library is free software; you can redistribute it and/or
21
- modify it under the terms of the GNU General Public License as
22
- published by the Free Software Foundation; either version 2 of
23
- the License, or (at your option) any later version.
24
-
25
- The LZO library is distributed in the hope that it will be useful,
26
- but WITHOUT ANY WARRANTY; without even the implied warranty of
27
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28
- GNU General Public License for more details.
29
-
30
- You should have received a copy of the GNU General Public License
31
- along with the LZO library; see the file COPYING.
32
- If not, write to the Free Software Foundation, Inc.,
33
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
34
-
35
- Markus F.X.J. Oberhumer
36
- <markus@oberhumer.com>
37
- http://www.oberhumer.com/opensource/lzo/
38
- */
39
-
40
-
41
- #include "config1b.h"
42
-
43
- #undef LZO_TEST_OVERRUN
44
- #define DO_DECOMPRESS lzo1b_decompress
45
-
46
- #include "lzo1b_d.ch"
@@ -1,46 +0,0 @@
1
- /* lzo1b_d2.c -- LZO1B decompression with overrun testing
2
-
3
- This file is part of the LZO real-time data compression library.
4
-
5
- Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
6
- Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
7
- Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
8
- Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
9
- Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
10
- Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
11
- Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
12
- Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
13
- Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
14
- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
15
- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
16
- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
17
- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
18
- All Rights Reserved.
19
-
20
- The LZO library is free software; you can redistribute it and/or
21
- modify it under the terms of the GNU General Public License as
22
- published by the Free Software Foundation; either version 2 of
23
- the License, or (at your option) any later version.
24
-
25
- The LZO library is distributed in the hope that it will be useful,
26
- but WITHOUT ANY WARRANTY; without even the implied warranty of
27
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28
- GNU General Public License for more details.
29
-
30
- You should have received a copy of the GNU General Public License
31
- along with the LZO library; see the file COPYING.
32
- If not, write to the Free Software Foundation, Inc.,
33
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
34
-
35
- Markus F.X.J. Oberhumer
36
- <markus@oberhumer.com>
37
- http://www.oberhumer.com/opensource/lzo/
38
- */
39
-
40
-
41
- #include "config1b.h"
42
-
43
- #define LZO_TEST_OVERRUN
44
- #define DO_DECOMPRESS lzo1b_decompress_safe
45
-
46
- #include "lzo1b_d.ch"
@@ -1,344 +0,0 @@
1
- /* lzo1b_de.h -- definitions for the the LZO1B/LZO1C algorithm
2
-
3
- This file is part of the LZO real-time data compression library.
4
-
5
- Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
6
- Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
7
- Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
8
- Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
9
- Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
10
- Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
11
- Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
12
- Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
13
- Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
14
- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
15
- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
16
- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
17
- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
18
- All Rights Reserved.
19
-
20
- The LZO library is free software; you can redistribute it and/or
21
- modify it under the terms of the GNU General Public License as
22
- published by the Free Software Foundation; either version 2 of
23
- the License, or (at your option) any later version.
24
-
25
- The LZO library is distributed in the hope that it will be useful,
26
- but WITHOUT ANY WARRANTY; without even the implied warranty of
27
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28
- GNU General Public License for more details.
29
-
30
- You should have received a copy of the GNU General Public License
31
- along with the LZO library; see the file COPYING.
32
- If not, write to the Free Software Foundation, Inc.,
33
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
34
-
35
- Markus F.X.J. Oberhumer
36
- <markus@oberhumer.com>
37
- http://www.oberhumer.com/opensource/lzo/
38
- */
39
-
40
-
41
- /* WARNING: this file should *not* be used by applications. It is
42
- part of the implementation of the library and is subject
43
- to change.
44
- */
45
-
46
-
47
- #ifndef __LZO_DEFS_H
48
- #define __LZO_DEFS_H
49
-
50
- #ifdef __cplusplus
51
- extern "C" {
52
- #endif
53
-
54
-
55
- /***********************************************************************
56
- //
57
- ************************************************************************/
58
-
59
- /*
60
- Format of the marker byte
61
-
62
- 76543210
63
- --------
64
- 00000000 R0 - a long literal run ('R0' run)
65
- 000rrrrr R - a short literal run with len r
66
- 00100000 M4 - a very long match
67
- 001mmmmm M3 - a long match (len = m+M3_MIN_LEN)
68
- mmmooooo M2 - a short match (len = m+M2_MIN_LEN, o = offset low bits)
69
-
70
- M1 is not used !
71
- */
72
-
73
-
74
- #ifndef R_BITS
75
- #define R_BITS (5)
76
- #endif
77
-
78
-
79
- #ifndef M1L_BITS
80
- #define M1L_BITS (0)
81
- #endif
82
- #ifndef M2L_BITS
83
- #define M2L_BITS (CHAR_BIT - M2O_BITS)
84
- #endif
85
- #ifndef M3L_BITS
86
- #define M3L_BITS (R_BITS)
87
- #endif
88
- #ifndef M4L_BITS
89
- #define M4L_BITS (CHAR_BIT)
90
- #endif
91
-
92
- #ifndef M1O_BITS
93
- #define M1O_BITS (6)
94
- #endif
95
- #ifndef M2O_BITS
96
- #define M2O_BITS (R_BITS)
97
- #endif
98
- #ifndef M3O_BITS
99
- #define M3O_BITS (CHAR_BIT)
100
- #endif
101
- #ifndef M4O_BITS
102
- #define M4O_BITS (M3O_BITS) /* must be the same */
103
- #endif
104
-
105
- #ifndef M1X_BITS
106
- #define M1X_BITS (M1O_BITS)
107
- #endif
108
- #ifndef M2X_BITS
109
- #define M2X_BITS (M2O_BITS + CHAR_BIT)
110
- #endif
111
- #ifndef M3X_BITS
112
- #define M3X_BITS (M3O_BITS + CHAR_BIT)
113
- #endif
114
- #ifndef M4X_BITS
115
- #define M4X_BITS M3X_BITS
116
- #endif
117
-
118
-
119
- #define __MIN_OFFSET(bits) 1
120
- #define __MAX_OFFSET(bits) LZO_LSIZE(bits)
121
-
122
- #define M1_MIN_OFFSET __MIN_OFFSET(M1X_BITS)
123
- #define M2_MIN_OFFSET __MIN_OFFSET(M2X_BITS)
124
- #define M3_MIN_OFFSET __MIN_OFFSET(M3X_BITS)
125
- #define M4_MIN_OFFSET M3_MIN_OFFSET
126
-
127
- #if defined(LZO_EOF_CODE) && !defined(M3_EOF_OFFSET)
128
- #define M3_EOF_OFFSET 1
129
- #else
130
- #define M3_EOF_OFFSET 0
131
- #endif
132
-
133
- #ifndef _M1_MAX_OFFSET
134
- #define _M1_MAX_OFFSET __MAX_OFFSET(M1X_BITS)
135
- #endif
136
- #ifndef _M2_MAX_OFFSET
137
- #define _M2_MAX_OFFSET __MAX_OFFSET(M2X_BITS)
138
- #endif
139
- #ifndef _M3_MAX_OFFSET
140
- #define _M3_MAX_OFFSET (__MAX_OFFSET(M3X_BITS) - M3_EOF_OFFSET)
141
- #endif
142
- #ifndef _M4_MAX_OFFSET
143
- #define _M4_MAX_OFFSET _M3_MAX_OFFSET
144
- #endif
145
- #ifndef _MAX_OFFSET
146
- #define _MAX_OFFSET _M4_MAX_OFFSET
147
- #endif
148
-
149
- #if (M3_EOF_OFFSET > 0) && (_M2_MAX_OFFSET == _M3_MAX_OFFSET + M3_EOF_OFFSET)
150
- # undef _M2_MAX_OFFSET
151
- # define _M2_MAX_OFFSET _M3_MAX_OFFSET
152
- #endif
153
- #if (_M2_MAX_OFFSET > _M3_MAX_OFFSET)
154
- # error
155
- #endif
156
-
157
- #define M1_MAX_OFFSET ((lzo_uint) _M1_MAX_OFFSET)
158
- #define M2_MAX_OFFSET ((lzo_uint) _M2_MAX_OFFSET)
159
- #define M3_MAX_OFFSET ((lzo_uint) _M3_MAX_OFFSET)
160
- #define M4_MAX_OFFSET ((lzo_uint) _M4_MAX_OFFSET)
161
- #define MAX_OFFSET ((lzo_uint) _MAX_OFFSET)
162
-
163
-
164
- #ifndef M1_MIN_LEN
165
- #define M1_MIN_LEN (2)
166
- #endif
167
- #ifndef M2_MIN_LEN
168
- #define M2_MIN_LEN (3)
169
- #endif
170
- #ifndef M3_MIN_LEN
171
- #if (M3X_BITS == M2X_BITS)
172
- #define M3_MIN_LEN (M2_MAX_LEN + 1)
173
- #else
174
- #define M3_MIN_LEN (4)
175
- #endif
176
- #endif
177
- #ifndef M4_MIN_LEN
178
- #define M4_MIN_LEN (M3_MAX_LEN + 1)
179
- #endif
180
-
181
- #ifndef M1_MAX_LEN
182
- #define M1_MAX_LEN (M1_MIN_LEN + LZO_SIZE(M1L_BITS) - 1)
183
- #endif
184
- #ifndef M2_MAX_LEN
185
- #define M2_MAX_LEN (M2_MIN_LEN + LZO_SIZE(M2L_BITS) - 3)
186
- #endif
187
- #ifndef M3_MAX_LEN
188
- #define M3_MAX_LEN (M3_MIN_LEN + LZO_SIZE(M3L_BITS) - 2)
189
- #endif
190
- #ifndef M4_MAX_LEN
191
- #define M4_MAX_LEN (ULONG_MAX)
192
- #endif
193
-
194
-
195
- #define M1O_MASK LZO_MASK(M1O_BITS)
196
- #define M1L_MASK LZO_MASK(M1L_BITS)
197
- #define M2O_MASK LZO_MASK(M2O_BITS)
198
- #define M2L_MASK LZO_MASK(M2L_BITS)
199
- #define M3O_MASK LZO_MASK(M3O_BITS)
200
- #define M3L_MASK LZO_MASK(M3L_BITS)
201
- #define M4O_MASK LZO_MASK(M4O_BITS)
202
- #define M4L_MASK LZO_MASK(M4L_BITS)
203
-
204
-
205
- #define M1_MARKER (1 << M1O_BITS)
206
- #define M2_MARKER (2 << M2O_BITS)
207
- #define M3_MARKER (1 << M3L_BITS)
208
- #define M4_MARKER M3_MARKER
209
-
210
-
211
- /***********************************************************************
212
- // R0 literal run (a long run)
213
- ************************************************************************/
214
-
215
- #ifndef R0MIN
216
- #define R0MIN (LZO_SIZE(R_BITS)) /* Minimum len of R0 run of literals */
217
- #endif
218
- #define R0MAX (R0MIN + 256 - 1) /* Maximum len of R0 run of literals */
219
-
220
- #if (R0MAX - (R0MAX & ~7u) >= 7)
221
- #define R0FAST (R0MAX & ~7u) /* R0MAX aligned to 8 byte boundary */
222
- #else
223
- #define R0FAST (R0MAX & ~15u) /* R0MAX aligned to 8 byte boundary */
224
- #endif
225
-
226
- #if (R0MAX - R0FAST < 7) || ((R0FAST & 7) != 0)
227
- # error "something went wrong"
228
- #endif
229
- #if (R0FAST * 2 < 512)
230
- # error "R0FAST is not big enough"
231
- #endif
232
-
233
- /* 7 special codes from R0FAST+1 .. R0MAX
234
- * these codes mean long R0 runs with lengths
235
- * 512, 1024, 2048, 4096, 8192, 16384, 32768
236
- */
237
-
238
-
239
-
240
- /***********************************************************************
241
- // matching
242
- ************************************************************************/
243
-
244
- #define PS *m_pos++ != *ip++
245
-
246
-
247
- /* We already matched M2_MIN_LEN bytes.
248
- * Try to match another M2_MAX_LEN - M2_MIN_LEN bytes. */
249
-
250
- #if (M2_MAX_LEN - M2_MIN_LEN == 4)
251
- # define MATCH_M2X (PS || PS || PS || PS)
252
- #elif (M2_MAX_LEN - M2_MIN_LEN == 5)
253
- # define MATCH_M2X (PS || PS || PS || PS || PS)
254
- #elif (M2_MAX_LEN - M2_MIN_LEN == 6)
255
- # define MATCH_M2X (PS || PS || PS || PS || PS || PS)
256
- #elif (M2_MAX_LEN - M2_MIN_LEN == 7)
257
- # define MATCH_M2X (PS || PS || PS || PS || PS || PS || PS)
258
- #elif (M2_MAX_LEN - M2_MIN_LEN == 13)
259
- # define MATCH_M2X (PS || PS || PS || PS || PS || PS || PS || PS || \
260
- PS || PS || PS || PS || PS)
261
- #elif (M2_MAX_LEN - M2_MIN_LEN == 14)
262
- # define MATCH_M2X (PS || PS || PS || PS || PS || PS || PS || PS || \
263
- PS || PS || PS || PS || PS || PS)
264
- #elif (M2_MAX_LEN - M2_MIN_LEN == 16)
265
- # define MATCH_M2X (PS || PS || PS || PS || PS || PS || PS || PS || \
266
- PS || PS || PS || PS || PS || PS || PS || PS)
267
- #elif (M2_MAX_LEN - M2_MIN_LEN == 29)
268
- # define MATCH_M2X (PS || PS || PS || PS || PS || PS || PS || PS || \
269
- PS || PS || PS || PS || PS || PS || PS || PS || \
270
- PS || PS || PS || PS || PS || PS || PS || PS || \
271
- PS || PS || PS || PS || PS)
272
- #else
273
- # error "MATCH_M2X not yet implemented"
274
- #endif
275
-
276
-
277
- /* We already matched M2_MIN_LEN bytes.
278
- * Try to match another M2_MAX_LEN + 1 - M2_MIN_LEN bytes
279
- * to see if we get more than a M2 match */
280
-
281
- #define MATCH_M2 (MATCH_M2X || PS)
282
-
283
-
284
- /***********************************************************************
285
- // copying
286
- ************************************************************************/
287
-
288
- #define _CP *op++ = *m_pos++
289
-
290
- #if (M2_MIN_LEN == 2)
291
- # define COPY_M2X _CP
292
- #elif (M2_MIN_LEN == 3)
293
- # define COPY_M2X _CP; _CP
294
- #elif (M2_MIN_LEN == 4)
295
- # define COPY_M2X _CP; _CP; _CP
296
- #else
297
- # error "COPY_M2X not yet implemented"
298
- #endif
299
-
300
- #if (M3_MIN_LEN == 3)
301
- # define COPY_M3X _CP; _CP
302
- #elif (M3_MIN_LEN == 4)
303
- # define COPY_M3X _CP; _CP; _CP
304
- #elif (M3_MIN_LEN == 9)
305
- # define COPY_M3X _CP; _CP; _CP; _CP; _CP; _CP; _CP; _CP
306
- #else
307
- # error "COPY_M3X not yet implemented"
308
- #endif
309
-
310
- #define COPY_M2 COPY_M2X; *op++ = *m_pos++
311
- #define COPY_M3 COPY_M3X; *op++ = *m_pos++
312
-
313
-
314
- /***********************************************************************
315
- //
316
- ************************************************************************/
317
-
318
- #if defined(LZO_NEED_DICT_H)
319
-
320
- #define DL_MIN_LEN M2_MIN_LEN
321
- #define D_INDEX1(d,p) d = DM(DMUL(0x21,DX3(p,5,5,6)) >> 5)
322
- #define D_INDEX2(d,p) d = (d & (D_MASK & 0x7ff)) ^ (D_HIGH | 0x1f)
323
- #include "lzo_dict.h"
324
-
325
- #ifndef MIN_LOOKAHEAD
326
- #define MIN_LOOKAHEAD (M2_MAX_LEN + 1)
327
- #endif
328
- #ifndef MAX_LOOKBEHIND
329
- #define MAX_LOOKBEHIND (MAX_OFFSET)
330
- #endif
331
-
332
- #endif /* defined(LZO_NEED_DICT_H) */
333
-
334
-
335
- #ifdef __cplusplus
336
- } /* extern "C" */
337
- #endif
338
-
339
- #endif /* already included */
340
-
341
- /*
342
- vi:ts=4:et
343
- */
344
-
@@ -1,117 +0,0 @@
1
- /* lzo1b_r.ch -- literal run handling for the the LZO1B/LZO1C algorithm
2
-
3
- This file is part of the LZO real-time data compression library.
4
-
5
- Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
6
- Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
7
- Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
8
- Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
9
- Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
10
- Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
11
- Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
12
- Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
13
- Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
14
- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
15
- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
16
- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
17
- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
18
- All Rights Reserved.
19
-
20
- The LZO library is free software; you can redistribute it and/or
21
- modify it under the terms of the GNU General Public License as
22
- published by the Free Software Foundation; either version 2 of
23
- the License, or (at your option) any later version.
24
-
25
- The LZO library is distributed in the hope that it will be useful,
26
- but WITHOUT ANY WARRANTY; without even the implied warranty of
27
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28
- GNU General Public License for more details.
29
-
30
- You should have received a copy of the GNU General Public License
31
- along with the LZO library; see the file COPYING.
32
- If not, write to the Free Software Foundation, Inc.,
33
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
34
-
35
- Markus F.X.J. Oberhumer
36
- <markus@oberhumer.com>
37
- http://www.oberhumer.com/opensource/lzo/
38
- */
39
-
40
-
41
- /***********************************************************************
42
- // store a literal run (internal)
43
- ************************************************************************/
44
-
45
- LZO_PUBLIC(lzo_bytep )
46
- STORE_RUN ( lzo_bytep const oo, const lzo_bytep const ii, lzo_uint r_len)
47
- {
48
- register lzo_bytep op;
49
- register const lzo_bytep ip;
50
- register lzo_uint t;
51
-
52
- LZO_STATS(lzo_stats->literals += r_len);
53
-
54
- op = oo;
55
- ip = ii;
56
- assert(r_len > 0);
57
-
58
- /* code a long R0 run */
59
- if (r_len >= 512)
60
- {
61
- unsigned r_bits = 6; /* 256 << 6 == 16384 */
62
- lzo_uint tt = 32768u;
63
-
64
- while (r_len >= (t = tt))
65
- {
66
- r_len -= t;
67
- *op++ = 0; *op++ = (R0FAST - R0MIN) + 7;
68
- MEMCPY8_DS(op, ip, t);
69
- LZO_STATS(lzo_stats->r0long_runs++);
70
- }
71
- tt >>= 1;
72
- do {
73
- if (r_len >= (t = tt))
74
- {
75
- r_len -= t;
76
- *op++ = 0; *op++ = LZO_BYTE((R0FAST - R0MIN) + r_bits);
77
- MEMCPY8_DS(op, ip, t);
78
- LZO_STATS(lzo_stats->r0long_runs++);
79
- }
80
- tt >>= 1;
81
- } while (--r_bits > 0);
82
- }
83
- assert(r_len < 512);
84
-
85
- while (r_len >= (t = R0FAST))
86
- {
87
- r_len -= t;
88
- *op++ = 0; *op++ = (R0FAST - R0MIN);
89
- MEMCPY8_DS(op, ip, t);
90
- LZO_STATS(lzo_stats->r0fast_runs++);
91
- }
92
-
93
- t = r_len;
94
- if (t >= R0MIN)
95
- {
96
- /* code a short R0 run */
97
- *op++ = 0; *op++ = LZO_BYTE(t - R0MIN);
98
- MEMCPY_DS(op, ip, t);
99
- LZO_STATS(lzo_stats->r0short_runs++);
100
- }
101
- else if (t > 0)
102
- {
103
- /* code a short literal run */
104
- LZO_STATS(lzo_stats->lit_runs++);
105
- LZO_STATS(lzo_stats->lit_run[t]++);
106
- *op++ = LZO_BYTE(t);
107
- MEMCPY_DS(op, ip, t);
108
- }
109
-
110
- return op;
111
- }
112
-
113
-
114
- /*
115
- vi:ts=4:et
116
- */
117
-