0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include <linux/kernel.h>
0013 #include <linux/module.h>
0014 #include <linux/string.h>
0015 #include <linux/zstd.h>
0016
0017 #include "common/zstd_deps.h"
0018
0019
0020
0021 unsigned int zstd_is_error(size_t code)
0022 {
0023 return ZSTD_isError(code);
0024 }
0025 EXPORT_SYMBOL(zstd_is_error);
0026
0027 zstd_error_code zstd_get_error_code(size_t code)
0028 {
0029 return ZSTD_getErrorCode(code);
0030 }
0031 EXPORT_SYMBOL(zstd_get_error_code);
0032
0033 const char *zstd_get_error_name(size_t code)
0034 {
0035 return ZSTD_getErrorName(code);
0036 }
0037 EXPORT_SYMBOL(zstd_get_error_name);
0038
0039
0040
0041 size_t zstd_dctx_workspace_bound(void)
0042 {
0043 return ZSTD_estimateDCtxSize();
0044 }
0045 EXPORT_SYMBOL(zstd_dctx_workspace_bound);
0046
0047 zstd_dctx *zstd_init_dctx(void *workspace, size_t workspace_size)
0048 {
0049 if (workspace == NULL)
0050 return NULL;
0051 return ZSTD_initStaticDCtx(workspace, workspace_size);
0052 }
0053 EXPORT_SYMBOL(zstd_init_dctx);
0054
0055 size_t zstd_decompress_dctx(zstd_dctx *dctx, void *dst, size_t dst_capacity,
0056 const void *src, size_t src_size)
0057 {
0058 return ZSTD_decompressDCtx(dctx, dst, dst_capacity, src, src_size);
0059 }
0060 EXPORT_SYMBOL(zstd_decompress_dctx);
0061
0062 size_t zstd_dstream_workspace_bound(size_t max_window_size)
0063 {
0064 return ZSTD_estimateDStreamSize(max_window_size);
0065 }
0066 EXPORT_SYMBOL(zstd_dstream_workspace_bound);
0067
0068 zstd_dstream *zstd_init_dstream(size_t max_window_size, void *workspace,
0069 size_t workspace_size)
0070 {
0071 if (workspace == NULL)
0072 return NULL;
0073 (void)max_window_size;
0074 return ZSTD_initStaticDStream(workspace, workspace_size);
0075 }
0076 EXPORT_SYMBOL(zstd_init_dstream);
0077
0078 size_t zstd_reset_dstream(zstd_dstream *dstream)
0079 {
0080 return ZSTD_resetDStream(dstream);
0081 }
0082 EXPORT_SYMBOL(zstd_reset_dstream);
0083
0084 size_t zstd_decompress_stream(zstd_dstream *dstream, zstd_out_buffer *output,
0085 zstd_in_buffer *input)
0086 {
0087 return ZSTD_decompressStream(dstream, output, input);
0088 }
0089 EXPORT_SYMBOL(zstd_decompress_stream);
0090
0091 size_t zstd_find_frame_compressed_size(const void *src, size_t src_size)
0092 {
0093 return ZSTD_findFrameCompressedSize(src, src_size);
0094 }
0095 EXPORT_SYMBOL(zstd_find_frame_compressed_size);
0096
0097 size_t zstd_get_frame_header(zstd_frame_header *header, const void *src,
0098 size_t src_size)
0099 {
0100 return ZSTD_getFrameHeader(header, src, src_size);
0101 }
0102 EXPORT_SYMBOL(zstd_get_frame_header);
0103
0104 MODULE_LICENSE("Dual BSD/GPL");
0105 MODULE_DESCRIPTION("Zstd Decompressor");