Blame src/lzo1c_xx.c

Packit Service 5195f2
/* lzo1c_xx.c -- LZO1C compression public entry point
Packit Service 5195f2
Packit Service 5195f2
   This file is part of the LZO real-time data compression library.
Packit Service 5195f2
Packit Service 5195f2
   Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Packit Service 5195f2
   All Rights Reserved.
Packit Service 5195f2
Packit Service 5195f2
   The LZO library is free software; you can redistribute it and/or
Packit Service 5195f2
   modify it under the terms of the GNU General Public License as
Packit Service 5195f2
   published by the Free Software Foundation; either version 2 of
Packit Service 5195f2
   the License, or (at your option) any later version.
Packit Service 5195f2
Packit Service 5195f2
   The LZO library is distributed in the hope that it will be useful,
Packit Service 5195f2
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 5195f2
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 5195f2
   GNU General Public License for more details.
Packit Service 5195f2
Packit Service 5195f2
   You should have received a copy of the GNU General Public License
Packit Service 5195f2
   along with the LZO library; see the file COPYING.
Packit Service 5195f2
   If not, write to the Free Software Foundation, Inc.,
Packit Service 5195f2
   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Packit Service 5195f2
Packit Service 5195f2
   Markus F.X.J. Oberhumer
Packit Service 5195f2
   <markus@oberhumer.com>
Packit Service 5195f2
   http://www.oberhumer.com/opensource/lzo/
Packit Service 5195f2
 */
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
#include "config1c.h"
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
/***********************************************************************
Packit Service 5195f2
//
Packit Service 5195f2
************************************************************************/
Packit Service 5195f2
Packit Service 5195f2
static const lzo_compress_t * const c_funcs [9] =
Packit Service 5195f2
{
Packit Service 5195f2
    &_lzo1c_1_compress_func,
Packit Service 5195f2
    &_lzo1c_2_compress_func,
Packit Service 5195f2
    &_lzo1c_3_compress_func,
Packit Service 5195f2
    &_lzo1c_4_compress_func,
Packit Service 5195f2
    &_lzo1c_5_compress_func,
Packit Service 5195f2
    &_lzo1c_6_compress_func,
Packit Service 5195f2
    &_lzo1c_7_compress_func,
Packit Service 5195f2
    &_lzo1c_8_compress_func,
Packit Service 5195f2
    &_lzo1c_9_compress_func
Packit Service 5195f2
};
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
lzo_compress_t _lzo1c_get_compress_func(int clevel)
Packit Service 5195f2
{
Packit Service 5195f2
    const lzo_compress_t *f;
Packit Service 5195f2
Packit Service 5195f2
    if (clevel < LZO1C_BEST_SPEED || clevel > LZO1C_BEST_COMPRESSION)
Packit Service 5195f2
    {
Packit Service 5195f2
        if (clevel == LZO1C_DEFAULT_COMPRESSION)
Packit Service 5195f2
            clevel = LZO1C_BEST_SPEED;
Packit Service 5195f2
        else
Packit Service 5195f2
            return 0;
Packit Service 5195f2
    }
Packit Service 5195f2
    f = c_funcs[clevel-1];
Packit Service 5195f2
    assert(f && *f);
Packit Service 5195f2
    return *f;
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
LZO_PUBLIC(int)
Packit Service 5195f2
lzo1c_compress ( const lzo_bytep src, lzo_uint  src_len,
Packit Service 5195f2
                       lzo_bytep dst, lzo_uintp dst_len,
Packit Service 5195f2
                       lzo_voidp wrkmem,
Packit Service 5195f2
                       int clevel )
Packit Service 5195f2
{
Packit Service 5195f2
    lzo_compress_t f;
Packit Service 5195f2
Packit Service 5195f2
    f = _lzo1c_get_compress_func(clevel);
Packit Service 5195f2
    if (!f)
Packit Service 5195f2
        return LZO_E_ERROR;
Packit Service 5195f2
    return _lzo1c_do_compress(src,src_len,dst,dst_len,wrkmem,f);
Packit Service 5195f2
}
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
/*
Packit Service 5195f2
vi:ts=4:et
Packit Service 5195f2
*/
Packit Service 5195f2