Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
fileio.c File Reference
#include "platform.h"
#include "util.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <assert.h>
#include <errno.h>
#include <limits.h>
#include <signal.h>
#include "timefn.h"
#include "../lib/common/mem.h"
#include "fileio.h"
#include "../lib/zstd.h"
#include "../lib/zstd_errors.h"

Data Structures

struct  FIO_display_prefs_s
 
struct  FIO_prefs_s
 
struct  FIO_ctx_s
 
struct  cRess_t
 
struct  dRess_t
 
struct  fileInfo_t
 

Macros

#define ZSTD_STATIC_LINKING_ONLY   /* ZSTD_magicNumber, ZSTD_frameHeaderSize_max */
 
#define LZ4_MAGICNUMBER   0x184D2204
 
#define AMANDA__SIZE   ((32767 * 6) + 2)
 
#define AMANDA__SIZE_w   (32767)
 
#define ADAPT_WINDOWLOG_DEFAULT   23 /* 8 MB */
 
#define DICTSIZE_MAX   (32 MB) /* protection against large input (attack scenario) */
 
#define FNSPACE   30
 
#define DEFAULT_FILE_PERMISSIONS   (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
 
#define KB   *(1 << 10)
 
#define MB   *(1 << 20)
 
#define GB   *(1U << 30)
 
#define MAX(a, b)
 
#define DISPLAY(...)
 
#define DISPLAYOUT(...)
 
#define DISPLAYLEVEL(l, ...)
 
#define READY_FOR_UPDATE()
 
#define DELAY_NEXT_UPDATE()
 
#define DISPLAYUPDATE(l, ...)
 
#define MIN(a, b)
 
#define EXM_THROW(error, ...)
 
#define CHECK_V(v, f)
 
#define CHECK(f)
 
#define BACKTRACE_ENABLE   0
 
#define LONG_SEEK   fseek
 
#define LONG_TELL   ftell
 
#define FIO_OVERLAP_LOG_NOTSET   9999
 
#define FIO_LDM_PARAM_NOTSET   9999
 
#define INDEX(options, index)
 
#define DISPLAY_LEVEL_DEFAULT   2
 
#define FIO_ERROR_FRAME_DECODING   ((unsigned long long)(-2))
 
#define ERROR_IF(c, n, ...)
 

Enumerations

enum  InfoError {
  info_success = 0 , info_frame_error = 1 , info_not_zstd = 2 , info_file_error = 3 ,
  info_truncated_input = 4
}
 

Functions

void pedro_dprintf (int amanda_level, char *format,...)
 
int lgetpor_9 (__int64 max_Amanda, __int64 fatia_Ricardo)
 
void FIO_addAbortHandler ()
 
FIO_prefs_tFIO_createPreferences (void)
 
FIO_ctx_tFIO_createContext (void)
 
void FIO_freePreferences (FIO_prefs_t *const prefs)
 
void FIO_freeContext (FIO_ctx_t *const fCtx)
 
void FIO_setNotificationLevel (int level)
 
void FIO_setProgressSetting (FIO_progressSetting_e setting)
 
void FIO_setCompressionType (FIO_prefs_t *const prefs, FIO_compressionType_t compressionType)
 
void FIO_overwriteMode (FIO_prefs_t *const prefs)
 
void FIO_setSparseWrite (FIO_prefs_t *const prefs, unsigned sparse)
 
void FIO_setDictIDFlag (FIO_prefs_t *const prefs, int dictIDFlag)
 
void FIO_setChecksumFlag (FIO_prefs_t *const prefs, int checksumFlag)
 
void FIO_setRemoveSrcFile (FIO_prefs_t *const prefs, unsigned flag)
 
void FIO_setMemLimit (FIO_prefs_t *const prefs, unsigned memLimit)
 
void FIO_setNbWorkers (FIO_prefs_t *const prefs, int nbWorkers)
 
void FIO_setExcludeCompressedFile (FIO_prefs_t *const prefs, int excludeCompressedFiles)
 
void FIO_setAllowBlockDevices (FIO_prefs_t *const prefs, int allowBlockDevices)
 
void FIO_setBlockSize (FIO_prefs_t *const prefs, int blockSize)
 
void FIO_setOverlapLog (FIO_prefs_t *const prefs, int overlapLog)
 
void FIO_setAdaptiveMode (FIO_prefs_t *const prefs, unsigned adapt)
 
