xref: /src/sys/contrib/zstd/lib/compress/zstd_preSplit.h (revision c0d9a07101a1e72769ee0619a583f63a078fb391)
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 ZSTD_PRESPLIT_H
12 #define ZSTD_PRESPLIT_H
13 
14 #include <stddef.h>  /* size_t */
15 
16 #define ZSTD_SLIPBLOCK_WORKSPACESIZE 8208
17 
18 /* ZSTD_splitBlock():
19  * @level must be a value between 0 and 4.
20  *        higher levels spend more energy to detect block boundaries.
21  * @workspace must be aligned for size_t.
22  * @wkspSize must be at least >= ZSTD_SLIPBLOCK_WORKSPACESIZE
23  * note:
24  * For the time being, this function only accepts full 128 KB blocks.
25  * Therefore, @blockSize must be == 128 KB.
26  * While this could be extended to smaller sizes in the future,
27  * it is not yet clear if this would be useful. TBD.
28  */
29 size_t ZSTD_splitBlock(const void* blockStart, size_t blockSize,
30                     int level,
31                     void* workspace, size_t wkspSize);
32 
33 #endif /* ZSTD_PRESPLIT_H */
34