diff options
Diffstat (limited to 'lzotest/wrapmisc.h')
-rw-r--r-- | lzotest/wrapmisc.h | 288 |
1 files changed, 288 insertions, 0 deletions
diff --git a/lzotest/wrapmisc.h b/lzotest/wrapmisc.h new file mode 100644 index 0000000..3fad078 --- /dev/null +++ b/lzotest/wrapmisc.h @@ -0,0 +1,288 @@ +/* wrapmisc.h -- misc wrapper functions for the test driver + + This file is part of the LZO real-time data compression library. + + Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer + All Rights Reserved. + + The LZO library is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + The LZO library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the LZO library; see the file COPYING. + If not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + Markus F.X.J. Oberhumer + <markus@oberhumer.com> + http://www.oberhumer.com/opensource/lzo/ + */ + + +/************************************************************************* +// compression levels of zlib +**************************************************************************/ + +#if defined(ALG_ZLIB) + +#define ZLIB_MEM_COMPRESS 0 +#define ZLIB_MEM_DECOMPRESS 0 + +static +int zlib_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem, + int method, int level ) +{ + int err; + uLong destLen; + + assert(method == Z_DEFLATED); + destLen = *dst_len; + err = compress2(dst, &destLen, src, src_len, level); + *dst_len = destLen; + LZO_UNUSED(method); + LZO_UNUSED(wrkmem); + return err; +} + + +M_PRIVATE(int) +zlib_decompress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ + int err; + uLong destLen; + + destLen = *dst_len; + err = uncompress(dst, &destLen, src, src_len); + *dst_len = destLen; + LZO_UNUSED(wrkmem); + return err; +} + + +M_PRIVATE(int) +zlib_8_1_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return zlib_compress(src,src_len,dst,dst_len,wrkmem,Z_DEFLATED,1); } + +M_PRIVATE(int) +zlib_8_2_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return zlib_compress(src,src_len,dst,dst_len,wrkmem,Z_DEFLATED,2); } + +M_PRIVATE(int) +zlib_8_3_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return zlib_compress(src,src_len,dst,dst_len,wrkmem,Z_DEFLATED,3); } + +M_PRIVATE(int) +zlib_8_4_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return zlib_compress(src,src_len,dst,dst_len,wrkmem,Z_DEFLATED,4); } + +M_PRIVATE(int) +zlib_8_5_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return zlib_compress(src,src_len,dst,dst_len,wrkmem,Z_DEFLATED,5); } + +M_PRIVATE(int) +zlib_8_6_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return zlib_compress(src,src_len,dst,dst_len,wrkmem,Z_DEFLATED,6); } + +M_PRIVATE(int) +zlib_8_7_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return zlib_compress(src,src_len,dst,dst_len,wrkmem,Z_DEFLATED,7); } + +M_PRIVATE(int) +zlib_8_8_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return zlib_compress(src,src_len,dst,dst_len,wrkmem,Z_DEFLATED,8); } + +M_PRIVATE(int) +zlib_8_9_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return zlib_compress(src,src_len,dst,dst_len,wrkmem,Z_DEFLATED,9); } + + +#endif /* ALG_ZLIB */ + + +/************************************************************************* +// compression levels of bzip2 +**************************************************************************/ + +#if defined(ALG_BZIP2) + +#define BZIP2_MEM_COMPRESS 0 +#define BZIP2_MEM_DECOMPRESS 0 + +static +int bzip2_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem, + int level ) +{ + int err; + unsigned destLen; + union { const m_bytep csrc; char* src; } u; + + u.csrc = src; /* UNCONST */ + destLen = *dst_len; + err = BZ2_bzBuffToBuffCompress((char*)dst, &destLen, u.src, src_len, level, 0, 0); + *dst_len = destLen; + LZO_UNUSED(wrkmem); + return err; +} + + +M_PRIVATE(int) +bzip2_decompress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ + int err; + unsigned destLen; + union { const m_bytep csrc; char* src; } u; + + u.csrc = src; /* UNCONST */ + destLen = *dst_len; + err = BZ2_bzBuffToBuffDecompress((char*)dst, &destLen, u.src, src_len, 0, 0); + *dst_len = destLen; + LZO_UNUSED(wrkmem); + return err; +} + + +M_PRIVATE(int) +bzip2_1_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return bzip2_compress(src,src_len,dst,dst_len,wrkmem,1); } + +M_PRIVATE(int) +bzip2_2_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return bzip2_compress(src,src_len,dst,dst_len,wrkmem,2); } + +M_PRIVATE(int) +bzip2_3_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return bzip2_compress(src,src_len,dst,dst_len,wrkmem,3); } + +M_PRIVATE(int) +bzip2_4_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return bzip2_compress(src,src_len,dst,dst_len,wrkmem,4); } + +M_PRIVATE(int) +bzip2_5_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return bzip2_compress(src,src_len,dst,dst_len,wrkmem,5); } + +M_PRIVATE(int) +bzip2_6_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return bzip2_compress(src,src_len,dst,dst_len,wrkmem,6); } + +M_PRIVATE(int) +bzip2_7_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return bzip2_compress(src,src_len,dst,dst_len,wrkmem,7); } + +M_PRIVATE(int) +bzip2_8_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return bzip2_compress(src,src_len,dst,dst_len,wrkmem,8); } + +M_PRIVATE(int) +bzip2_9_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ return bzip2_compress(src,src_len,dst,dst_len,wrkmem,9); } + + +#endif /* ALG_BZIP2 */ + + +/************************************************************************* +// other wrappers (for benchmarking the checksum algorithms) +**************************************************************************/ + +#if defined(ALG_ZLIB) + +M_PRIVATE(int) +zlib_adler32_x_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ + uLong adler; + adler = adler32(1L, src, src_len); + *dst_len = src_len; + LZO_UNUSED(adler); + LZO_UNUSED(dst); + LZO_UNUSED(wrkmem); + return 0; +} + + +M_PRIVATE(int) +zlib_crc32_x_compress ( const m_bytep src, m_uint src_len, + m_bytep dst, m_uintp dst_len, + m_voidp wrkmem ) +{ + uLong crc; + crc = crc32(0L, src, src_len); + *dst_len = src_len; + LZO_UNUSED(crc); + LZO_UNUSED(dst); + LZO_UNUSED(wrkmem); + return 0; +} + +#endif /* ALG_ZLIB */ + + +/* +vi:ts=4:et +*/ + |