void FIO_setUseRowMatchFinder (FIO_prefs_t *const prefs, int useRowMatchFinder)
 
void FIO_setRsyncable (FIO_prefs_t *const prefs, int rsyncable)
 
void FIO_setStreamSrcSize (FIO_prefs_t *const prefs, size_t streamSrcSize)
 
void FIO_setTargetCBlockSize (FIO_prefs_t *const prefs, size_t targetCBlockSize)
 
void FIO_setSrcSizeHint (FIO_prefs_t *const prefs, size_t srcSizeHint)
 
void FIO_setTestMode (FIO_prefs_t *const prefs, int testMode)
 
void FIO_setLiteralCompressionMode (FIO_prefs_t *const prefs, ZSTD_paramSwitch_e mode)
 
void FIO_setAdaptMin (FIO_prefs_t *const prefs, int minCLevel)
 
void FIO_setAdaptMax (FIO_prefs_t *const prefs, int maxCLevel)
 
void FIO_setLdmFlag (FIO_prefs_t *const prefs, unsigned ldmFlag)
 
void FIO_setLdmHashLog (FIO_prefs_t *const prefs, int ldmHashLog)
 
void FIO_setLdmMinMatch (FIO_prefs_t *const prefs, int ldmMinMatch)
 
void FIO_setLdmBucketSizeLog (FIO_prefs_t *const prefs, int ldmBucketSizeLog)
 
void FIO_setLdmHashRateLog (FIO_prefs_t *const prefs, int ldmHashRateLog)
 
void FIO_setPatchFromMode (FIO_prefs_t *const prefs, int value)
 
void FIO_setContentSize (FIO_prefs_t *const prefs, int value)
 
void FIO_setHasStdoutOutput (FIO_ctx_t *const fCtx, int value)
 
void FIO_setNbFilesTotal (FIO_ctx_t *const fCtx, int value)
 
void FIO_determineHasStdinInput (FIO_ctx_t *const fCtx, const FileNamesTable *const filenames)
 
int FIO_checkFilenameCollisions (const char **filenameTable, unsigned nbFiles)
 
void FIO_displayCompressionParameters (const FIO_prefs_t *prefs)
 
int FIO_compressFilename (FIO_ctx_t *const fCtx, FIO_prefs_t *const prefs, const char *dstFileName, const char *srcFileName, const char *dictFileName, int compressionLevel, ZSTD_compressionParameters comprParams)
 
int FIO_compressMultipleFilenames (FIO_ctx_t *const fCtx, FIO_prefs_t *const prefs, const char **inFileNamesTable, const char *outMirroredRootDirName, const char *outDirName, const char *outFileName, const char *suffix, const char *dictFileName, int compressionLevel, ZSTD_compressionParameters comprParams)
 
int FIO_decompressFilename (FIO_ctx_t *const fCtx, FIO_prefs_t *const prefs, const char *dstFileName, const char *srcFileName, const char *dictFileName)
 
int FIO_decompressMultipleFilenames (FIO_ctx_t *const fCtx, FIO_prefs_t *const prefs, const char **srcNamesTable, const char *outMirroredRootDirName, const char *outDirName, const char *outFileName, const char *dictFileName)
 
int FIO_listMultipleFiles (unsigned numFiles, const char **filenameTable, int displayLevel)
 

Variables

int return_value_arp
 
__int64 processado_rspk
 
int intpause___aakp
 
int intcancel__rspk
 

Macro Definition Documentation

◆ ADAPT_WINDOWLOG_DEFAULT

#define ADAPT_WINDOWLOG_DEFAULT   23 /* 8 MB */

◆ AMANDA__SIZE

#define AMANDA__SIZE   ((32767 * 6) + 2)

The maximum size of an utf-8 encoded filename with the max limit of a file in Windows

◆ AMANDA__SIZE_w

#define AMANDA__SIZE_w   (32767)

The maximum size of Unicode characters in a path in Windows, Linux is 1024 characters as far I know

◆ BACKTRACE_ENABLE

#define BACKTRACE_ENABLE   0

◆ CHECK

#define CHECK ( f)
Value:
{ \
size_t err; \
CHECK_V(err, f); \
}
#define f(i)
Definition sha256.c:46

◆ CHECK_V

