1/* wrap.h -- wrapper functions 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// compression levels of LZO1X-999 and LZO1Y-999 43**************************************************************************/ 44 45#if defined(HAVE_LZO1X_H) 46 47LZO_PRIVATE(int) 48lzo1x_999_1_compress ( const lzo_bytep src, lzo_uint src_len, 49 lzo_bytep dst, lzo_uintp dst_len, 50 lzo_voidp wrkmem ) 51{ 52 return lzo1x_999_compress_level(src, src_len, dst, dst_len, wrkmem, 53 dict.ptr, dict.len, 0, 1); 54} 55 56LZO_PRIVATE(int) 57lzo1x_999_2_compress ( const lzo_bytep src, lzo_uint src_len, 58 lzo_bytep dst, lzo_uintp dst_len, 59 lzo_voidp wrkmem ) 60{ 61 return lzo1x_999_compress_level(src, src_len, dst, dst_len, wrkmem, 62 dict.ptr, dict.len, 0, 2); 63} 64 65LZO_PRIVATE(int) 66lzo1x_999_3_compress ( const lzo_bytep src, lzo_uint src_len, 67 lzo_bytep dst, lzo_uintp dst_len, 68 lzo_voidp wrkmem ) 69{ 70 return lzo1x_999_compress_level(src, src_len, dst, dst_len, wrkmem, 71 dict.ptr, dict.len, 0, 3); 72} 73 74LZO_PRIVATE(int) 75lzo1x_999_4_compress ( const lzo_bytep src, lzo_uint src_len, 76 lzo_bytep dst, lzo_uintp dst_len, 77 lzo_voidp wrkmem ) 78{ 79 return lzo1x_999_compress_level(src, src_len, dst, dst_len, wrkmem, 80 dict.ptr, dict.len, 0, 4); 81} 82 83LZO_PRIVATE(int) 84lzo1x_999_5_compress ( const lzo_bytep src, lzo_uint src_len, 85 lzo_bytep dst, lzo_uintp dst_len, 86 lzo_voidp wrkmem ) 87{ 88 return lzo1x_999_compress_level(src, src_len, dst, dst_len, wrkmem, 89 dict.ptr, dict.len, 0, 5); 90} 91 92LZO_PRIVATE(int) 93lzo1x_999_6_compress ( const lzo_bytep src, lzo_uint src_len, 94 lzo_bytep dst, lzo_uintp dst_len, 95 lzo_voidp wrkmem ) 96{ 97 return lzo1x_999_compress_level(src, src_len, dst, dst_len, wrkmem, 98 dict.ptr, dict.len, 0, 6); 99} 100 101LZO_PRIVATE(int) 102lzo1x_999_7_compress ( const lzo_bytep src, lzo_uint src_len, 103 lzo_bytep dst, lzo_uintp dst_len, 104 lzo_voidp wrkmem ) 105{ 106 return lzo1x_999_compress_level(src, src_len, dst, dst_len, wrkmem, 107 dict.ptr, dict.len, 0, 7); 108} 109 110LZO_PRIVATE(int) 111lzo1x_999_8_compress ( const lzo_bytep src, lzo_uint src_len, 112 lzo_bytep dst, lzo_uintp dst_len, 113 lzo_voidp wrkmem ) 114{ 115 return lzo1x_999_compress_level(src, src_len, dst, dst_len, wrkmem, 116 dict.ptr, dict.len, 0, 8); 117} 118 119LZO_PRIVATE(int) 120lzo1x_999_9_compress ( const lzo_bytep src, lzo_uint src_len, 121 lzo_bytep dst, lzo_uintp dst_len, 122 lzo_voidp wrkmem ) 123{ 124 return lzo1x_999_compress_level(src, src_len, dst, dst_len, wrkmem, 125 dict.ptr, dict.len, 0, 9); 126} 127 128#endif 129 130 131#if defined(HAVE_LZO1Y_H) 132 133LZO_PRIVATE(int) 134lzo1y_999_1_compress ( const lzo_bytep src, lzo_uint src_len, 135 lzo_bytep dst, lzo_uintp dst_len, 136 lzo_voidp wrkmem ) 137{ 138 return lzo1y_999_compress_level(src, src_len, dst, dst_len, wrkmem, 139 dict.ptr, dict.len, 0, 1); 140} 141 142LZO_PRIVATE(int) 143lzo1y_999_2_compress ( const lzo_bytep src, lzo_uint src_len, 144 lzo_bytep dst, lzo_uintp dst_len, 145 lzo_voidp wrkmem ) 146{ 147 return lzo1y_999_compress_level(src, src_len, dst, dst_len, wrkmem, 148 dict.ptr, dict.len, 0, 2); 149} 150 151LZO_PRIVATE(int) 152lzo1y_999_3_compress ( const lzo_bytep src, lzo_uint src_len, 153 lzo_bytep dst, lzo_uintp dst_len, 154 lzo_voidp wrkmem ) 155{ 156 return lzo1y_999_compress_level(src, src_len, dst, dst_len, wrkmem, 157 dict.ptr, dict.len, 0, 3); 158} 159 160LZO_PRIVATE(int) 161lzo1y_999_4_compress ( const lzo_bytep src, lzo_uint src_len, 162 lzo_bytep dst, lzo_uintp dst_len, 163 lzo_voidp wrkmem ) 164{ 165 return lzo1y_999_compress_level(src, src_len, dst, dst_len, wrkmem, 166 dict.ptr, dict.len, 0, 4); 167} 168 169LZO_PRIVATE(int) 170lzo1y_999_5_compress ( const lzo_bytep src, lzo_uint src_len, 171 lzo_bytep dst, lzo_uintp dst_len, 172 lzo_voidp wrkmem ) 173{ 174 return lzo1y_999_compress_level(src, src_len, dst, dst_len, wrkmem, 175 dict.ptr, dict.len, 0, 5); 176} 177 178LZO_PRIVATE(int) 179lzo1y_999_6_compress ( const lzo_bytep src, lzo_uint src_len, 180 lzo_bytep dst, lzo_uintp dst_len, 181 lzo_voidp wrkmem ) 182{ 183 return lzo1y_999_compress_level(src, src_len, dst, dst_len, wrkmem, 184 dict.ptr, dict.len, 0, 6); 185} 186 187LZO_PRIVATE(int) 188lzo1y_999_7_compress ( const lzo_bytep src, lzo_uint src_len, 189 lzo_bytep dst, lzo_uintp dst_len, 190 lzo_voidp wrkmem ) 191{ 192 return lzo1y_999_compress_level(src, src_len, dst, dst_len, wrkmem, 193 dict.ptr, dict.len, 0, 7); 194} 195 196LZO_PRIVATE(int) 197lzo1y_999_8_compress ( const lzo_bytep src, lzo_uint src_len, 198 lzo_bytep dst, lzo_uintp dst_len, 199 lzo_voidp wrkmem ) 200{ 201 return lzo1y_999_compress_level(src, src_len, dst, dst_len, wrkmem, 202 dict.ptr, dict.len, 0, 8); 203} 204 205LZO_PRIVATE(int) 206lzo1y_999_9_compress ( const lzo_bytep src, lzo_uint src_len, 207 lzo_bytep dst, lzo_uintp dst_len, 208 lzo_voidp wrkmem ) 209{ 210 return lzo1y_999_compress_level(src, src_len, dst, dst_len, wrkmem, 211 dict.ptr, dict.len, 0, 9); 212} 213 214#endif 215 216 217/************************************************************************* 218// other wrappers (pseudo compressors) 219**************************************************************************/ 220 221LZO_PRIVATE(int) 222memcpy_x_compress ( const lzo_bytep src, lzo_uint src_len, 223 lzo_bytep dst, lzo_uintp dst_len, 224 lzo_voidp wrkmem ) 225{ 226 lzo_memcpy(dst,src,src_len); 227 *dst_len = src_len; 228 if (wrkmem) wrkmem = 0; /* avoid warning */ 229 return 0; 230} 231 232 233LZO_PRIVATE(int) 234memset_x_compress ( const lzo_bytep src, lzo_uint src_len, 235 lzo_bytep dst, lzo_uintp dst_len, 236 lzo_voidp wrkmem ) 237{ 238 lzo_memset(dst,0,src_len); 239 *dst_len = src_len; 240 if (src) src = 0; /* avoid warning */ 241 if (wrkmem) wrkmem = 0; /* avoid warning */ 242 return 0; 243} 244 245 246LZO_PRIVATE(int) 247adler32_x_compress ( const lzo_bytep src, lzo_uint src_len, 248 lzo_bytep dst, lzo_uintp dst_len, 249 lzo_voidp wrkmem ) 250{ 251 lzo_uint32 adler; 252 adler = lzo_adler32(0, NULL, 0); 253 adler = lzo_adler32(adler, dst, src_len); 254 *dst_len = src_len; 255 if (src) src = 0; /* avoid warning */ 256 if (wrkmem) wrkmem = 0; /* avoid warning */ 257 return 0; 258} 259 260 261LZO_PRIVATE(int) 262crc32_x_compress ( const lzo_bytep src, lzo_uint src_len, 263 lzo_bytep dst, lzo_uintp dst_len, 264 lzo_voidp wrkmem ) 265{ 266 lzo_uint32 crc; 267 crc = lzo_crc32(0, NULL, 0); 268 crc = lzo_crc32(crc, dst, src_len); 269 *dst_len = src_len; 270 if (src) src = 0; /* avoid warning */ 271 if (wrkmem) wrkmem = 0; /* avoid warning */ 272 return 0; 273} 274 275 276#if defined(__LZO_PROFESSIONAL__) 277# include "lzopro/t_wrap.ch" 278#endif 279 280 281/* 282vi:ts=4:et 283*/ 284 285