Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/contrib/openzfs/module/zstd/lib/compress/zstd_preSplit.h
178701 views
1
// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-only
2
/*
3
* Copyright (c) Meta Platforms, Inc. and affiliates.
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 this source tree) and the GPLv2 (found
8
* in the COPYING file in the root directory of this source tree).
9
* You may select, at your option, one of the above-listed licenses.
10
*/
11
12
#ifndef ZSTD_PRESPLIT_H
13
#define ZSTD_PRESPLIT_H
14
15
#include <stddef.h> /* size_t */
16
17
#define ZSTD_SLIPBLOCK_WORKSPACESIZE 8208
18
19
/* ZSTD_splitBlock():
20
* @level must be a value between 0 and 4.
21
* higher levels spend more energy to detect block boundaries.
22
* @workspace must be aligned for size_t.
23
* @wkspSize must be at least >= ZSTD_SLIPBLOCK_WORKSPACESIZE
24
* note:
25
* For the time being, this function only accepts full 128 KB blocks.
26
* Therefore, @blockSize must be == 128 KB.
27
* While this could be extended to smaller sizes in the future,
28
* it is not yet clear if this would be useful. TBD.
29
*/
30
size_t ZSTD_splitBlock(const void* blockStart, size_t blockSize,
31
int level,
32
void* workspace, size_t wkspSize);
33
34
#endif /* ZSTD_PRESPLIT_H */
35
36