Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
7zArcIn.c File Reference
#include "Precomp.h"
#include <string.h>
#include "7z.h"
#include "7zBuf.h"
#include "7zCrc.h"
#include "CpuArch.h"

Data Structures

struct  CSubStreamInfo
 

Macros

#define MY_ALLOC(T, p, size, alloc)
 
#define MY_ALLOC_ZE(T, p, size, alloc)
 
#define MY_ALLOC_AND_CPY(to, size, from, alloc)
 
#define MY_ALLOC_ZE_AND_CPY(to, size, from, alloc)
 
#define k7zMajorVersion   0
 
#define SzBitUi32s_INIT(p)
 
#define SzBitUi64s_INIT(p)
 
#define SzData_CLEAR(p)
 
#define SZ_READ_BYTE_SD_NOCHECK(_sd_, dest)
 
#define SZ_READ_BYTE_SD(_sd_, dest)
 
#define SZ_READ_BYTE(dest)
 
#define SZ_READ_BYTE_2(dest)
 
#define SKIP_DATA(sd, size)
 
#define SKIP_DATA2(sd, size)
 
#define SZ_READ_32(dest)
 
#define ReadID(sd, value)
 
#define k_NumCodersStreams_in_Folder_MAX   (SZ_NUM_BONDS_IN_FOLDER_MAX + SZ_NUM_PACK_STREAMS_IN_FOLDER_MAX)
 
#define k_Scan_NumCoders_MAX   64
 
#define k_Scan_NumCodersStreams_in_Folder_MAX   64
 
#define NUM_ADDITIONAL_STREAMS_MAX   8
 

Enumerations

enum  EIdEnum {
  k7zIdEnd , k7zIdHeader , k7zIdArchiveProperties , k7zIdAdditionalStreamsInfo ,
  k7zIdMainStreamsInfo , k7zIdFilesInfo , k7zIdPackInfo , k7zIdUnpackInfo ,
  k7zIdSubStreamsInfo , k7zIdSize , k7zIdCRC , k7zIdFolder ,
  k7zIdCodersUnpackSize , k7zIdNumUnpackStream , k7zIdEmptyStream , k7zIdEmptyFile ,
  k7zIdAnti , k7zIdName , k7zIdCTime , k7zIdATime ,
  k7zIdMTime , k7zIdWinAttrib , k7zIdComment , k7zIdEncodedHeader ,
  k7zIdStartPos , k7zIdDummy
}
 

Functions

void SzArEx_Init (CSzArEx *p)
 
void SzArEx_Free (CSzArEx *p, ISzAllocPtr alloc)
 
SRes SzGetNextFolderItem (CSzFolder *f, CSzData *sd)
 
UInt64 SzAr_GetFolderUnpackSize (const CSzAr *p, UInt32 folderIndex)
 
SRes SzArEx_Open (CSzArEx *p, ILookInStreamPtr inStream, ISzAllocPtr allocMain, ISzAllocPtr allocTemp)
 
SRes SzArEx_Extract (const CSzArEx *p, ILookInStreamPtr inStream, UInt32 fileIndex, UInt32 *blockIndex, Byte **tempBuf, size_t *outBufferSize, size_t *offset, size_t *outSizeProcessed, ISzAllocPtr allocMain, ISzAllocPtr allocTemp)
 
size_t SzArEx_GetFileNameUtf16 (const CSzArEx *p, size_t fileIndex, UInt16 *dest)
 

Variables

const Byte k7zSignature [k7zSignatureSize] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C}
 

Macro Definition Documentation

◆ k7zMajorVersion

#define k7zMajorVersion   0

◆ k_NumCodersStreams_in_Folder_MAX

#define k_NumCodersStreams_in_Folder_MAX   (SZ_NUM_BONDS_IN_FOLDER_MAX + SZ_NUM_PACK_STREAMS_IN_FOLDER_MAX)

◆ k_Scan_NumCoders_MAX

#define k_Scan_NumCoders_MAX   64

◆ k_Scan_NumCodersStreams_in_Folder_MAX

#define k_Scan_NumCodersStreams_in_Folder_MAX   64

◆ MY_ALLOC

#define MY_ALLOC ( T,
p,
size,
alloc )
Value:
{ if ((p = (T *)ISzAlloc_Alloc(alloc, (size) * sizeof(T))) == NULL) return SZ_ERROR_MEM; }
#define ISzAlloc_Alloc(p, size)
Definition 7zTypes.h:465
#define SZ_ERROR_MEM
Definition 7zTypes.h:30
size_t size
Definition platform.h:559
#define NULL
Definition getopt1.c:37

◆ MY_ALLOC_AND_CPY

#define MY_ALLOC_AND_CPY ( to,
size,
from,
alloc )
Value:
{ MY_ALLOC(Byte, to, size, alloc); memcpy(to, from, size); }
#define MY_ALLOC(T, p, size, alloc)
Definition 7zArcIn.c:13
unsigned char Byte
Definition zconf.h:391

◆ MY_ALLOC_ZE

#define MY_ALLOC_ZE ( T,
p,
size,
alloc )
Value:
{ if ((size) == 0) p = NULL; else MY_ALLOC(T, p, size, alloc) }

