/* * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the * LICENSE file in the root directory of this source tree) and the GPLv2 (found * in the COPYING file in the root directory of this source tree). * You may select, at your option, one of the above-listed licenses. */ #ifndef ZSTD_PRESPLIT_H #define ZSTD_PRESPLIT_H #include /* size_t */ #if defined (__cplusplus) extern "C" { #endif typedef enum { split_lvl1, split_lvl2 } ZSTD_SplitBlock_strategy_e; #define ZSTD_SLIPBLOCK_WORKSPACESIZE 8208 /* note: * @workspace must be aligned on 8-bytes boundaries * @wkspSize must be at least >= ZSTD_SLIPBLOCK_WORKSPACESIZE * note2: * for the time being, this function only accepts full 128 KB blocks, * therefore @blockSizeMax must be == 128 KB. * This could be extended to smaller sizes in the future. */ size_t ZSTD_splitBlock(const void* src, size_t srcSize, size_t blockSizeMax, ZSTD_SplitBlock_strategy_e splitStrat, void* workspace, size_t wkspSize); #if defined (__cplusplus) } #endif #endif /* ZSTD_PRESPLIT_H */