Index: third_party/lzma_sdk/Types.h |
=================================================================== |
--- third_party/lzma_sdk/Types.h (revision 0) |
+++ third_party/lzma_sdk/Types.h (revision 0) |
@@ -0,0 +1,254 @@ |
+/* Types.h -- Basic types |
+2010-10-09 : Igor Pavlov : Public domain */ |
+ |
+#ifndef __7Z_TYPES_H |
+#define __7Z_TYPES_H |
+ |
+#include <stddef.h> |
+ |
+#ifdef _WIN32 |
+#include <windows.h> |
+#endif |
+ |
+#ifndef EXTERN_C_BEGIN |
+#ifdef __cplusplus |
+#define EXTERN_C_BEGIN extern "C" { |
+#define EXTERN_C_END } |
+#else |
+#define EXTERN_C_BEGIN |
+#define EXTERN_C_END |
+#endif |
+#endif |
+ |
+EXTERN_C_BEGIN |
+ |
+#define SZ_OK 0 |
+ |
+#define SZ_ERROR_DATA 1 |
+#define SZ_ERROR_MEM 2 |
+#define SZ_ERROR_CRC 3 |
+#define SZ_ERROR_UNSUPPORTED 4 |
+#define SZ_ERROR_PARAM 5 |
+#define SZ_ERROR_INPUT_EOF 6 |
+#define SZ_ERROR_OUTPUT_EOF 7 |
+#define SZ_ERROR_READ 8 |
+#define SZ_ERROR_WRITE 9 |
+#define SZ_ERROR_PROGRESS 10 |
+#define SZ_ERROR_FAIL 11 |
+#define SZ_ERROR_THREAD 12 |
+ |
+#define SZ_ERROR_ARCHIVE 16 |
+#define SZ_ERROR_NO_ARCHIVE 17 |
+ |
+typedef int SRes; |
+ |
+#ifdef _WIN32 |
+typedef DWORD WRes; |
+#else |
+typedef int WRes; |
+#endif |
+ |
+#ifndef RINOK |
+#define RINOK(x) { int __result__ = (x); if (__result__ != 0) return __result__; } |
+#endif |
+ |
+typedef unsigned char Byte; |
+typedef short Int16; |
+typedef unsigned short UInt16; |
+ |
+#ifdef _LZMA_UINT32_IS_ULONG |
+typedef long Int32; |
+typedef unsigned long UInt32; |
+#else |
+typedef int Int32; |
+typedef unsigned int UInt32; |
+#endif |
+ |
+#ifdef _SZ_NO_INT_64 |
+ |
+/* define _SZ_NO_INT_64, if your compiler doesn't support 64-bit integers. |
+ NOTES: Some code will work incorrectly in that case! */ |
+ |
+typedef long Int64; |
+typedef unsigned long UInt64; |
+ |
+#else |
+ |
+#if defined(_MSC_VER) || defined(__BORLANDC__) |
+typedef __int64 Int64; |
+typedef unsigned __int64 UInt64; |
+#define UINT64_CONST(n) n |
+#else |
+typedef long long int Int64; |
+typedef unsigned long long int UInt64; |
+#define UINT64_CONST(n) n ## ULL |
+#endif |
+ |
+#endif |
+ |
+#ifdef _LZMA_NO_SYSTEM_SIZE_T |
+typedef UInt32 SizeT; |
+#else |
+typedef size_t SizeT; |
+#endif |
+ |
+typedef int Bool; |
+#define True 1 |
+#define False 0 |
+ |
+ |
+#ifdef _WIN32 |
+#define MY_STD_CALL __stdcall |
+#else |
+#define MY_STD_CALL |
+#endif |
+ |
+#ifdef _MSC_VER |
+ |
+#if _MSC_VER >= 1300 |
+#define MY_NO_INLINE __declspec(noinline) |
+#else |
+#define MY_NO_INLINE |
+#endif |
+ |
+#define MY_CDECL __cdecl |
+#define MY_FAST_CALL __fastcall |
+ |
+#else |
+ |
+#define MY_CDECL |
+#define MY_FAST_CALL |
+ |
+#endif |
+ |
+ |
+/* The following interfaces use first parameter as pointer to structure */ |
+ |
+typedef struct |
+{ |
+ Byte (*Read)(void *p); /* reads one byte, returns 0 in case of EOF or error */ |
+} IByteIn; |
+ |
+typedef struct |
+{ |
+ void (*Write)(void *p, Byte b); |
+} IByteOut; |
+ |
+typedef struct |
+{ |
+ SRes (*Read)(void *p, void *buf, size_t *size); |
+ /* if (input(*size) != 0 && output(*size) == 0) means end_of_stream. |
+ (output(*size) < input(*size)) is allowed */ |
+} ISeqInStream; |
+ |
+/* it can return SZ_ERROR_INPUT_EOF */ |
+SRes SeqInStream_Read(ISeqInStream *stream, void *buf, size_t size); |
+SRes SeqInStream_Read2(ISeqInStream *stream, void *buf, size_t size, SRes errorType); |
+SRes SeqInStream_ReadByte(ISeqInStream *stream, Byte *buf); |
+ |
+typedef struct |
+{ |
+ size_t (*Write)(void *p, const void *buf, size_t size); |
+ /* Returns: result - the number of actually written bytes. |
+ (result < size) means error */ |
+} ISeqOutStream; |
+ |
+typedef enum |
+{ |
+ SZ_SEEK_SET = 0, |
+ SZ_SEEK_CUR = 1, |
+ SZ_SEEK_END = 2 |
+} ESzSeek; |
+ |
+typedef struct |
+{ |
+ SRes (*Read)(void *p, void *buf, size_t *size); /* same as ISeqInStream::Read */ |
+ SRes (*Seek)(void *p, Int64 *pos, ESzSeek origin); |
+} ISeekInStream; |
+ |
+typedef struct |
+{ |
+ SRes (*Look)(void *p, const void **buf, size_t *size); |
+ /* if (input(*size) != 0 && output(*size) == 0) means end_of_stream. |
+ (output(*size) > input(*size)) is not allowed |
+ (output(*size) < input(*size)) is allowed */ |
+ SRes (*Skip)(void *p, size_t offset); |
+ /* offset must be <= output(*size) of Look */ |
+ |
+ SRes (*Read)(void *p, void *buf, size_t *size); |
+ /* reads directly (without buffer). It's same as ISeqInStream::Read */ |
+ SRes (*Seek)(void *p, Int64 *pos, ESzSeek origin); |
+} ILookInStream; |
+ |
+SRes LookInStream_LookRead(ILookInStream *stream, void *buf, size_t *size); |
+SRes LookInStream_SeekTo(ILookInStream *stream, UInt64 offset); |
+ |
+/* reads via ILookInStream::Read */ |
+SRes LookInStream_Read2(ILookInStream *stream, void *buf, size_t size, SRes errorType); |
+SRes LookInStream_Read(ILookInStream *stream, void *buf, size_t size); |
+ |
+#define LookToRead_BUF_SIZE (1 << 14) |
+ |
+typedef struct |
+{ |
+ ILookInStream s; |
+ ISeekInStream *realStream; |
+ size_t pos; |
+ size_t size; |
+ Byte buf[LookToRead_BUF_SIZE]; |
+} CLookToRead; |
+ |
+void LookToRead_CreateVTable(CLookToRead *p, int lookahead); |
+void LookToRead_Init(CLookToRead *p); |
+ |
+typedef struct |
+{ |
+ ISeqInStream s; |
+ ILookInStream *realStream; |
+} CSecToLook; |
+ |
+void SecToLook_CreateVTable(CSecToLook *p); |
+ |
+typedef struct |
+{ |
+ ISeqInStream s; |
+ ILookInStream *realStream; |
+} CSecToRead; |
+ |
+void SecToRead_CreateVTable(CSecToRead *p); |
+ |
+typedef struct |
+{ |
+ SRes (*Progress)(void *p, UInt64 inSize, UInt64 outSize); |
+ /* Returns: result. (result != SZ_OK) means break. |
+ Value (UInt64)(Int64)-1 for size means unknown value. */ |
+} ICompressProgress; |
+ |
+typedef struct |
+{ |
+ void *(*Alloc)(void *p, size_t size); |
+ void (*Free)(void *p, void *address); /* address can be 0 */ |
+} ISzAlloc; |
+ |
+#define IAlloc_Alloc(p, size) (p)->Alloc((p), size) |
+#define IAlloc_Free(p, a) (p)->Free((p), a) |
+ |
+#ifdef _WIN32 |
+ |
+#define CHAR_PATH_SEPARATOR '\\' |
+#define WCHAR_PATH_SEPARATOR L'\\' |
+#define STRING_PATH_SEPARATOR "\\" |
+#define WSTRING_PATH_SEPARATOR L"\\" |
+ |
+#else |
+ |
+#define CHAR_PATH_SEPARATOR '/' |
+#define WCHAR_PATH_SEPARATOR L'/' |
+#define STRING_PATH_SEPARATOR "/" |
+#define WSTRING_PATH_SEPARATOR L"/" |
+ |
+#endif |
+ |
+EXTERN_C_END |
+ |
+#endif |
Property changes on: third_party/lzma_sdk/Types.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |