diff options
Diffstat (limited to 'main/lzo/lzotest/wrapmisc.h')
| -rw-r--r-- | main/lzo/lzotest/wrapmisc.h | 291 | 
1 files changed, 291 insertions, 0 deletions
| diff --git a/main/lzo/lzotest/wrapmisc.h b/main/lzo/lzotest/wrapmisc.h new file mode 100644 index 00000000..559ffac3 --- /dev/null +++ b/main/lzo/lzotest/wrapmisc.h @@ -0,0 +1,291 @@ +/* wrapmisc.h -- misc wrapper functions for the test driver + +   This file is part of the LZO real-time data compression library. + +   Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer +   Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer +   Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer +   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 compression_level ) +{ +    int err; +    uLong destLen; + +    assert(method == Z_DEFLATED); +    destLen = (uLong) *dst_len; +    err = compress2(dst, &destLen, src, (uLong) src_len, compression_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 = (uLong) *dst_len; +    err = uncompress(dst, &destLen, src, (uLong) 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 compression_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, compression_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, (uInt) 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, (uInt) src_len); +    *dst_len = src_len; +    LZO_UNUSED(crc); +    LZO_UNUSED(dst); +    LZO_UNUSED(wrkmem); +    return 0; +} + +#endif /* ALG_ZLIB */ + + +/* +vi:ts=4:et +*/ + | 