◆ MY_ALLOC_ZE_AND_CPY

#define MY_ALLOC_ZE_AND_CPY ( to,
size,
from,
alloc )
Value:
{ if ((size) == 0) to = NULL; else { MY_ALLOC_AND_CPY(to, size, from, alloc) } }
#define MY_ALLOC_AND_CPY(to, size, from, alloc)
Definition 7zArcIn.c:19

◆ NUM_ADDITIONAL_STREAMS_MAX

#define NUM_ADDITIONAL_STREAMS_MAX   8

◆ ReadID

#define ReadID ( sd,
value )
Value:
ReadNumber(sd, value)

◆ SKIP_DATA

#define SKIP_DATA ( sd,
size )
Value:
{ sd->Size -= (size_t)(size); sd->Data += (size_t)(size); }

◆ SKIP_DATA2

#define SKIP_DATA2 ( sd,
size )
Value:
{ sd.Size -= (size_t)(size); sd.Data += (size_t)(size); }

◆ SZ_READ_32

#define SZ_READ_32 ( dest)
Value:
if (sd.Size < 4) return SZ_ERROR_ARCHIVE; \
dest = GetUi32(sd.Data); SKIP_DATA2(sd, 4);
#define SKIP_DATA2(sd, size)
Definition 7zArcIn.c:200
#define SZ_ERROR_ARCHIVE
Definition 7zTypes.h:42
#define GetUi32(p)
Definition CpuArch.h:480
char * dest
Definition lz4.h:806

◆ SZ_READ_BYTE

#define SZ_READ_BYTE ( dest)
Value:
#define SZ_READ_BYTE_SD(_sd_, dest)
Definition 7zArcIn.c:189

◆ SZ_READ_BYTE_2

#define SZ_READ_BYTE_2 ( dest)
Value:
if (sd.Size == 0) return SZ_ERROR_ARCHIVE; \
sd.Size--; dest = *sd.Data++;

◆ SZ_READ_BYTE_SD

#define SZ_READ_BYTE_SD ( _sd_,
dest )
Value:
if ((_sd_)->Size == 0) return SZ_ERROR_ARCHIVE; \
SZ_READ_BYTE_SD_NOCHECK(_sd_, dest)

◆ SZ_READ_BYTE_SD_NOCHECK

#define SZ_READ_BYTE_SD_NOCHECK ( _sd_,
dest )
Value:
(_sd_)->Size--; dest = *(_sd_)->Data++;

◆ SzBitUi32s_INIT

#define SzBitUi32s_INIT ( p)
Value:
{ (p)->Defs = NULL; (p)->Vals = NULL; }

◆ SzBitUi64s_INIT

#define SzBitUi64s_INIT ( p)
Value:
{ (p)->Defs = NULL; (p)->Vals = NULL; }

◆ SzData_CLEAR

#define SzData_CLEAR ( p)
Value:
{ (p)->Data = NULL; (p)->Size = 0; }

Enumeration Type Documentation

◆ EIdEnum

enum EIdEnum
Enumerator
k7zIdEnd 
k7zIdHeader 
k7zIdArchiveProperties 
k7zIdAdditionalStreamsInfo 
k7zIdMainStreamsInfo 
k7zIdFilesInfo 
k7zIdPackInfo 
k7zIdUnpackInfo 
k7zIdSubStreamsInfo 
k7zIdSize 
k7zIdCRC 
k7zIdFolder 
k7zIdCodersUnpackSize 
k7zIdNumUnpackStream 
k7zIdEmptyStream 
k7zIdEmptyFile 
k7zIdAnti 
k7zIdName 
k7zIdCTime 
k7zIdATime 
k7zIdMTime 
k7zIdWinAttrib 
k7zIdComment 
k7zIdEncodedHeader 
k7zIdStartPos 
k7zIdDummy 

Function Documentation

◆ SzAr_GetFolderUnpackSize()

UInt64 SzAr_GetFolderUnpackSize ( const CSzAr * p,
UInt32 folderIndex )

◆ SzArEx_Extract()

SRes SzArEx_Extract ( const CSzArEx * p,
ILookInStreamPtr inStream,
UInt32 fileIndex,
UInt32 * blockIndex,
Byte ** tempBuf,
size_t * outBufferSize,
size_t * offset,
size_t * outSizeProcessed,
ISzAllocPtr allocMain,
ISzAllocPtr allocTemp )

◆ SzArEx_Free()

void SzArEx_Free ( CSzArEx * p,
ISzAllocPtr alloc )

◆ SzArEx_GetFileNameUtf16()

size_t SzArEx_GetFileNameUtf16 ( const CSzArEx * p,
size_t fileIndex,
UInt16 * dest )

◆ SzArEx_Init()

void SzArEx_Init ( CSzArEx * p)

◆ SzArEx_Open()

SRes SzArEx_Open ( CSzArEx * p,
ILookInStreamPtr inStream,
ISzAllocPtr allocMain,
ISzAllocPtr allocTemp )

◆ SzGetNextFolderItem()

SRes SzGetNextFolderItem ( CSzFolder * f,
CSzData * sd )

Variable Documentation

◆ k7zSignature

const Byte k7zSignature[k7zSignatureSize] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C}