sl@0: /* sl@0: Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. sl@0: sl@0: Redistribution and use in source and binary forms, with or without sl@0: modification, are permitted provided that the following conditions are met: sl@0: sl@0: * Redistributions of source code must retain the above copyright notice, this sl@0: list of conditions and the following disclaimer. sl@0: * Redistributions in binary form must reproduce the above copyright notice, sl@0: this list of conditions and the following disclaimer in the documentation sl@0: and/or other materials provided with the distribution. sl@0: * Neither the name of Nokia Corporation nor the names of its contributors sl@0: may be used to endorse or promote products derived from this software sl@0: without specific prior written permission. sl@0: sl@0: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" sl@0: AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE sl@0: IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE sl@0: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE sl@0: FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL sl@0: DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR sl@0: SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER sl@0: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, sl@0: OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE sl@0: OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. sl@0: sl@0: Description: sl@0: */ sl@0: sl@0: sl@0: #ifndef HEADER_COMP_H sl@0: #define HEADER_COMP_H sl@0: #ifdef SYMBIAN sl@0: #include sl@0: #endif sl@0: #include sl@0: sl@0: #ifdef __cplusplus sl@0: extern "C" { sl@0: #endif sl@0: #ifdef SYMBIAN sl@0: #include sl@0: #endif sl@0: typedef struct comp_ctx_st COMP_CTX; sl@0: sl@0: typedef struct comp_method_st sl@0: { sl@0: int type; /* NID for compression library */ sl@0: const char *name; /* A text string to identify the library */ sl@0: int (*init)(COMP_CTX *ctx); sl@0: void (*finish)(COMP_CTX *ctx); sl@0: int (*compress)(COMP_CTX *ctx, sl@0: unsigned char *out, unsigned int olen, sl@0: unsigned char *in, unsigned int ilen); sl@0: int (*expand)(COMP_CTX *ctx, sl@0: unsigned char *out, unsigned int olen, sl@0: unsigned char *in, unsigned int ilen); sl@0: /* The following two do NOTHING, but are kept for backward compatibility */ sl@0: long (*ctrl)(void); sl@0: long (*callback_ctrl)(void); sl@0: } COMP_METHOD; sl@0: sl@0: struct comp_ctx_st sl@0: { sl@0: COMP_METHOD *meth; sl@0: unsigned long compress_in; sl@0: unsigned long compress_out; sl@0: unsigned long expand_in; sl@0: unsigned long expand_out; sl@0: sl@0: CRYPTO_EX_DATA ex_data; sl@0: }; sl@0: sl@0: sl@0: IMPORT_C COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); sl@0: IMPORT_C void COMP_CTX_free(COMP_CTX *ctx); sl@0: IMPORT_C int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, sl@0: unsigned char *in, int ilen); sl@0: IMPORT_C int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, sl@0: unsigned char *in, int ilen); sl@0: IMPORT_C COMP_METHOD *COMP_rle(void ); sl@0: IMPORT_C COMP_METHOD *COMP_zlib(void ); sl@0: sl@0: /* BEGIN ERROR CODES */ sl@0: /* The following lines are auto generated by the script mkerr.pl. Any changes sl@0: * made after this point may be overwritten when the script is next run. sl@0: */ sl@0: IMPORT_C void ERR_load_COMP_strings(void); sl@0: sl@0: /* Error codes for the COMP functions. */ sl@0: sl@0: /* Function codes. */ sl@0: sl@0: /* Reason codes. */ sl@0: sl@0: #ifdef __cplusplus sl@0: } sl@0: #endif sl@0: #endif