zstd_preSplit.h revision 1.1 1 1.1 christos /*
2 1.1 christos * Copyright (c) Meta Platforms, Inc. and affiliates.
3 1.1 christos * All rights reserved.
4 1.1 christos *
5 1.1 christos * This source code is licensed under both the BSD-style license (found in the
6 1.1 christos * LICENSE file in the root directory of this source tree) and the GPLv2 (found
7 1.1 christos * in the COPYING file in the root directory of this source tree).
8 1.1 christos * You may select, at your option, one of the above-listed licenses.
9 1.1 christos */
10 1.1 christos
11 1.1 christos #ifndef ZSTD_PRESPLIT_H
12 1.1 christos #define ZSTD_PRESPLIT_H
13 1.1 christos
14 1.1 christos #include <stddef.h> /* size_t */
15 1.1 christos
16 1.1 christos #define ZSTD_SLIPBLOCK_WORKSPACESIZE 8208
17 1.1 christos
18 1.1 christos /* ZSTD_splitBlock():
19 1.1 christos * @level must be a value between 0 and 4.
20 1.1 christos * higher levels spend more energy to detect block boundaries.
21 1.1 christos * @workspace must be aligned for size_t.
22 1.1 christos * @wkspSize must be at least >= ZSTD_SLIPBLOCK_WORKSPACESIZE
23 1.1 christos * note:
24 1.1 christos * For the time being, this function only accepts full 128 KB blocks.
25 1.1 christos * Therefore, @blockSize must be == 128 KB.
26 1.1 christos * While this could be extended to smaller sizes in the future,
27 1.1 christos * it is not yet clear if this would be useful. TBD.
28 1.1 christos */
29 1.1 christos size_t ZSTD_splitBlock(const void* blockStart, size_t blockSize,
30 1.1 christos int level,
31 1.1 christos void* workspace, size_t wkspSize);
32 1.1 christos
33 1.1 christos #endif /* ZSTD_PRESPLIT_H */
34