Lines Matching refs:state

75 static void	z_comp_free(void *state);
76 static void z_decomp_free(void *state);
77 static int z_comp_init(void *state, u_char *options, int opt_len,
79 static int z_decomp_init(void *state, u_char *options, int opt_len,
81 static int z_compress(void *state, struct mbuf **mret,
83 static void z_incomp(void *state, struct mbuf *dmsg);
84 static int z_decompress(void *state, struct mbuf *cmp,
86 static void z_comp_reset(void *state);
87 static void z_decomp_reset(void *state);
88 static void z_comp_stats(void *state, struct compstat *stats);
149 struct deflate_state *state;
162 state = malloc(sizeof(struct deflate_state), M_DEVBUF, M_NOWAIT);
163 if (state == NULL)
166 state->strm.next_in = NULL;
167 state->strm.zalloc = zalloc;
168 state->strm.zfree = zfree;
169 if (deflateInit2(&state->strm, Z_DEFAULT_COMPRESSION, DEFLATE_METHOD_VAL,
171 free(state, M_DEVBUF);
175 state->w_size = w_size;
176 memset(&state->stats, 0, sizeof(state->stats));
177 return (void *) state;
183 struct deflate_state *state = (struct deflate_state *) arg;
185 deflateEnd(&state->strm);
186 free(state, M_DEVBUF);
193 struct deflate_state *state = (struct deflate_state *) arg;
199 || DEFLATE_SIZE(options[2]) != state->w_size
203 state->seqno = 0;
204 state->unit = unit;
205 state->hdrlen = hdrlen;
206 state->debug = debug;
208 deflateReset(&state->strm);
216 struct deflate_state *state = (struct deflate_state *) arg;
218 state->seqno = 0;
219 deflateReset(&state->strm);
228 struct deflate_state *state = (struct deflate_state *) arg;
250 if (maxolen + state->hdrlen > MLEN)
253 if (state->hdrlen + PPP_HDRLEN + 2 < wspace) {
254 m->m_data += state->hdrlen;
255 wspace -= state->hdrlen;
267 wptr[0] = state->seqno >> 8;
268 wptr[1] = state->seqno;
270 state->strm.next_out = wptr;
271 state->strm.avail_out = wspace - (PPP_HDRLEN + 2);
273 state->strm.next_out = NULL;
274 state->strm.avail_out = 1000000;
278 ++state->seqno;
281 state->strm.next_in = rptr;
282 state->strm.avail_in = mtod(mp, u_char *) + mp->m_len - rptr;
287 r = deflate(&state->strm, flush);
290 r, (state->strm.msg? state->strm.msg: ""));
293 if (flush != Z_NO_FLUSH && state->strm.avail_out != 0)
295 if (state->strm.avail_in == 0 && mp != NULL) {
296 state->strm.next_in = mtod(mp, u_char *);
297 state->strm.avail_in = mp->m_len;
302 if (state->strm.avail_out == 0) {
312 state->strm.next_out = mtod(m, u_char *);
313 state->strm.avail_out = wspace = M_TRAILINGSPACE(m);
317 state->strm.next_out = NULL;
318 state->strm.avail_out = 1000000;
323 olen += (m->m_len = wspace - state->strm.avail_out);
329 state->stats.comp_bytes += olen;
330 state->stats.comp_packets++;
334 state->stats.inc_bytes += orig_len;
335 state->stats.inc_packets++;
338 state->stats.unc_bytes += orig_len;
339 state->stats.unc_packets++;
347 struct deflate_state *state = (struct deflate_state *) arg;
350 *stats = state->stats;
367 struct deflate_state *state;
380 state = malloc(sizeof(struct deflate_state), M_DEVBUF, M_NOWAIT);
381 if (state == NULL)
384 state->strm.next_out = NULL;
385 state->strm.zalloc = zalloc;
386 state->strm.zfree = zfree;
387 if (inflateInit2(&state->strm, -w_size) != Z_OK) {
388 free(state, M_DEVBUF);
392 state->w_size = w_size;
393 memset(&state->stats, 0, sizeof(state->stats));
394 return (void *) state;
400 struct deflate_state *state = (struct deflate_state *) arg;
402 inflateEnd(&state->strm);
403 free(state, M_DEVBUF);
410 struct deflate_state *state = (struct deflate_state *) arg;
416 || DEFLATE_SIZE(options[2]) != state->w_size
420 state->seqno = 0;
421 state->unit = unit;
422 state->hdrlen = hdrlen;
423 state->debug = debug;
424 state->mru = mru;
426 inflateReset(&state->strm);
434 struct deflate_state *state = (struct deflate_state *) arg;
436 state->seqno = 0;
437 inflateReset(&state->strm);
459 struct deflate_state *state = (struct deflate_state *) arg;
483 if (seq != state->seqno) {
484 if (state->debug)
486 state->unit, seq, state->seqno);
489 ++state->seqno;
500 if (state->hdrlen + PPP_HDRLEN < ospace) {
501 mo->m_data += state->hdrlen;
502 ospace -= state->hdrlen;
519 state->strm.next_in = rptr;
520 state->strm.avail_in = rlen;
524 state->strm.next_out = wptr + 3;
525 state->strm.avail_out = 1;
533 r = inflate(&state->strm, flush);
536 if (state->debug)
539 state->unit, r, (state->strm.msg? state->strm.msg: ""));
543 if (flush != Z_NO_FLUSH && state->strm.avail_out != 0)
545 if (state->strm.avail_in == 0 && mi != NULL) {
546 state->strm.next_in = mtod(mi, u_char *);
547 state->strm.avail_in = mi->m_len;
553 if (state->strm.avail_out == 0) {
555 state->strm.avail_out = ospace - PPP_HDRLEN;
559 --state->strm.next_out;
560 ++state->strm.avail_out;
574 state->strm.next_out = mtod(mo, u_char *);
575 state->strm.avail_out = ospace = M_TRAILINGSPACE(mo);
583 olen += (mo->m_len = ospace - state->strm.avail_out);
585 if (olen > state->mru + PPP_HDRLEN)
587 state->unit, olen, state->mru + PPP_HDRLEN);
590 state->stats.unc_bytes += olen;
591 state->stats.unc_packets++;
592 state->stats.comp_bytes += rlen;
593 state->stats.comp_packets++;
605 struct deflate_state *state = (struct deflate_state *) arg;
617 ++state->seqno;
626 state->strm.next_in = rptr + 3;
627 state->strm.avail_in = rlen - 3;
629 --state->strm.next_in;
630 ++state->strm.avail_in;
633 r = inflateIncomp(&state->strm);
637 if (state->debug)
640 state->unit, r, (state->strm.msg? state->strm.msg: ""));
646 state->strm.next_in = mtod(mi, u_char *);
647 state->strm.avail_in = mi->m_len;
654 state->stats.inc_bytes += rlen;
655 state->stats.inc_packets++;
656 state->stats.unc_bytes += rlen;
657 state->stats.unc_packets++;