iPXE
Data Fields
deflate Struct Reference

Decompressor. More...

#include <deflate.h>

Data Fields

void * resume
 Resume point.
enum deflate_format format
 Format.
uint32_t accumulator
 Accumulator.
uint32_t rotalumucca
 Bit-reversed 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.

Detailed Description

Decompressor.

Definition at line 156 of file deflate.h.


Field Documentation

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().

Bit-reversed 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

Current block header.

Definition at line 177 of file deflate.h.

Referenced by deflate_inflate().

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().

Literal/length Huffman alphabet.

Definition at line 194 of file deflate.h.

Referenced by deflate_alphabet_name(), and deflate_inflate().

Literal/length raw symbols.

Must immediately follow the literal/length Huffman alphabet.

Definition at line 199 of file deflate.h.

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().

Distance and code length raw symbols.

Must immediately follow the distance and code length Huffman alphabet.

Definition at line 218 of file deflate.h.

Number of symbols in the distance Huffman alphabet.

Definition at line 220 of file deflate.h.

Referenced by deflate_inflate().

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().


The documentation for this struct was generated from the following file: