162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Adapted for linux kernel by Alexander Mamaev:
462306a36Sopenharmony_ci * - remove implementations of get_unaligned_
562306a36Sopenharmony_ci * - assume GCC is always defined
662306a36Sopenharmony_ci * - ISO C90
762306a36Sopenharmony_ci * - linux kernel code style
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#ifndef _LINUX_NTFS3_LIB_LIB_H
1162306a36Sopenharmony_ci#define _LINUX_NTFS3_LIB_LIB_H
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#include <linux/types.h>
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci/* globals from xpress_decompress.c */
1662306a36Sopenharmony_cistruct xpress_decompressor *xpress_allocate_decompressor(void);
1762306a36Sopenharmony_civoid xpress_free_decompressor(struct xpress_decompressor *d);
1862306a36Sopenharmony_ciint xpress_decompress(struct xpress_decompressor *__restrict d,
1962306a36Sopenharmony_ci		      const void *__restrict compressed_data,
2062306a36Sopenharmony_ci		      size_t compressed_size,
2162306a36Sopenharmony_ci		      void *__restrict uncompressed_data,
2262306a36Sopenharmony_ci		      size_t uncompressed_size);
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci/* globals from lzx_decompress.c */
2562306a36Sopenharmony_cistruct lzx_decompressor *lzx_allocate_decompressor(void);
2662306a36Sopenharmony_civoid lzx_free_decompressor(struct lzx_decompressor *d);
2762306a36Sopenharmony_ciint lzx_decompress(struct lzx_decompressor *__restrict d,
2862306a36Sopenharmony_ci		   const void *__restrict compressed_data,
2962306a36Sopenharmony_ci		   size_t compressed_size, void *__restrict uncompressed_data,
3062306a36Sopenharmony_ci		   size_t uncompressed_size);
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci#endif /* _LINUX_NTFS3_LIB_LIB_H */
33