ioapi.h revision 9e38dfa2f95fce609707a0941f10af9a785288de
19e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* ioapi.h -- IO base function header for compress/uncompress .zip
29e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project   files using zlib + zip or unzip API
39e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
49e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project   Version 1.01e, February 12th, 2005
59e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
69e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project   Copyright (C) 1998-2005 Gilles Vollant
79e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project*/
89e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
99e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#ifndef _ZLIBIOAPI_H
109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define _ZLIBIOAPI_H
119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZLIB_FILEFUNC_SEEK_CUR (1)
149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZLIB_FILEFUNC_SEEK_END (2)
159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZLIB_FILEFUNC_SEEK_SET (0)
169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZLIB_FILEFUNC_MODE_READ      (1)
189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZLIB_FILEFUNC_MODE_WRITE     (2)
199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3)
209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZLIB_FILEFUNC_MODE_EXISTING (4)
229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZLIB_FILEFUNC_MODE_CREATE   (8)
239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#ifndef ZCALLBACK
269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#if (defined(WIN32) || defined (WINDOWS) || defined (_WINDOWS)) && defined(CALLBACK) && defined (USEWINDOWS_CALLBACK)
289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZCALLBACK CALLBACK
299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#else
309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZCALLBACK
319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#endif
329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#endif
339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#ifdef __cplusplus
359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectextern "C" {
369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#endif
379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttypedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode));
399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttypedef uLong  (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size));
409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttypedef uLong  (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size));
419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttypedef long   (ZCALLBACK *tell_file_func) OF((voidpf opaque, voidpf stream));
429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttypedef long   (ZCALLBACK *seek_file_func) OF((voidpf opaque, voidpf stream, uLong offset, int origin));
439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttypedef int    (ZCALLBACK *close_file_func) OF((voidpf opaque, voidpf stream));
449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttypedef int    (ZCALLBACK *testerror_file_func) OF((voidpf opaque, voidpf stream));
459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttypedef struct zlib_filefunc_def_s
479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    open_file_func      zopen_file;
499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    read_file_func      zread_file;
509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    write_file_func     zwrite_file;
519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    tell_file_func      ztell_file;
529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    seek_file_func      zseek_file;
539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    close_file_func     zclose_file;
549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    testerror_file_func zerror_file;
559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    voidpf              opaque;
569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project} zlib_filefunc_def;
579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectvoid fill_fopen_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def));
619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZREAD(filefunc,filestream,buf,size) ((*((filefunc).zread_file))((filefunc).opaque,filestream,buf,size))
639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZWRITE(filefunc,filestream,buf,size) ((*((filefunc).zwrite_file))((filefunc).opaque,filestream,buf,size))
649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZTELL(filefunc,filestream) ((*((filefunc).ztell_file))((filefunc).opaque,filestream))
659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZSEEK(filefunc,filestream,pos,mode) ((*((filefunc).zseek_file))((filefunc).opaque,filestream,pos,mode))
669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZCLOSE(filefunc,filestream) ((*((filefunc).zclose_file))((filefunc).opaque,filestream))
679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZERROR(filefunc,filestream) ((*((filefunc).zerror_file))((filefunc).opaque,filestream))
689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#ifdef __cplusplus
719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#endif
739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#endif
759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
76