Cider Isn't Darwin Emulation, Really
Something went wrong. Try again.
2.7 kB · 102 lines
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103#ifndef __COMPRESSION_H__#define __COMPRESSION_H__
#include <stdint.h>#include <os/base.h>#include <sys/types.h>#include <Availability.h>
#ifdef __cplusplusextern "C" {#endif
#if __has_feature(assume_nonnull) _Pragma("clang assume_nonnull begin")#else# define __nullable#endif
typedef enum {
COMPRESSION_LZ4 = 0x100, COMPRESSION_ZLIB = 0x205, COMPRESSION_LZMA = 0x306, COMPRESSION_LZ4_RAW = 0x101, COMPRESSION_LZFSE = 0x801,
} compression_algorithm;
extern size_tcompression_encode_scratch_buffer_size(compression_algorithm algorithm)__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0);
extern size_tcompression_encode_buffer(uint8_t * __restrict dst_buffer, size_t dst_size, const uint8_t * __restrict src_buffer, size_t src_size, void * __restrict __nullable scratch_buffer, compression_algorithm algorithm)__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0);
extern size_tcompression_decode_scratch_buffer_size(compression_algorithm algorithm)__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0);
extern size_tcompression_decode_buffer(uint8_t * __restrict dst_buffer, size_t dst_size, const uint8_t * __restrict src_buffer, size_t src_size, void * __restrict __nullable scratch_buffer, compression_algorithm algorithm)__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0);
typedef struct { uint8_t * dst_ptr; size_t dst_size; const uint8_t * src_ptr; size_t src_size; void * __nullable state;
} compression_stream;
typedef enum { COMPRESSION_STREAM_ENCODE = 0, COMPRESSION_STREAM_DECODE = 1, } compression_stream_operation;
typedef enum { COMPRESSION_STREAM_FINALIZE = 0x0001,} compression_stream_flags;
typedef enum {
COMPRESSION_STATUS_OK = 0, COMPRESSION_STATUS_ERROR = -1, COMPRESSION_STATUS_END = 1, } compression_status;
extern compression_statuscompression_stream_init(compression_stream * stream, compression_stream_operation operation, compression_algorithm algorithm)__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0);
extern compression_statuscompression_stream_process(compression_stream * stream, int flags)__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0);
extern compression_statuscompression_stream_destroy(compression_stream * stream)__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0); #if __has_feature(assume_nonnull) _Pragma("clang assume_nonnull end")#endif#ifdef __cplusplus}#endif
#endif