1 #include <zlib.h>
2 #include <stdlib.h>
3 
create_z_stream(void)4 z_stream * create_z_stream(void)
5 {
6 	z_stream *ret = malloc(sizeof(z_stream));
7 	if (ret) {
8 		ret->zalloc = Z_NULL;
9 		ret->zfree = Z_NULL;
10 		ret->opaque = Z_NULL;
11 		ret->next_in = NULL;
12 		ret->avail_in = 0;
13 		ret->next_out = NULL;
14 		ret->avail_out = 0;
15 	}
16 	return ret;
17 }
18 
inflate_init2(z_stream * stream,int window_bits)19 int inflate_init2(z_stream *stream, int window_bits)
20 {
21 	return inflateInit2(stream, window_bits);
22 }
23 
deflate_init2(z_stream * stream,int level,int methodBits,int memlevel,int strategy)24 int deflate_init2(z_stream *stream, int level, int methodBits,
25                   int memlevel, int strategy)
26 {
27 	return deflateInit2(stream, level, Z_DEFLATED, methodBits, memlevel, strategy);
28 }
29 
inflate_set_dictionary(z_stream * stream,const char * dictionary,unsigned int dictLength)30 int inflate_set_dictionary(z_stream *stream, const char* dictionary,
31                             unsigned int dictLength) {
32         return inflateSetDictionary(stream, dictionary, dictLength);
33 }
34 
deflate_set_dictionary(z_stream * stream,const char * dictionary,unsigned int dictLength)35 int deflate_set_dictionary(z_stream *stream, const char* dictionary,
36                             unsigned int dictLength) {
37         return deflateSetDictionary(stream, dictionary, dictLength);
38 }
39 
free_z_stream_inflate(z_stream * stream)40 void free_z_stream_inflate (z_stream *stream)
41 {
42 	inflateEnd(stream);
43 	free(stream);
44 }
45 
set_avail_in(z_stream * stream,char * buff,unsigned int avail)46 void set_avail_in (z_stream *stream, char *buff, unsigned int avail)
47 {
48 	stream->next_in = buff;
49 	stream->avail_in = avail;
50 }
51 
set_avail_out(z_stream * stream,char * buff,unsigned int avail)52 void set_avail_out (z_stream *stream, char *buff, unsigned int avail)
53 {
54 	stream->next_out = buff;
55 	stream->avail_out = avail;
56 }
57 
call_inflate_noflush(z_stream * stream)58 int call_inflate_noflush (z_stream *stream)
59 {
60 	return inflate(stream, Z_NO_FLUSH);
61 }
62 
get_avail_in(z_stream * stream)63 unsigned int get_avail_in (z_stream *stream)
64 {
65 	return stream->avail_in;
66 }
67 
get_avail_out(z_stream * stream)68 unsigned int get_avail_out (z_stream *stream)
69 {
70 	return stream->avail_out;
71 }
72 
get_next_in(z_stream * stream)73 char* get_next_in (z_stream *stream)
74 {
75 	return stream->next_in;
76 }
77 
free_z_stream_deflate(z_stream * stream)78 void free_z_stream_deflate (z_stream *stream)
79 {
80 	deflateEnd(stream);
81 	free(stream);
82 }
83 
call_deflate_noflush(z_stream * stream)84 int call_deflate_noflush (z_stream *stream)
85 {
86 	return deflate(stream, Z_NO_FLUSH);
87 }
88 
call_deflate_flush(z_stream * stream)89 int call_deflate_flush (z_stream *stream)
90 {
91 	return deflate(stream, Z_SYNC_FLUSH);
92 }
93 
call_deflate_finish(z_stream * stream)94 int call_deflate_finish (z_stream *stream)
95 {
96 	return deflate(stream, Z_FINISH);
97 }
98