1 /* $Id: zlib.h,v 1.2 1997/12/23 10:47:44 paulus Exp $ */
3 #include <linux/kernel.h>
4 #include <linux/slab.h>
5 #include <linux/zlib.h>
8 #define STREAM_END_SPACE 12
10 int tux_gzip_compress (tux_req_t *req, unsigned char *data_in, unsigned char *data_out, __u32 *in_len, __u32 *out_len)
12 z_stream *s = &req->ti->gzip_state;
15 down(&req->ti->gzip_sem);
16 if (zlib_deflateReset(s) != Z_OK)
20 s->next_out = data_out;
21 s->avail_in = *in_len;
22 s->avail_out = *out_len;
24 Dprintk("calling zlib_deflate with avail_in %d, avail_out %d\n", s->avail_in, s->avail_out);
25 ret = zlib_deflate(s, Z_FINISH);
26 Dprintk("deflate returned with avail_in %d, avail_out %d, total_in %ld, total_out %ld\n", s->avail_in, s->avail_out, s->total_in, s->total_out);
28 if (ret != Z_STREAM_END) {
29 printk("bad: deflate returned with %d! avail_in %d, avail_out %d, total_in %ld, total_out %ld\n", ret, s->avail_in, s->avail_out, s->total_in, s->total_out);
32 *in_len = s->avail_in;
33 *out_len = s->avail_out;
36 up(&req->ti->gzip_sem);