Page Menu
Home
Phabricator (Chris)
Search
Configure Global Search
Log In
Files
F631657
Types.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None
Types.h
View Options
/* 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
LzmaBool
;
#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
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Sun, Nov 15, 12:28 PM (1 d, 20 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
122370
Default Alt Text
Types.h (5 KB)
Attached To
Mode
R75 R-Tech1
Attached
Detach File
Event Timeline