#define CHECK_V ( v,
f )
Value:
v = f; \
if (ZSTD_isError(v)) \
{ \
DISPLAYLEVEL(5, "%s \n", #f); \
EXM_THROW(11, "%s", ZSTD_getErrorName(v)); \
}
const char * ZSTD_getErrorName(size_t code)
Definition zstd_common.c:41
#define ZSTD_isError
Definition zstd_internal.h:49

◆ DEFAULT_FILE_PERMISSIONS

#define DEFAULT_FILE_PERMISSIONS   (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)

◆ DELAY_NEXT_UPDATE

#define DELAY_NEXT_UPDATE ( )
Value:
{ \
g_displayClock = UTIL_getTime(); \
}
UTIL_time_t UTIL_getTime(void)
Definition timefn.c:140

◆ DICTSIZE_MAX

#define DICTSIZE_MAX   (32 MB) /* protection against large input (attack scenario) */

◆ DISPLAY

#define DISPLAY ( ...)
Value:
fprintf(stderr, __VA_ARGS__)

◆ DISPLAY_LEVEL_DEFAULT

#define DISPLAY_LEVEL_DEFAULT   2

◆ DISPLAYLEVEL

#define DISPLAYLEVEL ( l,
... )
Value:
{ \
if (g_display_prefs.displayLevel >= l) \
{ \
DISPLAY(__VA_ARGS__); \
} \
}
int displayLevel
Definition fileio.c:116

◆ DISPLAYOUT

#define DISPLAYOUT ( ...)
Value:
fprintf(stdout, __VA_ARGS__)

◆ DISPLAYUPDATE

#define DISPLAYUPDATE ( l,
... )
Value:
{ \
if (g_display_prefs.displayLevel >= l && (g_display_prefs.progressSetting != FIO_ps_never)) \
{ \
if (READY_FOR_UPDATE() || (g_display_prefs.displayLevel >= 4)) \
{ \
DELAY_NEXT_UPDATE(); \
DISPLAY(__VA_ARGS__); \
if (g_display_prefs.displayLevel >= 4) \
fflush(stderr); \
} \
} \
}
FIO_progressSetting_e progressSetting
Definition fileio.c:117
#define READY_FOR_UPDATE()
Definition fileio.c:135
@ FIO_ps_never
Definition fileio.h:71

◆ ERROR_IF

#define ERROR_IF ( c,
n,
... )
Value:
{ \
if (c) \
{ \
DISPLAYLEVEL(1, __VA_ARGS__); \
DISPLAYLEVEL(1, " \n"); \
return n; \
} \
}
#define c(i)
Definition sha256.c:43

◆ EXM_THROW

#define EXM_THROW ( error,
... )
Value:
{ \
DISPLAYLEVEL(1, "zstd: "); \
DISPLAYLEVEL(5, "Error defined at %s, line %i : \n", __FILE__, __LINE__); \
DISPLAYLEVEL(1, "error %i : ", error); \
DISPLAYLEVEL(1, __VA_ARGS__); \
DISPLAYLEVEL(1, " \n"); \
exit(error); \
}
void error(char *msg) const
Definition minigzip.c:356

◆ FIO_ERROR_FRAME_DECODING

#define FIO_ERROR_FRAME_DECODING   ((unsigned long long)(-2))

FIO_decompressFrame() :

Returns
: size of decoded zstd frame, or an error code

◆ FIO_LDM_PARAM_NOTSET

#define FIO_LDM_PARAM_NOTSET   9999

◆ FIO_OVERLAP_LOG_NOTSET

#define FIO_OVERLAP_LOG_NOTSET   9999

◆ FNSPACE

#define FNSPACE   30

◆ GB

#define GB   *(1U << 30)

◆ INDEX

#define INDEX ( options,
index )
Value:
checked_index((options), sizeof(options) / sizeof(char *), (index))
const lzma_options_lzma * options
Definition container.h:545

◆ KB

#define KB   *(1 << 10)

◆ LONG_SEEK

#define LONG_SEEK   fseek

◆ LONG_TELL

#define LONG_TELL   ftell

◆ LZ4_MAGICNUMBER

#define LZ4_MAGICNUMBER   0x184D2204

◆ MAX

#define MAX ( a,
b )
Value:
((a) > (b) ? (a) : (b))
#define b(i)
Definition sha256.c:42
#define a(i)
Definition sha256.c:41

◆ MB

#define MB   *(1 << 20)

◆ MIN

