~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/lib/zlib_inflate/inflate.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /lib/zlib_inflate/inflate.h (Version linux-6.11.5) and /lib/zlib_inflate/inflate.h (Version linux-2.6.0)


  1 #ifndef INFLATE_H                                   1 
  2 #define INFLATE_H                                 
  3                                                   
  4 /* inflate.h -- internal inflate state definit    
  5  * Copyright (C) 1995-2004 Mark Adler             
  6  * For conditions of distribution and use, see    
  7  */                                               
  8                                                   
  9 /* WARNING: this file should *not* be used by     
 10    part of the implementation of the compressi    
 11    subject to change. Applications should only    
 12  */                                               
 13                                                   
 14 #include "inftrees.h"                             
 15                                                   
 16 /* Possible inflate modes between inflate() ca    
 17 typedef enum {                                    
 18     HEAD,       /* i: waiting for magic header    
 19     FLAGS,      /* i: waiting for method and f    
 20     TIME,       /* i: waiting for modification    
 21     OS,         /* i: waiting for extra flags     
 22     EXLEN,      /* i: waiting for extra length    
 23     EXTRA,      /* i: waiting for extra bytes     
 24     NAME,       /* i: waiting for end of file     
 25     COMMENT,    /* i: waiting for end of comme    
 26     HCRC,       /* i: waiting for header crc (    
 27     DICTID,     /* i: waiting for dictionary c    
 28     DICT,       /* waiting for inflateSetDicti    
 29         TYPE,       /* i: waiting for type bit    
 30         TYPEDO,     /* i: same, but skip check    
 31         STORED,     /* i: waiting for stored s    
 32         COPY,       /* i/o: waiting for input     
 33         TABLE,      /* i: waiting for dynamic     
 34         LENLENS,    /* i: waiting for code len    
 35         CODELENS,   /* i: waiting for length/l    
 36             LEN,        /* i: waiting for leng    
 37             LENEXT,     /* i: waiting for leng    
 38             DIST,       /* i: waiting for dist    
 39             DISTEXT,    /* i: waiting for dist    
 40             MATCH,      /* o: waiting for outp    
 41             LIT,        /* o: waiting for outp    
 42     CHECK,      /* i: waiting for 32-bit check    
 43     LENGTH,     /* i: waiting for 32-bit lengt    
 44     DONE,       /* finished check, done -- rem    
 45     BAD,        /* got a data error -- remain     
 46     MEM,        /* got an inflate() memory err    
 47     SYNC        /* looking for synchronization    
 48 } inflate_mode;                                   
 49                                                   
 50 /*                                                
 51     State transitions between above modes -       
 52                                                   
 53     (most modes can go to the BAD or MEM mode     
 54                                                   
 55     Process header:                               
 56         HEAD -> (gzip) or (zlib)                  
 57         (gzip) -> FLAGS -> TIME -> OS -> EXLEN    
 58         NAME -> COMMENT -> HCRC -> TYPE           
 59         (zlib) -> DICTID or TYPE                  
 60         DICTID -> DICT -> TYPE                    
 61     Read deflate blocks:                          
 62             TYPE -> STORED or TABLE or LEN or     
 63             STORED -> COPY -> TYPE                
 64             TABLE -> LENLENS -> CODELENS -> LE    
 65     Read deflate codes:                           
 66                 LEN -> LENEXT or LIT or TYPE      
 67                 LENEXT -> DIST -> DISTEXT -> M    
 68                 LIT -> LEN                        
 69     Process trailer:                              
 70         CHECK -> LENGTH -> DONE                   
 71  */                                               
 72                                                   
 73 /* state maintained between inflate() calls.      
 74 struct inflate_state {                            
 75     inflate_mode mode;          /* current inf    
 76     int last;                   /* true if pro    
 77     int wrap;                   /* bit 0 true     
 78     int havedict;               /* true if dic    
 79     int flags;                  /* gzip header    
 80     unsigned dmax;              /* zlib header    
 81     unsigned long check;        /* protected c    
 82     unsigned long total;        /* protected c    
 83  /*   gz_headerp head; */           /* where t    
 84         /* sliding window */                      
 85     unsigned wbits;             /* log base 2     
 86     unsigned wsize;             /* window size    
 87     unsigned whave;             /* valid bytes    
 88     unsigned write;             /* window writ    
 89     unsigned char *window;  /* allocated slidi    
 90         /* bit accumulator */                     
 91     unsigned long hold;         /* input bit a    
 92     unsigned bits;              /* number of b    
 93         /* for string and stored block copying    
 94     unsigned length;            /* literal or     
 95     unsigned offset;            /* distance ba    
 96         /* for table and code decoding */         
 97     unsigned extra;             /* extra bits     
 98         /* fixed and dynamic code tables */       
 99     code const *lencode;    /* starting table     
100     code const *distcode;   /* starting table     
101     unsigned lenbits;           /* index bits     
102     unsigned distbits;          /* index bits     
103         /* dynamic table building */              
104     unsigned ncode;             /* number of c    
105     unsigned nlen;              /* number of l    
106     unsigned ndist;             /* number of d    
107     unsigned have;              /* number of c    
108     code *next;             /* next available     
109     unsigned short lens[320];   /* temporary s    
110     unsigned short work[288];   /* work area f    
111     code codes[ENOUGH];         /* space for c    
112 };                                                
113                                                   
114 /* Reverse the bytes in a 32-bit value */         
115 #define REVERSE(q) \                              
116     ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff    
117      (((q) & 0xff00) << 8) + (((q) & 0xff) <<     
118                                                   
119 #endif                                            
120                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php