You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
60 lines
1.3 KiB
C
60 lines
1.3 KiB
C
#ifndef __GZIP_H__
|
|
#define __GZIP_H__
|
|
|
|
|
|
#ifndef NULL
|
|
#ifdef __cplusplus
|
|
#define NULL 0
|
|
#else
|
|
#define NULL ((void *)0)
|
|
#endif
|
|
#endif
|
|
|
|
/*
|
|
#ifndef u8
|
|
#define u8 unsigned char;
|
|
#endif
|
|
#ifndef u16
|
|
#define u16 unsigned short;
|
|
#endif
|
|
#ifndef u32
|
|
#define u32 unsigned long;
|
|
#endif
|
|
*/
|
|
|
|
#define INBUFSIZ 8192 // input buffer size
|
|
#define OUTBUFSIZ 8192 // output buffer size
|
|
#define WSIZE 0x8000
|
|
|
|
typedef struct {
|
|
u8 * next_addr;
|
|
u32 rest_size;
|
|
} FILE_HND;
|
|
|
|
#define get_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf(0))
|
|
#define try_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf(1))
|
|
|
|
/* Macros for getting two-byte and four-byte header values */
|
|
#define SH(p) ((u16)(u8)((p)[0]) | ((u16)(u8)((p)[1]) << 8))
|
|
#define LG(p) ((u32)(SH(p)) | ((u32)(SH((p)+2)) << 16))
|
|
|
|
extern unsigned int insize; // valid bytes in inbuf
|
|
extern unsigned int inptr; // index of next byte to be processed in inbuf
|
|
extern unsigned int outcnt; // bytes in output buffer
|
|
extern u8 inbuf[]; // input buffer
|
|
extern u8 outbuf[]; // output buffer
|
|
extern u8 window[]; // Sliding window and suffix table
|
|
|
|
extern int inflate(void);
|
|
extern int fill_inbuf(int eof_ok);
|
|
extern int flush_window(void);
|
|
|
|
|
|
//===========================================================================
|
|
//
|
|
//
|
|
u32 expand_gzip(u8 *src_addr, u8 *dst_addr, u32 size, u32 outbytes_limit);
|
|
|
|
|
|
#endif
|