deflate-ruby 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CLAUDE.md +95 -92
- data/LICENSE.txt +6 -6
- data/README.md +87 -65
- data/Rakefile +23 -0
- data/ext/deflate_ruby/{libdeflate/lib/x86/adler32_impl.h → adler32_impl.h} +8 -7
- data/ext/deflate_ruby/common_defs.h +748 -0
- data/ext/deflate_ruby/{libdeflate/lib/x86/cpu_features.c → cpu_features.c} +46 -16
- data/ext/deflate_ruby/{libdeflate/lib/x86/cpu_features.h → cpu_features.h} +2 -1
- data/ext/deflate_ruby/{libdeflate/lib/x86/crc32_impl.h → crc32_impl.h} +22 -23
- data/ext/deflate_ruby/{libdeflate/lib/crc32_multipliers.h → crc32_multipliers.h} +2 -4
- data/ext/deflate_ruby/{libdeflate/lib/x86/crc32_pclmul_template.h → crc32_pclmul_template.h} +23 -94
- data/ext/deflate_ruby/{libdeflate/lib/crc32_tables.h → crc32_tables.h} +1 -1
- data/ext/deflate_ruby/{libdeflate/lib/deflate_compress.c → deflate_compress.c} +59 -60
- data/ext/deflate_ruby/deflate_ruby.c +392 -218
- data/ext/deflate_ruby/deflate_ruby.h +6 -0
- data/ext/deflate_ruby/extconf.rb +35 -25
- data/ext/deflate_ruby/libdeflate/adler32.c +162 -0
- data/ext/deflate_ruby/libdeflate/{lib/arm → arm}/adler32_impl.h +14 -7
- data/ext/deflate_ruby/libdeflate/{lib/arm → arm}/crc32_impl.h +25 -31
- data/ext/deflate_ruby/libdeflate/arm/crc32_pmull_helpers.h +156 -0
- data/ext/deflate_ruby/libdeflate/arm/crc32_pmull_wide.h +226 -0
- data/ext/deflate_ruby/libdeflate/bt_matchfinder.h +342 -0
- data/ext/deflate_ruby/libdeflate/common_defs.h +2 -1
- data/ext/deflate_ruby/libdeflate/cpu_features_common.h +93 -0
- data/ext/deflate_ruby/libdeflate/crc32.c +262 -0
- data/ext/deflate_ruby/libdeflate/crc32_multipliers.h +375 -0
- data/ext/deflate_ruby/libdeflate/crc32_tables.h +587 -0
- data/ext/deflate_ruby/libdeflate/decompress_template.h +777 -0
- data/ext/deflate_ruby/libdeflate/deflate_compress.c +4128 -0
- data/ext/deflate_ruby/libdeflate/deflate_compress.h +15 -0
- data/ext/deflate_ruby/libdeflate/deflate_constants.h +56 -0
- data/ext/deflate_ruby/libdeflate/deflate_decompress.c +1208 -0
- data/ext/deflate_ruby/libdeflate/gzip_compress.c +90 -0
- data/ext/deflate_ruby/libdeflate/gzip_constants.h +45 -0
- data/ext/deflate_ruby/libdeflate/gzip_decompress.c +144 -0
- data/ext/deflate_ruby/libdeflate/hc_matchfinder.h +401 -0
- data/ext/deflate_ruby/libdeflate/ht_matchfinder.h +234 -0
- data/ext/deflate_ruby/libdeflate/lib_common.h +106 -0
- data/ext/deflate_ruby/libdeflate/libdeflate.h +2 -2
- data/ext/deflate_ruby/libdeflate/{lib/matchfinder_common.h → matchfinder_common.h} +3 -3
- data/ext/deflate_ruby/libdeflate/x86/adler32_impl.h +135 -0
- data/ext/deflate_ruby/libdeflate/x86/adler32_template.h +518 -0
- data/ext/deflate_ruby/libdeflate/x86/cpu_features.c +213 -0
- data/ext/deflate_ruby/libdeflate/x86/cpu_features.h +170 -0
- data/ext/deflate_ruby/libdeflate/x86/crc32_impl.h +159 -0
- data/ext/deflate_ruby/libdeflate/x86/crc32_pclmul_template.h +424 -0
- data/ext/deflate_ruby/libdeflate/x86/decompress_impl.h +57 -0
- data/ext/deflate_ruby/libdeflate.h +411 -0
- data/ext/deflate_ruby/matchfinder_common.h +224 -0
- data/ext/deflate_ruby/matchfinder_impl.h +122 -0
- data/ext/deflate_ruby/utils.c +141 -0
- data/ext/deflate_ruby/zlib_compress.c +82 -0
- data/ext/deflate_ruby/zlib_constants.h +21 -0
- data/ext/deflate_ruby/zlib_decompress.c +104 -0
- data/lib/deflate_ruby/version.rb +1 -1
- data/lib/deflate_ruby.rb +1 -63
- data/sig/deflate_ruby.rbs +4 -0
- data/test/test_deflate_ruby.rb +220 -0
- data/test/test_helper.rb +6 -0
- metadata +89 -144
- data/ext/deflate_ruby/libdeflate/CMakeLists.txt +0 -270
- data/ext/deflate_ruby/libdeflate/NEWS.md +0 -494
- data/ext/deflate_ruby/libdeflate/README.md +0 -228
- data/ext/deflate_ruby/libdeflate/libdeflate-config.cmake.in +0 -3
- data/ext/deflate_ruby/libdeflate/libdeflate.pc.in +0 -18
- data/ext/deflate_ruby/libdeflate/programs/CMakeLists.txt +0 -105
- data/ext/deflate_ruby/libdeflate/programs/benchmark.c +0 -696
- data/ext/deflate_ruby/libdeflate/programs/checksum.c +0 -218
- data/ext/deflate_ruby/libdeflate/programs/config.h.in +0 -19
- data/ext/deflate_ruby/libdeflate/programs/gzip.c +0 -688
- data/ext/deflate_ruby/libdeflate/programs/prog_util.c +0 -521
- data/ext/deflate_ruby/libdeflate/programs/prog_util.h +0 -225
- data/ext/deflate_ruby/libdeflate/programs/test_checksums.c +0 -200
- data/ext/deflate_ruby/libdeflate/programs/test_custom_malloc.c +0 -155
- data/ext/deflate_ruby/libdeflate/programs/test_incomplete_codes.c +0 -385
- data/ext/deflate_ruby/libdeflate/programs/test_invalid_streams.c +0 -130
- data/ext/deflate_ruby/libdeflate/programs/test_litrunlen_overflow.c +0 -72
- data/ext/deflate_ruby/libdeflate/programs/test_overread.c +0 -95
- data/ext/deflate_ruby/libdeflate/programs/test_slow_decompression.c +0 -472
- data/ext/deflate_ruby/libdeflate/programs/test_trailing_bytes.c +0 -151
- data/ext/deflate_ruby/libdeflate/programs/test_util.c +0 -237
- data/ext/deflate_ruby/libdeflate/programs/test_util.h +0 -61
- data/ext/deflate_ruby/libdeflate/programs/tgetopt.c +0 -118
- data/ext/deflate_ruby/libdeflate/scripts/android_build.sh +0 -118
- data/ext/deflate_ruby/libdeflate/scripts/android_tests.sh +0 -69
- data/ext/deflate_ruby/libdeflate/scripts/benchmark.sh +0 -10
- data/ext/deflate_ruby/libdeflate/scripts/checksum.sh +0 -10
- data/ext/deflate_ruby/libdeflate/scripts/checksum_benchmarks.sh +0 -253
- data/ext/deflate_ruby/libdeflate/scripts/cmake-helper.sh +0 -17
- data/ext/deflate_ruby/libdeflate/scripts/deflate_benchmarks.sh +0 -119
- data/ext/deflate_ruby/libdeflate/scripts/exec_tests.sh +0 -38
- data/ext/deflate_ruby/libdeflate/scripts/gen-release-archives.sh +0 -37
- data/ext/deflate_ruby/libdeflate/scripts/gen_bitreverse_tab.py +0 -19
- data/ext/deflate_ruby/libdeflate/scripts/gen_crc32_multipliers.c +0 -199
- data/ext/deflate_ruby/libdeflate/scripts/gen_crc32_tables.c +0 -105
- data/ext/deflate_ruby/libdeflate/scripts/gen_default_litlen_costs.py +0 -44
- data/ext/deflate_ruby/libdeflate/scripts/gen_offset_slot_map.py +0 -29
- data/ext/deflate_ruby/libdeflate/scripts/gzip_tests.sh +0 -523
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/deflate_compress/corpus/0 +0 -0
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/deflate_compress/fuzz.c +0 -95
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/deflate_decompress/corpus/0 +0 -3
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/deflate_decompress/fuzz.c +0 -62
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/fuzz.sh +0 -108
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/gzip_decompress/corpus/0 +0 -0
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/gzip_decompress/fuzz.c +0 -19
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/zlib_decompress/corpus/0 +0 -3
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/zlib_decompress/fuzz.c +0 -19
- data/ext/deflate_ruby/libdeflate/scripts/run_tests.sh +0 -416
- data/ext/deflate_ruby/libdeflate/scripts/toolchain-i686-w64-mingw32.cmake +0 -8
- data/ext/deflate_ruby/libdeflate/scripts/toolchain-x86_64-w64-mingw32.cmake +0 -8
- /data/ext/deflate_ruby/{libdeflate/lib/adler32.c → adler32.c} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/x86/adler32_template.h → adler32_template.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/bt_matchfinder.h → bt_matchfinder.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/cpu_features_common.h → cpu_features_common.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/crc32.c → crc32.c} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/arm/crc32_pmull_helpers.h → crc32_pmull_helpers.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/arm/crc32_pmull_wide.h → crc32_pmull_wide.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/x86/decompress_impl.h → decompress_impl.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/decompress_template.h → decompress_template.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/deflate_compress.h → deflate_compress.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/deflate_constants.h → deflate_constants.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/deflate_decompress.c → deflate_decompress.c} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/gzip_compress.c → gzip_compress.c} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/gzip_constants.h → gzip_constants.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/gzip_decompress.c → gzip_decompress.c} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/hc_matchfinder.h → hc_matchfinder.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/ht_matchfinder.h → ht_matchfinder.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/lib_common.h → lib_common.h} +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/arm → arm}/cpu_features.c +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/arm → arm}/cpu_features.h +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/arm → arm}/matchfinder_impl.h +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/riscv → riscv}/matchfinder_impl.h +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/utils.c → utils.c} +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/x86 → x86}/matchfinder_impl.h +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/zlib_compress.c → zlib_compress.c} +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/zlib_constants.h → zlib_constants.h} +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/zlib_decompress.c → zlib_decompress.c} +0 -0
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* checksum.c - Adler-32 and CRC-32 checksumming program
|
|
3
|
-
*
|
|
4
|
-
* Copyright 2016 Eric Biggers
|
|
5
|
-
*
|
|
6
|
-
* Permission is hereby granted, free of charge, to any person
|
|
7
|
-
* obtaining a copy of this software and associated documentation
|
|
8
|
-
* files (the "Software"), to deal in the Software without
|
|
9
|
-
* restriction, including without limitation the rights to use,
|
|
10
|
-
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
-
* copies of the Software, and to permit persons to whom the
|
|
12
|
-
* Software is furnished to do so, subject to the following
|
|
13
|
-
* conditions:
|
|
14
|
-
*
|
|
15
|
-
* The above copyright notice and this permission notice shall be
|
|
16
|
-
* included in all copies or substantial portions of the Software.
|
|
17
|
-
*
|
|
18
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
19
|
-
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
20
|
-
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
21
|
-
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
22
|
-
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
23
|
-
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
24
|
-
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
25
|
-
* OTHER DEALINGS IN THE SOFTWARE.
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
#include "test_util.h"
|
|
29
|
-
|
|
30
|
-
static const tchar *const optstring = T("Ahm:s:tZ");
|
|
31
|
-
|
|
32
|
-
static void
|
|
33
|
-
show_usage(FILE *fp)
|
|
34
|
-
{
|
|
35
|
-
fprintf(fp,
|
|
36
|
-
"Usage: %"TS" [-A] [-h] [-m ALIGN] [-s SIZE] [-t] [-Z] [FILE]...\n"
|
|
37
|
-
"Calculate Adler-32 or CRC-32 checksums of the specified FILEs.\n"
|
|
38
|
-
"\n"
|
|
39
|
-
"Options:\n"
|
|
40
|
-
" -A use Adler-32 (default is CRC-32)\n"
|
|
41
|
-
" -h print this help\n"
|
|
42
|
-
" -m ALIGN misalign the buffer by ALIGN bytes\n"
|
|
43
|
-
" -s SIZE chunk size in bytes\n"
|
|
44
|
-
" -t show checksum speed, excluding I/O\n"
|
|
45
|
-
" -Z use zlib implementation instead of libdeflate\n",
|
|
46
|
-
prog_invocation_name);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
typedef u32 (*cksum_fn_t)(u32, const void *, size_t);
|
|
50
|
-
|
|
51
|
-
static u32
|
|
52
|
-
adler32_libdeflate(u32 adler, const void *buf, size_t len)
|
|
53
|
-
{
|
|
54
|
-
return libdeflate_adler32(adler, buf, len);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
static u32
|
|
58
|
-
crc32_libdeflate(u32 crc, const void *buf, size_t len)
|
|
59
|
-
{
|
|
60
|
-
return libdeflate_crc32(crc, buf, len);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
static u32
|
|
64
|
-
adler32_zlib(u32 adler, const void *buf, size_t len)
|
|
65
|
-
{
|
|
66
|
-
return adler32(adler, buf, len);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
static u32
|
|
70
|
-
crc32_zlib(u32 crc, const void *buf, size_t len)
|
|
71
|
-
{
|
|
72
|
-
return crc32(crc, buf, len);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
static int
|
|
76
|
-
checksum_stream(struct file_stream *in, cksum_fn_t cksum, u32 *sum,
|
|
77
|
-
void *buf, size_t bufsize, u64 *size_ret, u64 *elapsed_ret)
|
|
78
|
-
{
|
|
79
|
-
u64 size = 0;
|
|
80
|
-
u64 elapsed = 0;
|
|
81
|
-
|
|
82
|
-
for (;;) {
|
|
83
|
-
ssize_t ret;
|
|
84
|
-
u64 start_time;
|
|
85
|
-
|
|
86
|
-
ret = xread(in, buf, bufsize);
|
|
87
|
-
if (ret < 0)
|
|
88
|
-
return ret;
|
|
89
|
-
if (ret == 0)
|
|
90
|
-
break;
|
|
91
|
-
|
|
92
|
-
size += ret;
|
|
93
|
-
start_time = timer_ticks();
|
|
94
|
-
*sum = cksum(*sum, buf, ret);
|
|
95
|
-
elapsed += timer_ticks() - start_time;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
if (elapsed == 0)
|
|
99
|
-
elapsed = 1;
|
|
100
|
-
*size_ret = size;
|
|
101
|
-
*elapsed_ret = elapsed;
|
|
102
|
-
return 0;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
int
|
|
106
|
-
tmain(int argc, tchar *argv[])
|
|
107
|
-
{
|
|
108
|
-
bool use_adler32 = false;
|
|
109
|
-
bool use_zlib_impl = false;
|
|
110
|
-
bool do_timing = false;
|
|
111
|
-
void *orig_buf = NULL;
|
|
112
|
-
void *buf;
|
|
113
|
-
size_t misalignment = 0;
|
|
114
|
-
size_t bufsize = 131072;
|
|
115
|
-
tchar *default_file_list[] = { NULL };
|
|
116
|
-
cksum_fn_t cksum;
|
|
117
|
-
int opt_char;
|
|
118
|
-
int i;
|
|
119
|
-
int ret;
|
|
120
|
-
|
|
121
|
-
begin_program(argv);
|
|
122
|
-
|
|
123
|
-
while ((opt_char = tgetopt(argc, argv, optstring)) != -1) {
|
|
124
|
-
switch (opt_char) {
|
|
125
|
-
case 'A':
|
|
126
|
-
use_adler32 = true;
|
|
127
|
-
break;
|
|
128
|
-
case 'h':
|
|
129
|
-
show_usage(stdout);
|
|
130
|
-
return 0;
|
|
131
|
-
case 'm':
|
|
132
|
-
misalignment = tstrtoul(toptarg, NULL, 10);
|
|
133
|
-
if (misalignment >= 4096) {
|
|
134
|
-
msg("invalid misalignment: \"%"TS"\"", toptarg);
|
|
135
|
-
return 1;
|
|
136
|
-
}
|
|
137
|
-
break;
|
|
138
|
-
case 's':
|
|
139
|
-
bufsize = tstrtoul(toptarg, NULL, 10);
|
|
140
|
-
if (bufsize == 0 || bufsize > SIZE_MAX / 2) {
|
|
141
|
-
msg("invalid chunk size: \"%"TS"\"", toptarg);
|
|
142
|
-
return 1;
|
|
143
|
-
}
|
|
144
|
-
break;
|
|
145
|
-
case 't':
|
|
146
|
-
do_timing = true;
|
|
147
|
-
break;
|
|
148
|
-
case 'Z':
|
|
149
|
-
use_zlib_impl = true;
|
|
150
|
-
break;
|
|
151
|
-
default:
|
|
152
|
-
show_usage(stderr);
|
|
153
|
-
return 1;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
argc -= toptind;
|
|
158
|
-
argv += toptind;
|
|
159
|
-
|
|
160
|
-
if (use_adler32) {
|
|
161
|
-
if (use_zlib_impl)
|
|
162
|
-
cksum = adler32_zlib;
|
|
163
|
-
else
|
|
164
|
-
cksum = adler32_libdeflate;
|
|
165
|
-
} else {
|
|
166
|
-
if (use_zlib_impl)
|
|
167
|
-
cksum = crc32_zlib;
|
|
168
|
-
else
|
|
169
|
-
cksum = crc32_libdeflate;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
orig_buf = xmalloc(bufsize + 4096 + misalignment);
|
|
173
|
-
if (orig_buf == NULL)
|
|
174
|
-
return 1;
|
|
175
|
-
buf = (u8 *)orig_buf + (-(uintptr_t)orig_buf % 4096) + misalignment;
|
|
176
|
-
|
|
177
|
-
if (argc == 0) {
|
|
178
|
-
argv = default_file_list;
|
|
179
|
-
argc = ARRAY_LEN(default_file_list);
|
|
180
|
-
} else {
|
|
181
|
-
for (i = 0; i < argc; i++)
|
|
182
|
-
if (argv[i][0] == '-' && argv[i][1] == '\0')
|
|
183
|
-
argv[i] = NULL;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
for (i = 0; i < argc; i++) {
|
|
187
|
-
struct file_stream in;
|
|
188
|
-
u32 sum = cksum(0, NULL, 0);
|
|
189
|
-
u64 size = 0;
|
|
190
|
-
u64 elapsed = 0;
|
|
191
|
-
|
|
192
|
-
ret = xopen_for_read(argv[i], true, &in);
|
|
193
|
-
if (ret != 0)
|
|
194
|
-
goto out;
|
|
195
|
-
|
|
196
|
-
ret = checksum_stream(&in, cksum, &sum, buf, bufsize,
|
|
197
|
-
&size, &elapsed);
|
|
198
|
-
if (ret == 0) {
|
|
199
|
-
if (do_timing) {
|
|
200
|
-
printf("%08"PRIx32"\t%"TS"\t"
|
|
201
|
-
"%"PRIu64" ms\t%"PRIu64" MB/s\n",
|
|
202
|
-
sum, in.name, timer_ticks_to_ms(elapsed),
|
|
203
|
-
timer_MB_per_s(size, elapsed));
|
|
204
|
-
} else {
|
|
205
|
-
printf("%08"PRIx32"\t%"TS"\t\n", sum, in.name);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
xclose(&in);
|
|
210
|
-
|
|
211
|
-
if (ret != 0)
|
|
212
|
-
goto out;
|
|
213
|
-
}
|
|
214
|
-
ret = 0;
|
|
215
|
-
out:
|
|
216
|
-
free(orig_buf);
|
|
217
|
-
return -ret;
|
|
218
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#ifndef CONFIG_H
|
|
2
|
-
#define CONFIG_H
|
|
3
|
-
|
|
4
|
-
/* Is the clock_gettime() function available? */
|
|
5
|
-
#cmakedefine HAVE_CLOCK_GETTIME
|
|
6
|
-
|
|
7
|
-
/* Is the futimens() function available? */
|
|
8
|
-
#cmakedefine HAVE_FUTIMENS
|
|
9
|
-
|
|
10
|
-
/* Is the posix_fadvise() function available? */
|
|
11
|
-
#cmakedefine HAVE_POSIX_FADVISE
|
|
12
|
-
|
|
13
|
-
/* Is the posix_madvise() function available? */
|
|
14
|
-
#cmakedefine HAVE_POSIX_MADVISE
|
|
15
|
-
|
|
16
|
-
/* Does stat() provide nanosecond-precision timestamps? */
|
|
17
|
-
#cmakedefine HAVE_STAT_NANOSECOND_PRECISION
|
|
18
|
-
|
|
19
|
-
#endif /* CONFIG_H */
|