iPXE
Data Fields
deflate Struct Reference

Decompressor. More...

#include <deflate.h>

Data Fields

void * resume
 Resume point. More...
 
enum deflate_format format
 Format. More...
 
uint32_t accumulator
 Accumulator. More...
 
uint32_t rotalumucca
 Bit-reversed accumulator. More...
 
unsigned int bits
 Number of bits within the accumulator. More...
 
unsigned int header
 Current block header. More...
 
size_t remaining
 Remaining length of data (e.g. More...
 
unsigned int length_index
 Current length index within a set of code lengths. More...
 
unsigned int length_target
 Target length index within a set of code lengths. More...
 
unsigned int length
 Current length within a set of code lengths. More...
 
unsigned int extra_bits
 Number of extra bits required. More...
 
size_t dup_len
 Length of a duplicated string. More...
 
size_t dup_distance
 Distance of a duplicated string. More...
 
struct deflate_alphabet litlen
 Literal/length Huffman alphabet. More...
 
uint16_t litlen_raw [DEFLATE_LITLEN_MAX_CODE+1]
 Literal/length raw symbols. More...
 
unsigned int litlen_count
 Number of symbols in the literal/length Huffman alphabet. More...
 
struct deflate_alphabet distance_codelen
 Distance and code length Huffman alphabet. More...
 
uint16_t distance_codelen_raw [DEFLATE_DISTANCE_MAX_CODE+1]
 Distance and code length raw symbols. More...
 
unsigned int distance_count
 Number of symbols in the distance Huffman alphabet. More...
 
uint8_t lengths [((DEFLATE_LITLEN_MAX_CODE+1)+(DEFLATE_DISTANCE_MAX_CODE+1)+1)/2]
 Huffman code lengths. More...
 

Detailed Description

Decompressor.

Definition at line 156 of file deflate.h.

Field Documentation

◆ resume

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_finished(), and deflate_inflate().

◆ format

enum deflate_format deflate::format

Format.

Definition at line 164 of file deflate.h.

Referenced by deflate_inflate(), and deflate_init().

◆ accumulator

uint32_t deflate::accumulator

Accumulator.

Definition at line 167 of file deflate.h.

Referenced by deflate_accumulate(), and deflate_consume().

◆ rotalumucca

uint32_t deflate::rotalumucca

Bit-reversed accumulator.

Don't ask.

Definition at line 172 of file deflate.h.

Referenced by deflate_accumulate(), deflate_consume(), and deflate_decode().

◆ bits

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

◆ header

unsigned int deflate::header

Current block header.

Definition at line 177 of file deflate.h.

Referenced by deflate_inflate().

◆ remaining

size_t deflate::remaining

Remaining length of data (e.g.

within a literal block)

Definition at line 179 of file deflate.h.

Referenced by deflate_inflate().

◆ length_index

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

◆ length_target

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

◆ length

unsigned int deflate::length

Current length within a set of code lengths.

Definition at line 185 of file deflate.h.

Referenced by deflate_inflate().

◆ extra_bits

unsigned int deflate::extra_bits

Number of extra bits required.

Definition at line 187 of file deflate.h.

Referenced by deflate_inflate().

◆ dup_len

size_t deflate::dup_len

Length of a duplicated string.

Definition at line 189 of file deflate.h.

Referenced by deflate_inflate().

◆ dup_distance

size_t deflate::dup_distance

Distance of a duplicated string.

Definition at line 191 of file deflate.h.

Referenced by deflate_inflate().

◆ litlen

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

◆ litlen_raw

uint16_t deflate::litlen_raw[DEFLATE_LITLEN_MAX_CODE+1]

Literal/length raw symbols.

Must immediately follow the literal/length Huffman alphabet.

Definition at line 199 of file deflate.h.

◆ litlen_count

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_codelen

struct deflate_alphabet deflate::distance_codelen

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_codelen_raw

uint16_t deflate::distance_codelen_raw[DEFLATE_DISTANCE_MAX_CODE+1]

Distance and code length raw symbols.

Must immediately follow the distance and code length Huffman alphabet.

Definition at line 218 of file deflate.h.

◆ distance_count

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

◆ lengths

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


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