iPXE

Decompressor. More...
#include <deflate.h>
Data Fields  
void *  resume 
Resume point.  
enum deflate_format  format 
Format.  
uint32_t  accumulator 
Accumulator.  
uint32_t  rotalumucca 
Bitreversed accumulator.  
unsigned int  bits 
Number of bits within the accumulator.  
unsigned int  header 
Current block header.  
size_t  remaining 
Remaining length of data (e.g.  
unsigned int  length_index 
Current length index within a set of code lengths.  
unsigned int  length_target 
Target length index within a set of code lengths.  
unsigned int  length 
Current length within a set of code lengths.  
unsigned int  extra_bits 
Number of extra bits required.  
size_t  dup_len 
Length of a duplicated string.  
size_t  dup_distance 
Distance of a duplicated string.  
struct deflate_alphabet  litlen 
Literal/length Huffman alphabet.  
uint16_t  litlen_raw [DEFLATE_LITLEN_MAX_CODE+1] 
Literal/length raw symbols.  
unsigned int  litlen_count 
Number of symbols in the literal/length Huffman alphabet.  
struct deflate_alphabet  distance_codelen 
Distance and code length Huffman alphabet.  
uint16_t  distance_codelen_raw [DEFLATE_DISTANCE_MAX_CODE+1] 
Distance and code length raw symbols.  
unsigned int  distance_count 
Number of symbols in the distance Huffman alphabet.  
uint8_t  lengths [((DEFLATE_LITLEN_MAX_CODE+1)+(DEFLATE_DISTANCE_MAX_CODE+1)+1)/2] 
Huffman code lengths. 
void* deflate::resume 
Resume point.
Used as the target of a computed goto to jump to the appropriate point within the state machine.
Definition at line 162 of file deflate.h.
Referenced by deflate_inflate().
Format.
Definition at line 164 of file deflate.h.
Referenced by deflate_inflate(), and deflate_init().
Accumulator.
Definition at line 167 of file deflate.h.
Referenced by deflate_accumulate(), and deflate_consume().
Bitreversed accumulator.
Don't ask.
Definition at line 172 of file deflate.h.
Referenced by deflate_accumulate(), deflate_consume(), and deflate_decode().
unsigned int deflate::bits 
Number of bits within the accumulator.
Definition at line 174 of file deflate.h.
Referenced by deflate_accumulate(), deflate_consume(), deflate_decode(), and deflate_discard_to_byte().
unsigned int deflate::header 
Remaining length of data (e.g.
within a literal block)
Definition at line 179 of file deflate.h.
Referenced by deflate_inflate().
unsigned int deflate::length_index 
Current length index within a set of code lengths.
Definition at line 181 of file deflate.h.
Referenced by deflate_inflate().
unsigned int deflate::length_target 
Target length index within a set of code lengths.
Definition at line 183 of file deflate.h.
Referenced by deflate_inflate().
unsigned int deflate::length 
Current length within a set of code lengths.
Definition at line 185 of file deflate.h.
Referenced by deflate_inflate().
unsigned int deflate::extra_bits 
Number of extra bits required.
Definition at line 187 of file deflate.h.
Referenced by deflate_inflate().
Length of a duplicated string.
Definition at line 189 of file deflate.h.
Referenced by deflate_inflate().
Distance of a duplicated string.
Definition at line 191 of file deflate.h.
Referenced by deflate_inflate().
struct deflate_alphabet deflate::litlen 
Literal/length Huffman alphabet.
Definition at line 194 of file deflate.h.
Referenced by deflate_alphabet_name(), and deflate_inflate().
unsigned int deflate::litlen_count 
Number of symbols in the literal/length Huffman alphabet.
Definition at line 201 of file deflate.h.
Referenced by deflate_inflate().
Distance and code length Huffman alphabet.
The code length Huffman alphabet has a maximum Huffman symbol length of 7 and a maximum code value of 18, and is thus strictly smaller than the distance Huffman alphabet. Since we never need both alphabets simultaneously, we can reuse the storage space for the distance alphabet to temporarily hold the code length alphabet.
Definition at line 212 of file deflate.h.
Referenced by deflate_alphabet_name(), and deflate_inflate().
unsigned int deflate::distance_count 
Number of symbols in the distance Huffman alphabet.
Definition at line 220 of file deflate.h.
Referenced by deflate_inflate().
uint8_t deflate::lengths[((DEFLATE_LITLEN_MAX_CODE+1)+(DEFLATE_DISTANCE_MAX_CODE+1)+1)/2] 
Huffman code lengths.
The literal/length and distance code lengths are constructed as a single set of lengths.
The code length Huffman alphabet has a maximum code value of 18 and the set of lengths is thus strictly smaller than the combined literal/length and distance set of lengths. Since we never need both alphabets simultaneously, we can reuse the storage space for the literal/length and distance code lengths to temporarily hold the code length code lengths.
Definition at line 237 of file deflate.h.
Referenced by deflate_inflate(), deflate_length(), and deflate_set_length().