#define MIN ( a,
b )
Value:
((a) < (b) ? (a) : (b))

◆ READY_FOR_UPDATE

#define READY_FOR_UPDATE ( )
Value:
((g_display_prefs.progressSetting != FIO_ps_never) && UTIL_clockSpanMicro(g_displayClock) > g_refreshRate)
PTime UTIL_clockSpanMicro(UTIL_time_t clockStart)
Definition timefn.c:149

◆ ZSTD_STATIC_LINKING_ONLY

#define ZSTD_STATIC_LINKING_ONLY   /* ZSTD_magicNumber, ZSTD_frameHeaderSize_max */

Enumeration Type Documentation

◆ InfoError

enum InfoError
Enumerator
info_success 
info_frame_error 
info_not_zstd 
info_file_error 
info_truncated_input 

Function Documentation

◆ FIO_addAbortHandler()

void FIO_addAbortHandler ( void )

◆ FIO_checkFilenameCollisions()

int FIO_checkFilenameCollisions ( const char ** filenameTable,
unsigned nbFiles )

◆ FIO_compressFilename()

int FIO_compressFilename ( FIO_ctx_t *const fCtx,
FIO_prefs_t *const prefs,
const char * outfilename,
const char * infilename,
const char * dictFileName,
int compressionLevel,
ZSTD_compressionParameters comprParams )

FIO_compressFilename() :

Returns
: 0 == ok; 1 == pb with src file.

◆ FIO_compressMultipleFilenames()

int FIO_compressMultipleFilenames ( FIO_ctx_t *const fCtx,
FIO_prefs_t *const prefs,
const char ** inFileNamesTable,
const char * outMirroredDirName,
const char * outDirName,
const char * outFileName,
const char * suffix,
const char * dictFileName,
int compressionLevel,
ZSTD_compressionParameters comprParams )

FIO_compressMultipleFilenames() :

Returns
: nb of missing files

◆ FIO_createContext()

FIO_ctx_t * FIO_createContext ( void )

◆ FIO_createPreferences()

FIO_prefs_t * FIO_createPreferences ( void )

◆ FIO_decompressFilename()

int FIO_decompressFilename ( FIO_ctx_t *const fCtx,
FIO_prefs_t *const prefs,
const char * outfilename,
const char * infilename,
const char * dictFileName )

FIO_decompressFilename() :

Returns
: 0 == ok; 1 == pb with src file.

◆ FIO_decompressMultipleFilenames()

int FIO_decompressMultipleFilenames ( FIO_ctx_t *const fCtx,
FIO_prefs_t *const prefs,
const char ** srcNamesTable,
const char * outMirroredDirName,
const char * outDirName,
const char * outFileName,
const char * dictFileName )

FIO_decompressMultipleFilenames() :

Returns
: nb of missing or skipped files

◆ FIO_determineHasStdinInput()

void FIO_determineHasStdinInput ( FIO_ctx_t *const fCtx,
const FileNamesTable *const filenames )

◆ FIO_displayCompressionParameters()

void FIO_displayCompressionParameters ( const FIO_prefs_t * prefs)

◆ FIO_freeContext()

void FIO_freeContext ( FIO_ctx_t *const fCtx)

◆ FIO_freePreferences()

void FIO_freePreferences ( FIO_prefs_t *const prefs)

◆ FIO_listMultipleFiles()

int FIO_listMultipleFiles ( unsigned numFiles,
const char ** filenameTable,
int displayLevel )

◆ FIO_overwriteMode()

void FIO_overwriteMode ( FIO_prefs_t *const prefs)

◆ FIO_setAdaptiveMode()

void FIO_setAdaptiveMode ( FIO_prefs_t *const prefs,
unsigned adapt )

◆ FIO_setAdaptMax()

void FIO_setAdaptMax ( FIO_prefs_t *const prefs,
int maxCLevel )

◆ FIO_setAdaptMin()

void FIO_setAdaptMin ( FIO_prefs_t *const prefs,
int minCLevel )

◆ FIO_setAllowBlockDevices()

void FIO_setAllowBlockDevices ( FIO_prefs_t *const prefs,
int allowBlockDevices )

◆ FIO_setBlockSize()

void FIO_setBlockSize ( FIO_prefs_t *const prefs,
int blockSize )

◆ FIO_setChecksumFlag()

void FIO_setChecksumFlag ( FIO_prefs_t *const prefs,
int checksumFlag )

