| /** |
| * \file lzma/init.h |
| * \brief Initializations |
| * |
| * \author Copyright (C) 1999-2006 Igor Pavlov |
| * \author Copyright (C) 2007 Lasse Collin |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This 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 |
| * Lesser General Public License for more details. |
| */ |
| |
| #ifndef LZMA_H_INTERNAL |
| # error Never include this file directly. Use <lzma.h> instead. |
| #endif |
| |
| |
| /** |
| * \brief Initialize all internal static variables |
| * |
| * Depending on the build options, liblzma may have some internal static |
| * variables, that must be initialized before using any other part of |
| * the library (*). It is recommended to do these initializations in the very |
| * beginning of the application by calling appropriate initialization function. |
| * |
| * (*) There are some exceptions to this rule. FIXME |
| * |
| * The initialization functions are not necessarily thread-safe, thus the |
| * required initializations must be done before creating any threads. (The |
| * rest of the functions of liblzma are thread-safe.) Calling the |
| * initialization functions multiple times does no harm, although it |
| * still shouldn't be done when there are multiple threads running. |
| * |
| * lzma_init() initializes all internal static variables by calling |
| * lzma_lzma_init_encoder() and lzma_init_decoder(). |
| * |
| * If you need only encoder, decoder, or neither-encoder-nor-decoder |
| * functions, you may use other initialization functions, which initialize |
| * only a subset of liblzma's internal static variables. Using those |
| * functions have the following advantages: |
| * - When linking statically against liblzma, less useless functions will |
| * get linked into the binary. E.g. if you need only the decoder functions, |
| * using lzma_init_decoder() avoids linking bunch of encoder related code. |
| * - There is less things to initialize, making the initialization |
| * process slightly faster. |
| */ |
| extern void lzma_init(void); |
| |
| |
| /** |
| * \brief Initialize internal static variables needed by encoders |
| * |
| * If you need only the encoder functions, you may use this function to |
| * initialize only the things required by encoders. |
| * |
| * This function also calls lzma_init_check(). |
| */ |
| extern void lzma_init_encoder(void); |
| |
| |
| /** |
| * \brief Initialize internal static variables needed by decoders |
| * |
| * If you need only the decoder functions, you may use this function to |
| * initialize only the things required by decoders. |
| * |
| * This function also calls lzma_init_check(). |
| */ |
| extern void lzma_init_decoder(void); |
| |
| |
| /** |
| * \brief Initialize internal static variables needed by integrity checks |
| * |
| * Currently this initializes CRC32 and CRC64 lookup tables if precalculated |
| * tables haven't been built into the library. This function can be useful |
| * if the only thing you need from liblzma is the integrity check functions. |
| */ |
| extern void lzma_init_check(void); |