#ifndef ZLIBIOAPI64_H #define ZLIBIOAPI64_H #include #ifndef _ZLIB_H //#include "zlib.h" #endif typedef uint64_t ZPOS64_T; #ifndef ZEXPORT # define ZEXPORT extern #endif #ifdef __cplusplus extern "C" { #endif /***************************************************************************/ #define ZLIB_FILEFUNC_SEEK_SET (0) #define ZLIB_FILEFUNC_SEEK_CUR (1) #define ZLIB_FILEFUNC_SEEK_END (2) #define ZLIB_FILEFUNC_MODE_READ (1) #define ZLIB_FILEFUNC_MODE_WRITE (2) #define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3) #define ZLIB_FILEFUNC_MODE_EXISTING (4) #define ZLIB_FILEFUNC_MODE_CREATE (8) #ifndef ZCALLBACK # define ZCALLBACK #endif /***************************************************************************/ typedef void *(ZCALLBACK *open_file_func)(void *opaque, const char *filename, int mode); typedef void *(ZCALLBACK *open64_file_func)(void *opaque, const void *filename, int mode); typedef unsigned long(ZCALLBACK *read_file_func)(void *opaque, void *stream, void *buf, unsigned long size); typedef unsigned long(ZCALLBACK *write_file_func)(void *opaque, void *stream, const void *buf, unsigned long size); typedef int(ZCALLBACK *close_file_func)(void *opaque, void *stream); typedef int(ZCALLBACK *testerror_file_func)(void *opaque, void *stream); typedef long(ZCALLBACK *tell_file_func)(void *opaque, void *stream); typedef ZPOS64_T(ZCALLBACK *tell64_file_func)(void *opaque, void *stream); typedef long(ZCALLBACK *seek_file_func)(void *opaque, void *stream, unsigned long offset, int origin); typedef long(ZCALLBACK *seek64_file_func)(void *opaque, void *stream, ZPOS64_T offset, int origin); /***************************************************************************/ typedef struct zlib_filefunc_def_s { open_file_func zopen_file; read_file_func zread_file; write_file_func zwrite_file; tell_file_func ztell_file; seek_file_func zseek_file; close_file_func zclose_file; testerror_file_func zerror_file; void *opaque; } zlib_filefunc_def; typedef struct zlib_filefunc64_def_s { open64_file_func zopen64_file; read_file_func zread_file; write_file_func zwrite_file; tell64_file_func ztell64_file; seek64_file_func zseek64_file; close_file_func zclose_file; testerror_file_func zerror_file; void *opaque; } zlib_filefunc64_def; /***************************************************************************/ /* Compatibility layer with the original minizip library (ioapi.h and iowin32.h). */ ZEXPORT void fill_fopen_filefunc(zlib_filefunc_def *pzlib_filefunc_def); ZEXPORT void fill_fopen64_filefunc(zlib_filefunc64_def *pzlib_filefunc_def); ZEXPORT void fill_win32_filefunc(zlib_filefunc_def *pzlib_filefunc_def); ZEXPORT void fill_win32_filefunc64(zlib_filefunc64_def *pzlib_filefunc_def); ZEXPORT void fill_win32_filefunc64A(zlib_filefunc64_def *pzlib_filefunc_def); /* Compatibility layer with older minizip-ng (ioapi_mem.h). */ ZEXPORT void fill_memory_filefunc(zlib_filefunc_def *pzlib_filefunc_def); /***************************************************************************/ int32_t mz_stream_ioapi_set_filefunc(void *stream, zlib_filefunc_def *filefunc); int32_t mz_stream_ioapi_set_filefunc64(void *stream, zlib_filefunc64_def *filefunc); void *mz_stream_ioapi_create(void); void mz_stream_ioapi_delete(void **stream); /***************************************************************************/ #ifdef __cplusplus } #endif #endif