+++ /dev/null
-/* \r
- LzmaDecode.h\r
- LZMA Decoder interface\r
-\r
- LZMA SDK 4.21 Copyright (c) 1999-2005 Igor Pavlov (2005-06-08)\r
- http://www.7-zip.org/\r
-\r
- LZMA SDK is licensed under two licenses:\r
- 1) GNU Lesser General Public License (GNU LGPL)\r
- 2) Common Public License (CPL)\r
- It means that you can select one of these two licenses and \r
- follow rules of that license.\r
-\r
- SPECIAL EXCEPTION:\r
- Igor Pavlov, as the author of this code, expressly permits you to \r
- statically or dynamically link your code (or bind by name) to the \r
- interfaces of this file without subjecting your linked code to the \r
- terms of the CPL or GNU LGPL. Any modifications or additions \r
- to this file, however, are subject to the LGPL or CPL terms.\r
-*/\r
-\r
-#ifndef __LZMADECODE_H\r
-#define __LZMADECODE_H\r
-\r
-/* #define _LZMA_IN_CB */\r
-/* Use callback for input data */\r
-\r
-/* #define _LZMA_OUT_READ */\r
-/* Use read function for output data */\r
-\r
-/* #define _LZMA_PROB32 */\r
-/* It can increase speed on some 32-bit CPUs, \r
- but memory usage will be doubled in that case */\r
-\r
-/* #define _LZMA_LOC_OPT */\r
-/* Enable local speed optimizations inside code */\r
-\r
-/* #define _LZMA_SYSTEM_SIZE_T */\r
-/* Use system's size_t. You can use it to enable 64-bit sizes supporting*/\r
-\r
-#ifndef UInt32\r
-#ifdef _LZMA_UINT32_IS_ULONG\r
-#define UInt32 unsigned long\r
-#else\r
-#define UInt32 unsigned int\r
-#endif\r
-#endif\r
-\r
-#ifndef SizeT\r
-#ifdef _LZMA_SYSTEM_SIZE_T\r
-#include <stddef.h>\r
-#define SizeT size_t\r
-#else\r
-#define SizeT UInt32\r
-#endif\r
-#endif\r
-\r
-#ifdef _LZMA_PROB32\r
-#define CProb UInt32\r
-#else\r
-#define CProb unsigned short\r
-#endif\r
-\r
-#define LZMA_RESULT_OK 0\r
-#define LZMA_RESULT_DATA_ERROR 1\r
-\r
-#ifdef _LZMA_IN_CB\r
-typedef struct _ILzmaInCallback\r
-{\r
- int (*Read)(void *object, const unsigned char **buffer, SizeT *bufferSize);\r
-} ILzmaInCallback;\r
-#endif\r
-\r
-#define LZMA_BASE_SIZE 1846\r
-#define LZMA_LIT_SIZE 768\r
-\r
-#define LZMA_PROPERTIES_SIZE 5\r
-\r
-typedef struct _CLzmaProperties\r
-{\r
- int lc;\r
- int lp;\r
- int pb;\r
- #ifdef _LZMA_OUT_READ\r
- UInt32 DictionarySize;\r
- #endif\r
-}CLzmaProperties;\r
-\r
-int LzmaDecodeProperties(CLzmaProperties *propsRes, const unsigned char *propsData, int size);\r
-\r
-#define LzmaGetNumProbs(Properties) (LZMA_BASE_SIZE + (LZMA_LIT_SIZE << ((Properties)->lc + (Properties)->lp)))\r
-\r
-#define kLzmaNeedInitId (-2)\r
-\r
-typedef struct _CLzmaDecoderState\r
-{\r
- CLzmaProperties Properties;\r
- CProb *Probs;\r
-\r
- #ifdef _LZMA_IN_CB\r
- const unsigned char *Buffer;\r
- const unsigned char *BufferLim;\r
- #endif\r
-\r
- #ifdef _LZMA_OUT_READ\r
- unsigned char *Dictionary;\r
- UInt32 Range;\r
- UInt32 Code;\r
- UInt32 DictionaryPos;\r
- UInt32 GlobalPos;\r
- UInt32 DistanceLimit;\r
- UInt32 Reps[4];\r
- int State;\r
- int RemainLen;\r
- unsigned char TempDictionary[4];\r
- #endif\r
-} CLzmaDecoderState;\r
-\r
-#ifdef _LZMA_OUT_READ\r
-#define LzmaDecoderInit(vs) { (vs)->RemainLen = kLzmaNeedInitId; }\r
-#endif\r
-\r
-int LzmaDecode(CLzmaDecoderState *vs,\r
- #ifdef _LZMA_IN_CB\r
- ILzmaInCallback *inCallback,\r
- #else\r
- const unsigned char *inStream, SizeT inSize, SizeT *inSizeProcessed,\r
- #endif\r
- unsigned char *outStream, SizeT outSize, SizeT *outSizeProcessed);\r
-\r
-#endif\r