#ifndef _BZLIB_H #define _BZLIB_H #include "libc/stdio/stdio.h" #define BZ_RUN 0 #define BZ_FLUSH 1 #define BZ_FINISH 2 #define BZ_OK 0 #define BZ_RUN_OK 1 #define BZ_FLUSH_OK 2 #define BZ_FINISH_OK 3 #define BZ_STREAM_END 4 #define BZ_SEQUENCE_ERROR (-1) #define BZ_PARAM_ERROR (-2) #define BZ_MEM_ERROR (-3) #define BZ_DATA_ERROR (-4) #define BZ_DATA_ERROR_MAGIC (-5) #define BZ_IO_ERROR (-6) #define BZ_UNEXPECTED_EOF (-7) #define BZ_OUTBUFF_FULL (-8) #define BZ_CONFIG_ERROR (-9) #define BZ_MAX_UNUSED 5000 #if !(__ASSEMBLER__ + __LINKER__ + 0) COSMOPOLITAN_C_START_ typedef struct { char *next_in; unsigned int avail_in; unsigned int total_in_lo32; unsigned int total_in_hi32; char *next_out; unsigned int avail_out; unsigned int total_out_lo32; unsigned int total_out_hi32; void *state; void *(*bzalloc)(void *, int, int); void (*bzfree)(void *, void *); void *opaque; } bz_stream; /*-- Core (low-level) library functions --*/ int BZ2_bzCompressInit(bz_stream *, int, int, int); int BZ2_bzCompress(bz_stream *, int); int BZ2_bzCompressEnd(bz_stream *); int BZ2_bzDecompressInit(bz_stream *, int, int); int BZ2_bzDecompress(bz_stream *); int BZ2_bzDecompressEnd(bz_stream *); /*-- High(er) level library functions --*/ typedef void BZFILE; BZFILE *BZ2_bzReadOpen(int *, FILE *, int, int, void *, int); void BZ2_bzReadClose(int *, BZFILE *); void BZ2_bzReadGetUnused(int *, BZFILE *, void **, int *); int BZ2_bzRead(int *, BZFILE *, void *, int); BZFILE *BZ2_bzWriteOpen(int *, FILE *, int, int, int); void BZ2_bzWrite(int *, BZFILE *, void *, int); void BZ2_bzWriteClose(int *, BZFILE *, int, unsigned int *, unsigned int *); void BZ2_bzWriteClose64(int *, BZFILE *, int, unsigned int *, unsigned int *, unsigned int *, unsigned int *); int BZ2_bzBuffToBuffCompress(char *, unsigned int *, char *, unsigned int, int, int, int); int BZ2_bzBuffToBuffDecompress(char *, unsigned int *, char *, unsigned int, int, int); /*-- Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp) to support better zlib compatibility. This code is not _officially_ part of libbzip2 (yet); I haven't tested it, documented it, or considered the threading-safeness of it. If this code breaks, please contact both Yoshioka and me. --*/ const char *BZ2_bzlibVersion(void); BZFILE *BZ2_bzopen(const char *, const char *); BZFILE *BZ2_bzdopen(int, const char *); int BZ2_bzread(BZFILE *, void *, int); int BZ2_bzwrite(BZFILE *, void *, int); int BZ2_bzflush(BZFILE *); void BZ2_bzclose(BZFILE *); const char *BZ2_bzerror(BZFILE *, int *); COSMOPOLITAN_C_END_ #endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ #endif /* _BZLIB_H */