123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273 |
- /* wrapmisc.h -- misc wrapper functions for the test driver
- This file is part of the LZO real-time data compression library.
- Copyright (C) 1996-2015 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 */
- /* vim:set ts=4 sw=4 et: */
|