git subrepo pull (merge) --force deps/libchdr
[pcsx_rearmed.git] / deps / libchdr / deps / zstd-1.5.5 / programs / fileio_types.h
1 /*
2  * Copyright (c) Meta Platforms, Inc. and affiliates.
3  * All rights reserved.
4  *
5  * This source code is licensed under both the BSD-style license (found in the
6  * LICENSE file in the root directory of this source tree) and the GPLv2 (found
7  * in the COPYING file in the root directory of this source tree).
8  * You may select, at your option, one of the above-listed licenses.
9  */
10
11 #ifndef FILEIO_TYPES_HEADER
12 #define FILEIO_TYPES_HEADER
13
14 #define ZSTD_STATIC_LINKING_ONLY   /* ZSTD_compressionParameters */
15 #include "../lib/zstd.h"           /* ZSTD_* */
16
17 /*-*************************************
18 *  Parameters: FIO_prefs_t
19 ***************************************/
20
21 typedef struct FIO_display_prefs_s FIO_display_prefs_t;
22
23 typedef enum { FIO_ps_auto, FIO_ps_never, FIO_ps_always } FIO_progressSetting_e;
24
25 struct FIO_display_prefs_s {
26     int displayLevel;   /* 0 : no display;  1: errors;  2: + result + interaction + warnings;  3: + progression;  4: + information */
27     FIO_progressSetting_e progressSetting;
28 };
29
30
31 typedef enum { FIO_zstdCompression, FIO_gzipCompression, FIO_xzCompression, FIO_lzmaCompression, FIO_lz4Compression } FIO_compressionType_t;
32
33 typedef struct FIO_prefs_s {
34
35     /* Algorithm preferences */
36     FIO_compressionType_t compressionType;
37     int sparseFileSupport;   /* 0: no sparse allowed; 1: auto (file yes, stdout no); 2: force sparse */
38     int dictIDFlag;
39     int checksumFlag;
40     int blockSize;
41     int overlapLog;
42     int adaptiveMode;
43     int useRowMatchFinder;
44     int rsyncable;
45     int minAdaptLevel;
46     int maxAdaptLevel;
47     int ldmFlag;
48     int ldmHashLog;
49     int ldmMinMatch;
50     int ldmBucketSizeLog;
51     int ldmHashRateLog;
52     size_t streamSrcSize;
53     size_t targetCBlockSize;
54     int srcSizeHint;
55     int testMode;
56     ZSTD_paramSwitch_e literalCompressionMode;
57
58     /* IO preferences */
59     int removeSrcFile;
60     int overwrite;
61     int asyncIO;
62
63     /* Computation resources preferences */
64     unsigned memLimit;
65     int nbWorkers;
66
67     int excludeCompressedFiles;
68     int patchFromMode;
69     int contentSize;
70     int allowBlockDevices;
71     int passThrough;
72     ZSTD_paramSwitch_e mmapDict;
73 } FIO_prefs_t;
74
75 typedef enum {FIO_mallocDict, FIO_mmapDict} FIO_dictBufferType_t;
76
77 typedef struct {
78     void* dictBuffer;
79     size_t dictBufferSize;
80     FIO_dictBufferType_t dictBufferType;
81 #if defined(_MSC_VER) || defined(_WIN32)
82     HANDLE dictHandle;
83 #endif
84 } FIO_Dict_t;
85
86 #endif /* FILEIO_TYPES_HEADER */