ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/liblzf/lzfP.h
(Generate patch)

Comparing liblzf/lzfP.h (file contents):
Revision 1.27 by root, Thu Feb 16 05:43:19 2012 UTC vs.
Revision 1.31 by root, Mon Jun 29 23:34:41 2015 UTC

1/* 1/*
2 * Copyright (c) 2000-2007 Marc Alexander Lehmann <schmorp@schmorp.de> 2 * Copyright (c) 2000-2007 Marc Alexander Lehmann <schmorp@schmorp.de>
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without modifica- 4 * Redistribution and use in source and binary forms, with or without modifica-
5 * tion, are permitted provided that the following conditions are met: 5 * tion, are permitted provided that the following conditions are met:
6 * 6 *
7 * 1. Redistributions of source code must retain the above copyright notice, 7 * 1. Redistributions of source code must retain the above copyright notice,
8 * this list of conditions and the following disclaimer. 8 * this list of conditions and the following disclaimer.
9 * 9 *
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the 11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution. 12 * documentation and/or other materials provided with the distribution.
13 * 13 *
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER- 15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER-
16 * CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 16 * CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
17 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- 17 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
18 * CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 18 * CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
144 * 64 bit architetcures, pointers take up twice as much space, 144 * 64 bit architetcures, pointers take up twice as much space,
145 * and might also be slower. Default is to autodetect. 145 * and might also be slower. Default is to autodetect.
146 */ 146 */
147/*#define LZF_USE_OFFSETS autodetect */ 147/*#define LZF_USE_OFFSETS autodetect */
148 148
149/*
150 * Whether to optimise code for size, at the expense of speed. Use
151 * this when you are extremely tight on memory, perhaps in combination
152 * with AVOID_ERRNO 1 and CHECK_INPUT 0.
153 */
154#ifndef OPTIMISE_SIZE
155# ifdef __OPTIMIZE_SIZE__
156# define OPTIMISE_SIZE 1
157# else
158# define OPTIMISE_SIZE 0
159# endif
160#endif
161
149/*****************************************************************************/ 162/*****************************************************************************/
150/* nothing should be changed below */ 163/* nothing should be changed below */
151 164
152#ifdef __cplusplus 165#ifdef __cplusplus
153# include <cstring> 166# include <cstring>
156#else 169#else
157# include <string.h> 170# include <string.h>
158# include <limits.h> 171# include <limits.h>
159#endif 172#endif
160 173
174#if ULTRA_FAST
175# undef VERY_FAST
176#endif
177
161#ifndef LZF_USE_OFFSETS 178#ifndef LZF_USE_OFFSETS
162# if defined (WIN32) || defined (_WIN32) 179# ifdef _WIN32
163# define LZF_USE_OFFSETS defined(_M_X64) 180# define LZF_USE_OFFSETS defined(_M_X64)
164# else 181# else
165# if __cplusplus > 199711L 182# if __cplusplus > 199711L
166# include <cstdint> 183# include <cstdint>
167# else 184# else
183# define LZF_HSLOT_BIAS 0 200# define LZF_HSLOT_BIAS 0
184 typedef const u8 *LZF_HSLOT; 201 typedef const u8 *LZF_HSLOT;
185# endif 202# endif
186#endif 203#endif
187 204
188typedef LZF_HSLOT LZF_STATE[1 << (HLOG)];
189
190#if USHRT_MAX == 65535 205#if USHRT_MAX == 65535
191 typedef unsigned short u16; 206 typedef unsigned short u16;
192#elif UINT_MAX == 65535 207#elif UINT_MAX == 65535
193 typedef unsigned int u16; 208 typedef unsigned int u16;
194#else 209#else
195# undef STRICT_ALIGN 210# undef STRICT_ALIGN
196# define STRICT_ALIGN 1 211# define STRICT_ALIGN 1
197#endif 212#endif
198 213
199#if ULTRA_FAST 214#define LZF_MAX_LIT (1 << 5)
200# undef VERY_FAST 215#define LZF_MAX_OFF (1 << 13)
201#endif 216#define LZF_MAX_REF ((1 << 8) + (1 << 3))
202 217
203#endif 218typedef LZF_HSLOT LZF_STATE[1 << (HLOG)];
204 219
220typedef struct
221{
222 const u8 *first [1 << (6+8)]; /* most recent occurance of a match */
223 u16 prev [LZF_MAX_OFF]; /* how many bytes to go backwards for the next match */
224} LZF_STATE_BEST[1];
225
226#endif
227

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines