windows-nt/Source/XPSP1/NT/enduser/stuff/itss/lzx/decoder/ring16.h

40 lines
1 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*
* ring16.h
*/
/* ring buffer configuration */
#define BUFFER_SIZE (512) /* must be 2^Nth */
#define MIN_BUFFERS 3 /* minimum number we want */
#define NUM_OUTPUT_BUFFER_PAGES (CHUNK_SIZE/BUFFER_SIZE)
typedef struct aBuffer
{
struct aBuffer FAR *pLinkNewer; /* link to more recently used */
struct aBuffer FAR *pLinkOlder; /* link to less recently used */
int BufferPage; /* what page this is, -1 -> invalid */
int BufferDirty; /* NZ -> needs to be written */
BYTE Buffer[BUFFER_SIZE]; /* content */
} BUFFER, FAR *PBUFFER;
typedef struct
{
PBUFFER pBuffer; /* pointer to buffer, NULL if not present */
int last_chance_ptr; /* index to last chance buffer table, or -1 */
int fDiskValid; /* NZ -> this page has been written to disk */
} PAGETABLEENTRY;
typedef struct
{
short Len;
long Dist;
} MATCH;
typedef struct
{
char wildName[2];
unsigned long fileSize;
} RINGNAME, FAR *PRINGNAME;