Geant4 Cross Reference |
1 /* inftrees.h -- header to use inftrees.c 1 2 * Copyright (C) 1995-2005, 2010 Mark Adler 3 * For conditions of distribution and use, see 4 */ 5 6 /* WARNING: this file should *not* be used by 7 part of the implementation of the compressi 8 subject to change. Applications should only 9 */ 10 11 /* Structure for decoding tables. Each entry 12 information needed to do the operation requ 13 indexed that table entry, or it provides a 14 table that indexes more bits of the code. 15 the entry is a pointer to another table, a 16 distance, an end-of-block, or an invalid co 17 pointer, the low four bits of op is the num 18 that table. For a length or distance, the 19 is the number of extra bits to get after th 20 the number of bits in this code or part of 21 of the bit buffer. val is the actual byte 22 of a literal, the base length or distance, 23 the current table to the next table. Each 24 typedef struct { 25 unsigned char op; /* operation, 26 unsigned char bits; /* bits in thi 27 unsigned short val; /* offset in t 28 } code; 29 30 /* op values as set by inflate_table(): 31 00000000 - literal 32 0000tttt - table link, tttt != 0 is the nu 33 0001eeee - length or distance, eeee is the 34 01100000 - end of block 35 01000000 - invalid code 36 */ 37 38 /* Maximum size of the dynamic table. The max 39 1444, which is the sum of 852 for literal/l 40 codes. These values were found by exhausti 41 examples/enough.c found in the zlib distrib 42 program are the number of symbols, the init 43 maximum bit length of a code. "enough 286 44 returns returns 852, and "enough 30 6 15" f 45 The initial root table size (9 or 6) is fou 46 inflate_table() calls in inflate.c and infb 47 changed, then these maximum sizes would be 48 updated. */ 49 #define ENOUGH_LENS 852 50 #define ENOUGH_DISTS 592 51 #define ENOUGH (ENOUGH_LENS+ENOUGH_DISTS) 52 53 /* Type of code to build for inflate_table() * 54 typedef enum { 55 CODES, 56 LENS, 57 DISTS 58 } codetype; 59 60 int ZLIB_INTERNAL inflate_table OF((codetype t 61 unsigned codes, c 62 unsigned FAR *bit 63