• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/usr.bin/gzip/

Lines Matching defs:zs

45 #define	tab_prefixof(i)	(zs->zs_codetab[i])
46 #define tab_suffixof(i) ((char_type *)(zs->zs_htab))[i]
130 static code_int getcode(struct s_zstate *zs);
166 zclose(void *zs)
168 free(zs);
176 struct s_zstate *zs;
178 if ((zs = calloc(1, sizeof(struct s_zstate))) == NULL)
181 zs->zs_state = S_START;
184 zs->zs_hsize = HSIZE; /* For dynamic table sizing. */
185 zs->zs_free_ent = 0; /* First unused entry. */
186 zs->zs_block_compress = BLOCK_MASK;
187 zs->zs_clear_flg = 0; /* XXX we calloc()'d this structure why = 0? */
188 zs->zs_ratio = 0;
189 zs->zs_checkpoint = CHECK_GAP;
190 zs->zs_in_count = 1; /* Length of input. */
191 zs->zs_out_count = 0; /* # of codes output (for debugging). */
192 zs->u.r.zs_roffset = 0;
193 zs->u.r.zs_size = 0;
199 if ((zs->zs_fp = fdopen(fd, "r")) == NULL) {
200 free(zs);
204 return funopen(zs, zread, NULL, NULL, zclose);
217 struct s_zstate *zs;
223 zs = cookie;
226 switch (zs->zs_state) {
228 zs->zs_state = S_MIDDLE;
240 if (fread(header + i, 1, sizeof(header) - i, zs->zs_fp) !=
247 zs->zs_maxbits = header[2]; /* Set -b from file. */
248 zs->zs_block_compress = zs->zs_maxbits & BLOCK_MASK;
249 zs->zs_maxbits &= BIT_MASK;
250 zs->zs_maxmaxcode = 1L << zs->zs_maxbits;
251 if (zs->zs_maxbits > BITS || zs->zs_maxbits < 12) {
256 zs->zs_maxcode = MAXCODE(zs->zs_n_bits = INIT_BITS);
257 for (zs->u.r.zs_code = 255; zs->u.r.zs_code >= 0; zs->u.r.zs_code--) {
258 tab_prefixof(zs->u.r.zs_code) = 0;
259 tab_suffixof(zs->u.r.zs_code) = (char_type) zs->u.r.zs_code;
261 zs->zs_free_ent = zs->zs_block_compress ? FIRST : 256;
263 zs->u.r.zs_oldcode = -1;
264 zs->u.r.zs_stackp = de_stack;
266 while ((zs->u.r.zs_code = getcode(zs)) > -1) {
268 if ((zs->u.r.zs_code == CLEAR) && zs->zs_block_compress) {
269 for (zs->u.r.zs_code = 255; zs->u.r.zs_code >= 0;
270 zs->u.r.zs_code--)
271 tab_prefixof(zs->u.r.zs_code) = 0;
272 zs->zs_clear_flg = 1;
273 zs->zs_free_ent = FIRST;
274 zs->u.r.zs_oldcode = -1;
277 zs->u.r.zs_incode = zs->u.r.zs_code;
280 if (zs->u.r.zs_code >= zs->zs_free_ent) {
281 if (zs->u.r.zs_code > zs->zs_free_ent ||
282 zs->u.r.zs_oldcode == -1) {
287 *zs->u.r.zs_stackp++ = zs->u.r.zs_finchar;
288 zs->u.r.zs_code = zs->u.r.zs_oldcode;
298 while (zs->u.r.zs_code >= 256) {
299 *zs->u.r.zs_stackp++ = tab_suffixof(zs->u.r.zs_code);
300 zs->u.r.zs_code = tab_prefixof(zs->u.r.zs_code);
302 *zs->u.r.zs_stackp++ = zs->u.r.zs_finchar = tab_suffixof(zs->u.r.zs_code);
308 *bp++ = *--zs->u.r.zs_stackp;
309 } while (zs->u.r.zs_stackp > de_stack);
312 if ((zs->u.r.zs_code = zs->zs_free_ent) < zs->zs_maxmaxcode &&
313 zs->u.r.zs_oldcode != -1) {
314 tab_prefixof(zs->u.r.zs_code) = (u_short) zs->u.r.zs_oldcode;
315 tab_suffixof(zs->u.r.zs_code) = zs->u.r.zs_finchar;
316 zs->zs_free_ent = zs->u.r.zs_code + 1;
320 zs->u.r.zs_oldcode = zs->u.r.zs_incode;
322 zs->zs_state = S_EOF;
334 getcode(struct s_zstate *zs)
340 bp = zs->u.r.zs_gbuf;
341 if (zs->zs_clear_flg > 0 || zs->u.r.zs_roffset >= zs->u.r.zs_size ||
342 zs->zs_free_ent > zs->zs_maxcode) {
348 if (zs->zs_free_ent > zs->zs_maxcode) {
349 zs->zs_n_bits++;
350 if (zs->zs_n_bits == zs->zs_maxbits) /* Won't get any bigger now. */
351 zs->zs_maxcode = zs->zs_maxmaxcode;
353 zs->zs_maxcode = MAXCODE(zs->zs_n_bits);
355 if (zs->zs_clear_flg > 0) {
356 zs->zs_maxcode = MAXCODE(zs->zs_n_bits = INIT_BITS);
357 zs->zs_clear_flg = 0;
360 for (i = 0; i < zs->zs_n_bits && compressed_prelen; i++, compressed_prelen--)
361 zs->u.r.zs_gbuf[i] = *compressed_pre++;
362 zs->u.r.zs_size = fread(zs->u.r.zs_gbuf + i, 1, zs->zs_n_bits - i, zs->zs_fp);
363 zs->u.r.zs_size += i;
364 if (zs->u.r.zs_size <= 0) /* End of file. */
366 zs->u.r.zs_roffset = 0;
368 total_compressed_bytes += zs->u.r.zs_size;
371 zs->u.r.zs_size = (zs->u.r.zs_size << 3) - (zs->zs_n_bits - 1);
373 r_off = zs->u.r.zs_roffset;
374 bits = zs->zs_n_bits;
394 zs->u.r.zs_roffset += zs->zs_n_bits;