#pragma prototyped12/*3* zip huffman codeing interface4*/56#ifndef _HUFF_H7#define _HUFF_H 189#include "zip.h"1011#include <vmalloc.h>1213/* Huffman code lookup table entry--this entry is four bytes for machines14that have 16-bit pointers (e.g. PC's in the small or medium model).15Valid extra bits are 0..13. e == 15 is EOB (end of block), e == 1616means that v is a literal, 16 < e < 32 means that v is a pointer to17the next table, which codes e - 16 bits, and lastly e == 99 indicates18an unused code. If a code with e == 99 is looked up, this implies an19error in the data. */2021struct Huff_s; typedef struct Huff_s Huff_t;2223struct Huff_s24{25uch e; /* number of extra bits or operation */26uch b; /* number of bits in this code or subcode */27union28{29ush n; /* literal, length base, or distance base */30Huff_t* t; /* pointer to next level of table */31} v;32};3334extern int huff(ulg*, ulg, ulg, ush*, ush*, Huff_t**, int*, Vmalloc_t*);3536#endif373839