~ubuntu-branches/ubuntu/raring/virtualbox-ose/raring

« back to all changes in this revision

Viewing changes to src/libs/liblzf-1.51/lzfP.h

  • Committer: Bazaar Package Importer
  • Author(s): Felix Geyer
  • Date: 2009-12-18 16:44:29 UTC
  • mfrom: (0.3.3 upstream) (0.4.6 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091218164429-jd34ccexpv5na11a
Tags: 3.1.2-dfsg-1ubuntu1
* Merge from Debian unstable (LP: #498219), remaining changes:
  - Disable update action
    - debian/patches/u01-disable-update-action.dpatch
  - VirtualBox should go in Accessories, not in System tools (LP: #288590)
    - debian/virtualbox-ose-qt.files/virtualbox-ose.desktop
  - Add Apport hook
    - debian/virtualbox-ose.files/source_virtualbox-ose.py
    - debian/virtualbox-ose.install
  - Add Launchpad integration
    - debian/control
    - debian/lpi-bug.xpm
    - debian/patches/u02-lp-integration.dpatch
* Fixes the following bugs:
  - Kernel module fails to build with Linux >= 2.6.32 (LP: #474625)
  - X.Org drivers need to be rebuilt against X-Server 1.7 (LP: #495935)
  - The *-source packages try to build the kernel modules even though the
    kernel headers aren't available (LP: #473334)
* Replace *-source packages with transitional packages for *-dkms.
* Adapt u01-disable-update-action.dpatch and u02-lp-integration.dpatch for
  new upstream version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (c) 2000-2005 Marc Alexander Lehmann <schmorp@schmorp.de>
3
 
 * 
4
 
 * Redistribution and use in source and binary forms, with or without modifica-
5
 
 * tion, are permitted provided that the following conditions are met:
6
 
 * 
7
 
 *   1.  Redistributions of source code must retain the above copyright notice,
8
 
 *       this list of conditions and the following disclaimer.
9
 
 * 
10
 
 *   2.  Redistributions in binary form must reproduce the above copyright
11
 
 *       notice, this list of conditions and the following disclaimer in the
12
 
 *       documentation and/or other materials provided with the distribution.
13
 
 * 
14
 
 *   3.  The name of the author may not be used to endorse or promote products
15
 
 *       derived from this software without specific prior written permission.
16
 
 * 
17
 
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
18
 
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER-
19
 
 * CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
20
 
 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
21
 
 * CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22
 
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23
 
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24
 
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
25
 
 * ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
26
 
 * OF THE POSSIBILITY OF SUCH DAMAGE.
27
 
 *
28
 
 * Alternatively, the contents of this file may be used under the terms of
29
 
 * the GNU General Public License version 2 (the "GPL"), in which case the
30
 
 * provisions of the GPL are applicable instead of the above. If you wish to
31
 
 * allow the use of your version of this file only under the terms of the
32
 
 * GPL and not to allow others to use your version of this file under the
33
 
 * BSD license, indicate your decision by deleting the provisions above and
34
 
 * replace them with the notice and other provisions required by the GPL. If
35
 
 * you do not delete the provisions above, a recipient may use your version
36
 
 * of this file under either the BSD or the GPL.
37
 
 */
38
 
 
39
 
#ifndef LZFP_h
40
 
#define LZFP_h
41
 
 
42
 
#define STANDALONE 1 /* at the moment, this is ok. */
43
 
 
44
 
#ifndef STANDALONE
45
 
# include "lzf.h"
46
 
#endif
47
 
 
48
 
/*
49
 
 * size of hashtable is (1 << HLOG) * sizeof (char *)
50
 
 * decompression is independent of the hash table size
51
 
 * the difference between 15 and 14 is very small
52
 
 * for small blocks (and 14 is usually a but faster).
53
 
 * For a low-memory/faster configuration, use HLOG == 13;
54
 
 * For best compression, use 15 or 16 (or more).
55
 
 */
56
 
#ifndef HLOG
57
 
# define HLOG 14
58
 
#endif
59
 
 
60
 
/*
61
 
 * sacrifice very little compression quality in favour of compression speed.
62
 
 * This gives almost the same compression as the default code, and is
63
 
 * (very roughly) 15% faster. This is the preferable mode of operation.
64
 
 */
65
 
 
66
 
#ifndef VERY_FAST
67
 
# define VERY_FAST 1
68
 
#endif
69
 
 
70
 
/*
71
 
 * sacrifice some more compression quality in favour of compression speed.
72
 
 * (roughly 1-2% worse compression for large blocks and
73
 
 * 9-10% for small, redundant, blocks and >>20% better speed in both cases)
74
 
 * In short: when in need for speed, enable this for binary data,
75
 
 * possibly disable this for text data.
76
 
 */
77
 
#ifndef ULTRA_FAST
78
 
# define ULTRA_FAST 0
79
 
#endif
80
 
 
81
 
/*
82
 
 * unconditionally aligning does not cost very much, so do it if unsure
83
 
 */
84
 
#ifndef STRICT_ALIGN
85
 
# define STRICT_ALIGN !(defined(__i386) || defined (__amd64))
86
 
#endif
87
 
 
88
 
/*
89
 
 * use string functions to copy memory.
90
 
 * this is usually a loss, even with glibc's optimized memcpy
91
 
 */
92
 
#ifndef USE_MEMCPY
93
 
# define USE_MEMCPY 0
94
 
#endif
95
 
 
96
 
/*
97
 
 * you may choose to pre-set the hash table (might be faster on some
98
 
 * modern cpus and large (>>64k) blocks)
99
 
 */
100
 
#ifndef INIT_HTAB
101
 
# define INIT_HTAB 0
102
 
#endif
103
 
 
104
 
/*
105
 
 * avoid assigning values to errno variable? for some embedding purposes
106
 
 * (linux kernel for example), this is neccessary. NOTE: this breaks
107
 
 * the documentation in lzf.h.
108
 
 */
109
 
#ifndef AVOID_ERRNO
110
 
# define AVOID_ERRNO 0
111
 
#endif
112
 
 
113
 
/*
114
 
 * Wether to pass the LZF_STATE variable as argument, or allocate it
115
 
 * on the stack. For small-stack environments, define this to 1.
116
 
 * NOTE: this breaks the prototype in lzf.h.
117
 
 */
118
 
#ifndef LZF_STATE_ARG
119
 
# define LZF_STATE_ARG 0
120
 
#endif
121
 
 
122
 
/*****************************************************************************/
123
 
/* nothing should be changed below */
124
 
 
125
 
typedef unsigned char u8;
126
 
 
127
 
typedef const u8 *LZF_STATE[1 << (HLOG)];
128
 
 
129
 
#if !STRICT_ALIGN
130
 
/* for unaligned accesses we need a 16 bit datatype. */
131
 
# include <limits.h>
132
 
# if USHRT_MAX == 65535
133
 
    typedef unsigned short u16;
134
 
# elif UINT_MAX == 65535
135
 
    typedef unsigned int u16;
136
 
# else
137
 
#  undef STRICT_ALIGN
138
 
#  define STRICT_ALIGN 1
139
 
# endif
140
 
#endif
141
 
 
142
 
#if ULTRA_FAST
143
 
# if defined(VERY_FAST)
144
 
#  undef VERY_FAST
145
 
# endif
146
 
#endif
147
 
 
148
 
#if USE_MEMCPY || INIT_HTAB
149
 
# ifdef __cplusplus
150
 
#  include <cstring>
151
 
# else
152
 
#  include <string.h>
153
 
# endif
154
 
#endif
155
 
 
156
 
#endif
157