source: bootcd/isolinux/syslinux-6.03/lzo/src/stats1a.h @ 26ffad7

Last change on this file since 26ffad7 was e16e8f2, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

bootstuff

  • Property mode set to 100644
File size: 3.1 KB
Line 
1/* stats1a.h -- statistics for the the LZO1A algorithm
2
3   This file is part of the LZO real-time data compression library.
4
5   Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
6   All Rights Reserved.
7
8   The LZO library is free software; you can redistribute it and/or
9   modify it under the terms of the GNU General Public License as
10   published by the Free Software Foundation; either version 2 of
11   the License, or (at your option) any later version.
12
13   The LZO library is distributed in the hope that it will be useful,
14   but WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   GNU General Public License for more details.
17
18   You should have received a copy of the GNU General Public License
19   along with the LZO library; see the file COPYING.
20   If not, write to the Free Software Foundation, Inc.,
21   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22
23   Markus F.X.J. Oberhumer
24   <markus@oberhumer.com>
25   http://www.oberhumer.com/opensource/lzo/
26 */
27
28
29/* WARNING: this file should *not* be used by applications. It is
30   part of the implementation of the LZO package and is subject
31   to change.
32 */
33
34
35#ifndef __LZO_STATS1A_H
36#define __LZO_STATS1A_H 1
37
38#ifdef __cplusplus
39extern "C" {
40#endif
41
42
43
44/***********************************************************************
45// collect statistical information when compressing
46// used for finetuning, view with a debugger
47************************************************************************/
48
49#if (LZO_COLLECT_STATS)
50#  define LZO_STATS(expr)   expr
51#else
52#  define LZO_STATS(expr)   ((void) 0)
53#endif
54
55
56/***********************************************************************
57//
58************************************************************************/
59
60typedef struct {
61
62/* configuration */
63    unsigned rbits;
64    unsigned clevel;
65
66/* internal configuration */
67    unsigned dbits;
68    unsigned lbits;
69
70/* constants */
71    unsigned min_match_short;
72    unsigned max_match_short;
73    unsigned min_match_long;
74    unsigned max_match_long;
75    unsigned min_offset;
76    unsigned max_offset;
77    unsigned r0min;
78    unsigned r0fast;
79    unsigned r0max;
80
81/* counts */
82    long short_matches;
83    long long_matches;
84    long r1_matches;
85    long lit_runs;
86    long lit_runs_after_long_match;
87    long r0short_runs;
88    long r0fast_runs;
89    long r0long_runs;
90
91/* */
92    long lit_run[RSIZE];
93    long lit_run_after_long_match[RSIZE];
94    long short_match[MAX_MATCH_SHORT + 1];
95    long long_match[MAX_MATCH_LONG + 1];
96    long marker[256];
97
98/* these could prove useful for further optimizations */
99    long short_match_offset_osize[MAX_MATCH_SHORT + 1];
100    long short_match_offset_256[MAX_MATCH_SHORT + 1];
101    long short_match_offset_1024[MAX_MATCH_SHORT + 1];
102    long matches_out_of_range;
103    long matches_out_of_range_2;
104    long matches_out_of_range_4;
105    long match_out_of_range[MAX_MATCH_SHORT + 1];
106
107/* */
108    long in_len;
109    long out_len;
110}
111lzo1a_stats_t;
112
113extern lzo1a_stats_t *lzo1a_stats;
114
115
116
117#ifdef __cplusplus
118} /* extern "C" */
119#endif
120
121#endif /* already included */
122
123/*
124vi:ts=4:et
125*/
Note: See TracBrowser for help on using the repository browser.