Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
linux_zstd.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */
2/*
3 * Copyright (c) Yann Collet, Facebook, Inc.
4 * All rights reserved.
5 *
6 * This source code is licensed under both the BSD-style license (found in the
7 * LICENSE file in the root directory of https://github.com/facebook/zstd) and
8 * the GPLv2 (found in the COPYING file in the root directory of
9 * https://github.com/facebook/zstd). You may select, at your option, one of the
10 * above-listed licenses.
11 */
12
13#ifndef LINUX_ZSTD_H
14#define LINUX_ZSTD_H
15
23/* ====== Dependency ====== */
24#include <linux/types.h>
25#include <linux/zstd_errors.h>
26#include <linux/zstd_lib.h>
27
28/* ====== Helper Functions ====== */
35size_t zstd_compress_bound(size_t src_size);
36
43unsigned int zstd_is_error(size_t code);
44
48typedef ZSTD_ErrorCode zstd_error_code;
49
56zstd_error_code zstd_get_error_code(size_t code);
57
64const char *zstd_get_error_name(size_t code);
65
71int zstd_min_clevel(void);
72
78int zstd_max_clevel(void);
79
80/* ====== Parameter Selection ====== */
81
87typedef ZSTD_strategy zstd_strategy;
88
106typedef ZSTD_compressionParameters zstd_compression_parameters;
107
119typedef ZSTD_frameParameters zstd_frame_parameters;
120
126typedef ZSTD_parameters zstd_parameters;
127
136zstd_parameters zstd_get_params(int level,
137 unsigned long long estimated_src_size);
138
139/* ====== Single-pass Compression ====== */
140
141typedef ZSTD_CCtx zstd_cctx;
142
154size_t zstd_cctx_workspace_bound(const zstd_compression_parameters *parameters);
155
165zstd_cctx *zstd_init_cctx(void *workspace, size_t workspace_size);
166
180size_t zstd_compress_cctx(zstd_cctx *cctx, void *dst, size_t dst_capacity,
181 const void *src, size_t src_size, const zstd_parameters *parameters);
182
183/* ====== Single-pass Decompression ====== */
184
185typedef ZSTD_DCtx zstd_dctx;
186
193size_t zstd_dctx_workspace_bound(void);
194
204zstd_dctx *zstd_init_dctx(void *workspace, size_t workspace_size);
205
220size_t zstd_decompress_dctx(zstd_dctx *dctx, void *dst, size_t dst_capacity,
221 const void *src, size_t src_size);
222
223/* ====== Streaming Buffers ====== */
224
234typedef ZSTD_inBuffer zstd_in_buffer;
235
245typedef ZSTD_outBuffer zstd_out_buffer;
246
247/* ====== Streaming Compression ====== */
248
249typedef ZSTD_CStream zstd_cstream;
250
258size_t zstd_cstream_workspace_bound(const zstd_compression_parameters *cparams);
259
275zstd_cstream *zstd_init_cstream(const zstd_parameters *parameters,
276 unsigned long long pledged_src_size, void *workspace, size_t workspace_size);
277
290size_t zstd_reset_cstream(zstd_cstream *cstream,
291 unsigned long long pledged_src_size);
292
310size_t zstd_compress_stream(zstd_cstream *cstream, zstd_out_buffer *output,
311 zstd_in_buffer *input);
312
326size_t zstd_flush_stream(zstd_cstream *cstream, zstd_out_buffer *output);
327
340size_t zstd_end_stream(zstd_cstream *cstream, zstd_out_buffer *output);
341
342/* ====== Streaming Decompression ====== */
343
344typedef ZSTD_DStream zstd_dstream;
345
353size_t zstd_dstream_workspace_bound(size_t max_window_size);
354
366zstd_dstream *zstd_init_dstream(size_t max_window_size, void *workspace,
367 size_t workspace_size);
368
378size_t zstd_reset_dstream(zstd_dstream *dstream);
379
401size_t zstd_decompress_stream(zstd_dstream *dstream, zstd_out_buffer *output,
402 zstd_in_buffer *input);
403
404/* ====== Frame Inspection Functions ====== */
405
417size_t zstd_find_frame_compressed_size(const void *src, size_t src_size);
418
432typedef ZSTD_frameHeader zstd_frame_header;
433
444size_t zstd_get_frame_header(zstd_frame_header *params, const void *src,
445 size_t src_size);
446
447#endif /* LINUX_ZSTD_H */
char * dst
Definition lz4.h:833
const char * src
Definition lz4.h:866
#define input(b, o, c, n, m)
Definition compress42.c:610
#define output(b, o, c, n)
Definition compress42.c:592
Definition zstd_compress_internal.h:358
Definition zstd_decompress_internal.h:126
Definition zstd.h:596
Definition zstd.h:602
Definition zstd_v04.c:255
Definition inftrees.h:24
size_t zstd_compress_bound(size_t src_size)
Definition zstd_compress_module.c:69
zstd_parameters zstd_get_params(int level, unsigned long long estimated_src_size)
Definition zstd_compress_module.c:75
zstd_cstream * zstd_init_cstream(const zstd_parameters *parameters, unsigned long long pledged_src_size, void *workspace, size_t workspace_size)
Definition zstd_compress_module.c:110
size_t zstd_compress_stream(zstd_cstream *cstream, zstd_out_buffer *output, zstd_in_buffer *input)
Definition zstd_compress_module.c:140
size_t zstd_flush_stream(zstd_cstream *cstream, zstd_out_buffer *output)
Definition zstd_compress_module.c:147
size_t zstd_reset_cstream(zstd_cstream *cstream, unsigned long long pledged_src_size)
Definition zstd_compress_module.c:133
size_t zstd_cstream_workspace_bound(const zstd_compression_parameters *cparams)
Definition zstd_compress_module.c:104
size_t zstd_end_stream(zstd_cstream *cstream, zstd_out_buffer *output)
Definition zstd_compress_module.c:153
zstd_cctx * zstd_init_cctx(void *workspace, size_t workspace_size)
Definition zstd_compress_module.c:88
int zstd_min_clevel(void)
Definition zstd_compress_module.c:57
size_t zstd_cctx_workspace_bound(const zstd_compression_parameters *cparams)
Definition zstd_compress_module.c:82
size_t zstd_compress_cctx(zstd_cctx *cctx, void *dst, size_t dst_capacity, const void *src, size_t src_size, const zstd_parameters *parameters)
Definition zstd_compress_module.c:96
int zstd_max_clevel(void)
Definition zstd_compress_module.c:63
size_t zstd_decompress_dctx(zstd_dctx *dctx, void *dst, size_t dst_capacity, const void *src, size_t src_size)
Definition zstd_decompress_module.c:55
unsigned int zstd_is_error(size_t code)
Definition zstd_decompress_module.c:21
zstd_error_code zstd_get_error_code(size_t code)
Definition zstd_decompress_module.c:27
size_t zstd_dctx_workspace_bound(void)
Definition zstd_decompress_module.c:41
const char * zstd_get_error_name(size_t code)
Definition zstd_decompress_module.c:33
size_t zstd_reset_dstream(zstd_dstream *dstream)
Definition zstd_decompress_module.c:78
size_t zstd_find_frame_compressed_size(const void *src, size_t src_size)
Definition zstd_decompress_module.c:91
size_t zstd_decompress_stream(zstd_dstream *dstream, zstd_out_buffer *output, zstd_in_buffer *input)
Definition zstd_decompress_module.c:84
size_t zstd_get_frame_header(zstd_frame_header *header, const void *src, size_t src_size)
Definition zstd_decompress_module.c:97
zstd_dctx * zstd_init_dctx(void *workspace, size_t workspace_size)
Definition zstd_decompress_module.c:47
size_t zstd_dstream_workspace_bound(size_t max_window_size)
Definition zstd_decompress_module.c:62
zstd_dstream * zstd_init_dstream(size_t max_window_size, void *workspace, size_t workspace_size)
Definition zstd_decompress_module.c:68
ZSTD_strategy
Definition zstd_v04.c:252
ZSTD_ErrorCode
Definition zstd_errors.h:52