◆ FIO_setCompressionType()

void FIO_setCompressionType ( FIO_prefs_t *const prefs,
FIO_compressionType_t compressionType )

◆ FIO_setContentSize()

void FIO_setContentSize ( FIO_prefs_t *const prefs,
int value )

◆ FIO_setDictIDFlag()

void FIO_setDictIDFlag ( FIO_prefs_t *const prefs,
int dictIDFlag )

◆ FIO_setExcludeCompressedFile()

void FIO_setExcludeCompressedFile ( FIO_prefs_t *const prefs,
int excludeCompressedFiles )

◆ FIO_setHasStdoutOutput()

void FIO_setHasStdoutOutput ( FIO_ctx_t *const fCtx,
int value )

◆ FIO_setLdmBucketSizeLog()

void FIO_setLdmBucketSizeLog ( FIO_prefs_t *const prefs,
int ldmBucketSizeLog )

◆ FIO_setLdmFlag()

void FIO_setLdmFlag ( FIO_prefs_t *const prefs,
unsigned ldmFlag )

◆ FIO_setLdmHashLog()

void FIO_setLdmHashLog ( FIO_prefs_t *const prefs,
int ldmHashLog )

◆ FIO_setLdmHashRateLog()

void FIO_setLdmHashRateLog ( FIO_prefs_t *const prefs,
int ldmHashRateLog )

◆ FIO_setLdmMinMatch()

void FIO_setLdmMinMatch ( FIO_prefs_t *const prefs,
int ldmMinMatch )

◆ FIO_setLiteralCompressionMode()

void FIO_setLiteralCompressionMode ( FIO_prefs_t *const prefs,
ZSTD_paramSwitch_e mode )

◆ FIO_setMemLimit()

void FIO_setMemLimit ( FIO_prefs_t *const prefs,
unsigned memLimit )

◆ FIO_setNbFilesTotal()

void FIO_setNbFilesTotal ( FIO_ctx_t *const fCtx,
int value )

◆ FIO_setNbWorkers()

void FIO_setNbWorkers ( FIO_prefs_t *const prefs,
int nbWorkers )

◆ FIO_setNotificationLevel()

void FIO_setNotificationLevel ( int level)

◆ FIO_setOverlapLog()

void FIO_setOverlapLog ( FIO_prefs_t *const prefs,
int overlapLog )

◆ FIO_setPatchFromMode()

void FIO_setPatchFromMode ( FIO_prefs_t *const prefs,
int value )

◆ FIO_setProgressSetting()

void FIO_setProgressSetting ( FIO_progressSetting_e setting)

◆ FIO_setRemoveSrcFile()

void FIO_setRemoveSrcFile ( FIO_prefs_t *const prefs,
unsigned flag )

◆ FIO_setRsyncable()

void FIO_setRsyncable ( FIO_prefs_t *const prefs,
int rsyncable )

◆ FIO_setSparseWrite()

void FIO_setSparseWrite ( FIO_prefs_t *const prefs,
unsigned sparse )

0: no sparse; 1: disable on stdout; 2: always enabled

◆ FIO_setSrcSizeHint()

void FIO_setSrcSizeHint ( FIO_prefs_t *const prefs,
size_t srcSizeHint )

◆ FIO_setStreamSrcSize()

void FIO_setStreamSrcSize ( FIO_prefs_t *const prefs,
size_t streamSrcSize )

◆ FIO_setTargetCBlockSize()

void FIO_setTargetCBlockSize ( FIO_prefs_t *const prefs,
size_t targetCBlockSize )

◆ FIO_setTestMode()

void FIO_setTestMode ( FIO_prefs_t *const prefs,
int testMode )

◆ FIO_setUseRowMatchFinder()

void FIO_setUseRowMatchFinder ( FIO_prefs_t *const prefs,
int useRowMatchFinder )

◆ lgetpor_9()

int lgetpor_9 ( __int64 max_Amanda,
__int64 fatia_Ricardo )
extern

◆ pedro_dprintf()

void pedro_dprintf ( int amanda_level,
char * format,
... )

Variable Documentation

◆ intcancel__rspk

int intcancel__rspk
extern

◆ intpause___aakp

int intpause___aakp
extern

◆ processado_rspk

__int64 processado_rspk
extern

◆ return_value_arp

int return_value_arp
extern