OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [zlib/] [contrib/] [minizip/] [ioapi.c] - Blame information for rev 867

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 745 jeremybenn
/* ioapi.c -- IO base function header for compress/uncompress .zip
2
   files using zlib + zip or unzip API
3
 
4
   Version 1.01e, February 12th, 2005
5
 
6
   Copyright (C) 1998-2005 Gilles Vollant
7
*/
8
 
9
#include <stdio.h>
10
#include <stdlib.h>
11
#include <string.h>
12
 
13
#include "zlib.h"
14
#include "ioapi.h"
15
 
16
 
17
 
18
/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */
19
 
20
#ifndef SEEK_CUR
21
#define SEEK_CUR    1
22
#endif
23
 
24
#ifndef SEEK_END
25
#define SEEK_END    2
26
#endif
27
 
28
#ifndef SEEK_SET
29
#define SEEK_SET    0
30
#endif
31
 
32
voidpf ZCALLBACK fopen_file_func OF((
33
   voidpf opaque,
34
   const char* filename,
35
   int mode));
36
 
37
uLong ZCALLBACK fread_file_func OF((
38
   voidpf opaque,
39
   voidpf stream,
40
   void* buf,
41
   uLong size));
42
 
43
uLong ZCALLBACK fwrite_file_func OF((
44
   voidpf opaque,
45
   voidpf stream,
46
   const void* buf,
47
   uLong size));
48
 
49
long ZCALLBACK ftell_file_func OF((
50
   voidpf opaque,
51
   voidpf stream));
52
 
53
long ZCALLBACK fseek_file_func OF((
54
   voidpf opaque,
55
   voidpf stream,
56
   uLong offset,
57
   int origin));
58
 
59
int ZCALLBACK fclose_file_func OF((
60
   voidpf opaque,
61
   voidpf stream));
62
 
63
int ZCALLBACK ferror_file_func OF((
64
   voidpf opaque,
65
   voidpf stream));
66
 
67
 
68
voidpf ZCALLBACK fopen_file_func (opaque, filename, mode)
69
   voidpf opaque;
70
   const char* filename;
71
   int mode;
72
{
73
    FILE* file = NULL;
74
    const char* mode_fopen = NULL;
75
    if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)
76
        mode_fopen = "rb";
77
    else
78
    if (mode & ZLIB_FILEFUNC_MODE_EXISTING)
79
        mode_fopen = "r+b";
80
    else
81
    if (mode & ZLIB_FILEFUNC_MODE_CREATE)
82
        mode_fopen = "wb";
83
 
84
    if ((filename!=NULL) && (mode_fopen != NULL))
85
        file = fopen(filename, mode_fopen);
86
    return file;
87
}
88
 
89
 
90
uLong ZCALLBACK fread_file_func (opaque, stream, buf, size)
91
   voidpf opaque;
92
   voidpf stream;
93
   void* buf;
94
   uLong size;
95
{
96
    uLong ret;
97
    ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream);
98
    return ret;
99
}
100
 
101
 
102
uLong ZCALLBACK fwrite_file_func (opaque, stream, buf, size)
103
   voidpf opaque;
104
   voidpf stream;
105
   const void* buf;
106
   uLong size;
107
{
108
    uLong ret;
109
    ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream);
110
    return ret;
111
}
112
 
113
long ZCALLBACK ftell_file_func (opaque, stream)
114
   voidpf opaque;
115
   voidpf stream;
116
{
117
    long ret;
118
    ret = ftell((FILE *)stream);
119
    return ret;
120
}
121
 
122
long ZCALLBACK fseek_file_func (opaque, stream, offset, origin)
123
   voidpf opaque;
124
   voidpf stream;
125
   uLong offset;
126
   int origin;
127
{
128
    int fseek_origin=0;
129
    long ret;
130
    switch (origin)
131
    {
132
    case ZLIB_FILEFUNC_SEEK_CUR :
133
        fseek_origin = SEEK_CUR;
134
        break;
135
    case ZLIB_FILEFUNC_SEEK_END :
136
        fseek_origin = SEEK_END;
137
        break;
138
    case ZLIB_FILEFUNC_SEEK_SET :
139
        fseek_origin = SEEK_SET;
140
        break;
141
    default: return -1;
142
    }
143
    ret = 0;
144
    fseek((FILE *)stream, offset, fseek_origin);
145
    return ret;
146
}
147
 
148
int ZCALLBACK fclose_file_func (opaque, stream)
149
   voidpf opaque;
150
   voidpf stream;
151
{
152
    int ret;
153
    ret = fclose((FILE *)stream);
154
    return ret;
155
}
156
 
157
int ZCALLBACK ferror_file_func (opaque, stream)
158
   voidpf opaque;
159
   voidpf stream;
160
{
161
    int ret;
162
    ret = ferror((FILE *)stream);
163
    return ret;
164
}
165
 
166
void fill_fopen_filefunc (pzlib_filefunc_def)
167
  zlib_filefunc_def* pzlib_filefunc_def;
168
{
169
    pzlib_filefunc_def->zopen_file = fopen_file_func;
170
    pzlib_filefunc_def->zread_file = fread_file_func;
171
    pzlib_filefunc_def->zwrite_file = fwrite_file_func;
172
    pzlib_filefunc_def->ztell_file = ftell_file_func;
173
    pzlib_filefunc_def->zseek_file = fseek_file_func;
174
    pzlib_filefunc_def->zclose_file = fclose_file_func;
175
    pzlib_filefunc_def->zerror_file = ferror_file_func;
176
    pzlib_filefunc_def->opaque = NULL;
177
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.