Home | History | Annotate | Line # | Download | only in minizip
ioapi.h revision 1.1
      1  1.1  christos /*	$NetBSD: ioapi.h,v 1.1 2006/01/14 20:10:57 christos Exp $	*/
      2  1.1  christos 
      3  1.1  christos /* ioapi.h -- IO base function header for compress/uncompress .zip
      4  1.1  christos    files using zlib + zip or unzip API
      5  1.1  christos 
      6  1.1  christos    Version 1.01e, February 12th, 2005
      7  1.1  christos 
      8  1.1  christos    Copyright (C) 1998-2005 Gilles Vollant
      9  1.1  christos */
     10  1.1  christos 
     11  1.1  christos #ifndef _ZLIBIOAPI_H
     12  1.1  christos #define _ZLIBIOAPI_H
     13  1.1  christos 
     14  1.1  christos 
     15  1.1  christos #define ZLIB_FILEFUNC_SEEK_CUR (1)
     16  1.1  christos #define ZLIB_FILEFUNC_SEEK_END (2)
     17  1.1  christos #define ZLIB_FILEFUNC_SEEK_SET (0)
     18  1.1  christos 
     19  1.1  christos #define ZLIB_FILEFUNC_MODE_READ      (1)
     20  1.1  christos #define ZLIB_FILEFUNC_MODE_WRITE     (2)
     21  1.1  christos #define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3)
     22  1.1  christos 
     23  1.1  christos #define ZLIB_FILEFUNC_MODE_EXISTING (4)
     24  1.1  christos #define ZLIB_FILEFUNC_MODE_CREATE   (8)
     25  1.1  christos 
     26  1.1  christos 
     27  1.1  christos #ifndef ZCALLBACK
     28  1.1  christos 
     29  1.1  christos #if (defined(WIN32) || defined (WINDOWS) || defined (_WINDOWS)) && defined(CALLBACK) && defined (USEWINDOWS_CALLBACK)
     30  1.1  christos #define ZCALLBACK CALLBACK
     31  1.1  christos #else
     32  1.1  christos #define ZCALLBACK
     33  1.1  christos #endif
     34  1.1  christos #endif
     35  1.1  christos 
     36  1.1  christos #ifdef __cplusplus
     37  1.1  christos extern "C" {
     38  1.1  christos #endif
     39  1.1  christos 
     40  1.1  christos typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode));
     41  1.1  christos typedef uLong  (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size));
     42  1.1  christos typedef uLong  (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size));
     43  1.1  christos typedef long   (ZCALLBACK *tell_file_func) OF((voidpf opaque, voidpf stream));
     44  1.1  christos typedef long   (ZCALLBACK *seek_file_func) OF((voidpf opaque, voidpf stream, uLong offset, int origin));
     45  1.1  christos typedef int    (ZCALLBACK *close_file_func) OF((voidpf opaque, voidpf stream));
     46  1.1  christos typedef int    (ZCALLBACK *testerror_file_func) OF((voidpf opaque, voidpf stream));
     47  1.1  christos 
     48  1.1  christos typedef struct zlib_filefunc_def_s
     49  1.1  christos {
     50  1.1  christos     open_file_func      zopen_file;
     51  1.1  christos     read_file_func      zread_file;
     52  1.1  christos     write_file_func     zwrite_file;
     53  1.1  christos     tell_file_func      ztell_file;
     54  1.1  christos     seek_file_func      zseek_file;
     55  1.1  christos     close_file_func     zclose_file;
     56  1.1  christos     testerror_file_func zerror_file;
     57  1.1  christos     voidpf              opaque;
     58  1.1  christos } zlib_filefunc_def;
     59  1.1  christos 
     60  1.1  christos 
     61  1.1  christos 
     62  1.1  christos void fill_fopen_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def));
     63  1.1  christos 
     64  1.1  christos #define ZREAD(filefunc,filestream,buf,size) ((*((filefunc).zread_file))((filefunc).opaque,filestream,buf,size))
     65  1.1  christos #define ZWRITE(filefunc,filestream,buf,size) ((*((filefunc).zwrite_file))((filefunc).opaque,filestream,buf,size))
     66  1.1  christos #define ZTELL(filefunc,filestream) ((*((filefunc).ztell_file))((filefunc).opaque,filestream))
     67  1.1  christos #define ZSEEK(filefunc,filestream,pos,mode) ((*((filefunc).zseek_file))((filefunc).opaque,filestream,pos,mode))
     68  1.1  christos #define ZCLOSE(filefunc,filestream) ((*((filefunc).zclose_file))((filefunc).opaque,filestream))
     69  1.1  christos #define ZERROR(filefunc,filestream) ((*((filefunc).zerror_file))((filefunc).opaque,filestream))
     70  1.1  christos 
     71  1.1  christos 
     72  1.1  christos #ifdef __cplusplus
     73  1.1  christos }
     74  1.1  christos #endif
     75  1.1  christos 
     76  1.1  christos #endif
     77  1.1  christos 
     78