1*7e6ad469SVishal Kulkarni /* 2*7e6ad469SVishal Kulkarni * This file and its contents are supplied under the terms of the 3*7e6ad469SVishal Kulkarni * Common Development and Distribution License ("CDDL"), version 1.0. 4*7e6ad469SVishal Kulkarni * You may only use this file in accordance with the terms of version 5*7e6ad469SVishal Kulkarni * 1.0 of the CDDL. 6*7e6ad469SVishal Kulkarni * 7*7e6ad469SVishal Kulkarni * A full copy of the text of the CDDL should have accompanied this 8*7e6ad469SVishal Kulkarni * source. A copy of the CDDL is also available via the Internet at 9*7e6ad469SVishal Kulkarni * http://www.illumos.org/license/CDDL. 10*7e6ad469SVishal Kulkarni */ 11*7e6ad469SVishal Kulkarni 12*7e6ad469SVishal Kulkarni /* 13*7e6ad469SVishal Kulkarni FastLZ - lightning-fast lossless compression library 14*7e6ad469SVishal Kulkarni 15*7e6ad469SVishal Kulkarni Copyright (C) 2007 Ariya Hidayat (ariya@kde.org) 16*7e6ad469SVishal Kulkarni Copyright (C) 2006 Ariya Hidayat (ariya@kde.org) 17*7e6ad469SVishal Kulkarni Copyright (C) 2005 Ariya Hidayat (ariya@kde.org) 18*7e6ad469SVishal Kulkarni 19*7e6ad469SVishal Kulkarni Permission is hereby granted, free of charge, to any person obtaining a copy 20*7e6ad469SVishal Kulkarni of this software and associated documentation files (the "Software"), to deal 21*7e6ad469SVishal Kulkarni in the Software without restriction, including without limitation the rights 22*7e6ad469SVishal Kulkarni to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 23*7e6ad469SVishal Kulkarni copies of the Software, and to permit persons to whom the Software is 24*7e6ad469SVishal Kulkarni furnished to do so, subject to the following conditions: 25*7e6ad469SVishal Kulkarni 26*7e6ad469SVishal Kulkarni The above copyright notice and this permission notice shall be included in 27*7e6ad469SVishal Kulkarni all copies or substantial portions of the Software. 28*7e6ad469SVishal Kulkarni 29*7e6ad469SVishal Kulkarni THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 30*7e6ad469SVishal Kulkarni IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 31*7e6ad469SVishal Kulkarni FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 32*7e6ad469SVishal Kulkarni AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 33*7e6ad469SVishal Kulkarni LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 34*7e6ad469SVishal Kulkarni OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 35*7e6ad469SVishal Kulkarni THE SOFTWARE. 36*7e6ad469SVishal Kulkarni 37*7e6ad469SVishal Kulkarni $FreeBSD$ 38*7e6ad469SVishal Kulkarni */ 39*7e6ad469SVishal Kulkarni #ifndef FASTLZ_H 40*7e6ad469SVishal Kulkarni #define FASTLZ_H 41*7e6ad469SVishal Kulkarni 42*7e6ad469SVishal Kulkarni #define FASTLZ_VERSION 0x000100 43*7e6ad469SVishal Kulkarni 44*7e6ad469SVishal Kulkarni #define FASTLZ_VERSION_MAJOR 0 45*7e6ad469SVishal Kulkarni #define FASTLZ_VERSION_MINOR 0 46*7e6ad469SVishal Kulkarni #define FASTLZ_VERSION_REVISION 0 47*7e6ad469SVishal Kulkarni 48*7e6ad469SVishal Kulkarni #define FASTLZ_VERSION_STRING "0.1.0" 49*7e6ad469SVishal Kulkarni 50*7e6ad469SVishal Kulkarni struct cudbg_buffer; 51*7e6ad469SVishal Kulkarni 52*7e6ad469SVishal Kulkarni int fastlz_compress(const void *input, int length, void *output); 53*7e6ad469SVishal Kulkarni int fastlz_compress_level(int level, const void *input, int length, 54*7e6ad469SVishal Kulkarni void *output); 55*7e6ad469SVishal Kulkarni int fastlz_decompress(const void *input, int length, void *output, int maxout); 56*7e6ad469SVishal Kulkarni 57*7e6ad469SVishal Kulkarni /* prototypes */ 58*7e6ad469SVishal Kulkarni 59*7e6ad469SVishal Kulkarni int write_magic(struct cudbg_buffer *); 60*7e6ad469SVishal Kulkarni int detect_magic(struct cudbg_buffer *); 61*7e6ad469SVishal Kulkarni 62*7e6ad469SVishal Kulkarni int write_to_buf(void *, u32, u32 *, void *, u32); 63*7e6ad469SVishal Kulkarni int read_from_buf(void *, u32, u32 *, void *, u32); 64*7e6ad469SVishal Kulkarni 65*7e6ad469SVishal Kulkarni int write_chunk_header(struct cudbg_buffer *, int, int, unsigned long, 66*7e6ad469SVishal Kulkarni unsigned long, unsigned long); 67*7e6ad469SVishal Kulkarni 68*7e6ad469SVishal Kulkarni int read_chunk_header(struct cudbg_buffer *, int* , int*, unsigned long*, 69*7e6ad469SVishal Kulkarni unsigned long*, unsigned long*); 70*7e6ad469SVishal Kulkarni 71*7e6ad469SVishal Kulkarni unsigned long block_compress(const unsigned char *, unsigned long length, 72*7e6ad469SVishal Kulkarni unsigned char *); 73*7e6ad469SVishal Kulkarni #endif /* FASTLZ_H */ 74