Windows2000/private/inet/urlmon/compress/gzip/defdata.h

45 lines
1.7 KiB
C
Raw Normal View History

2001-01-01 00:00:00 +01:00
// defdata.h
// Data specific to deflate
// BUGBUG Some of these USHORTs could be made into ULONGs for speed-of-access. The disadvantage would
// be greater memory/cache usage. g_StaticDistanceTreeCode[] could be made into a BYTE array,
// since the codes are 5 bits. Changes of this nature will require various code changes elsewhere.
#ifdef DECLARE_DATA
// lookup tables for finding the slot number of a match length or distance
BYTE g_LengthLookup[256];
BYTE g_DistLookup[512];
// literal codes for static blocks
BYTE g_StaticLiteralTreeLength[MAX_LITERAL_TREE_ELEMENTS];
USHORT g_StaticLiteralTreeCode[MAX_LITERAL_TREE_ELEMENTS];
// distance codes for static blocks
// note: g_StaticDistanceTreeLength == 5 for all distances, which is why we don't have a table for that
USHORT g_StaticDistanceTreeCode[MAX_DIST_TREE_ELEMENTS];
// cached tree structure output for fast encoder
BYTE g_FastEncoderTreeStructureData[MAX_TREE_DATA_SIZE];
int g_FastEncoderTreeLength; // # bytes in g_FastEncoderTreeStructureData
ULONG g_FastEncoderPostTreeBitbuf; // final value of bitbuf
int g_FastEncoderPostTreeBitcount; // final value of bitcount
#else /* !DECLARE_DATA */
extern BYTE g_LengthLookup[256];
extern BYTE g_DistLookup[512];
extern BYTE g_StaticLiteralTreeLength[MAX_LITERAL_TREE_ELEMENTS];
extern USHORT g_StaticLiteralTreeCode[MAX_LITERAL_TREE_ELEMENTS];
extern USHORT g_StaticDistanceTreeCode[MAX_DIST_TREE_ELEMENTS];
extern BYTE g_FastEncoderTreeStructureData[MAX_TREE_DATA_SIZE];
extern int g_FastEncoderTreeLength;
extern ULONG g_FastEncoderPostTreeBitbuf;
extern int g_FastEncoderPostTreeBitcount;
#endif /* !DECLARE_DATA */