annotate packages/redboot/current/src/decompress.c @ 3237:70cba7faa5f7

* ecos.db: Add CAN driver entry for olcpe2294 target (Olimex LPC-E2294 development board).
author sergeig
date Tue, 21 May 2013 18:58:25 +0000
parents 74dbf4c3f2e1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
1 //==========================================================================
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
2 //
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
3 // decompress.c
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
4 //
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
5 // RedBoot decompress support
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
6 //
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
7 //==========================================================================
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
8 // ####ECOSGPLCOPYRIGHTBEGIN####
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
9 // -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
10 // This file is part of eCos, the Embedded Configurable Operating System.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
11 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 191
diff changeset
12 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
13 // eCos is free software; you can redistribute it and/or modify it under
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
14 // the terms of the GNU General Public License as published by the Free
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
15 // Software Foundation; either version 2 or (at your option) any later
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
16 // version.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 191
diff changeset
17 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
18 // eCos is distributed in the hope that it will be useful, but WITHOUT
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
19 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
20 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
21 // for more details.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 191
diff changeset
22 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
23 // You should have received a copy of the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
24 // along with eCos; if not, write to the Free Software Foundation, Inc.,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
25 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 191
diff changeset
26 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
27 // As a special exception, if other files instantiate templates or use
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
28 // macros or inline functions from this file, or you compile this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
29 // and link it with other works to produce a work based on this file,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
30 // this file does not by itself cause the resulting work to be covered by
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
31 // the GNU General Public License. However the source code for this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
32 // must still be made available in accordance with section (3) of the GNU
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
33 // General Public License v2.
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 191
diff changeset
34 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
35 // This exception does not invalidate any other reasons why a work based
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
36 // on this file might be covered by the GNU General Public License.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
37 // -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1959
diff changeset
38 // ####ECOSGPLCOPYRIGHTEND####
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
39 //==========================================================================
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
40 //#####DESCRIPTIONBEGIN####
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
41 //
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
42 // Author(s): jskov
307
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 210
diff changeset
43 // Contributors: jskov, gthomas, tkoeller
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
44 // Date: 2001-03-08
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
45 // Purpose:
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
46 // Description:
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
47 //
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
48 // This code is part of RedBoot (tm).
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
49 //
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
50 //####DESCRIPTIONEND####
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
51 //
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
52 //==========================================================================
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
53
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
54 #include <redboot.h>
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
55
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
56 #ifdef CYGPKG_COMPRESS_ZLIB
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
57 #include <cyg/compress/zlib.h>
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
58 static z_stream stream;
331
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
59 static bool stream_end;
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
60
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
61 #define __ZLIB_MAGIC__ 0x5A4C4942 // 'ZLIB'
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
62
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
63 //
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
64 // Free memory [blocks] are stored as a linked list of "struct _block"
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
65 // The 'magic' is kept to insure that the block being freed is reasonable
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
66 //
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
67 // One of either next or size might be removable, if a sentinal block
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
68 // is placed at the end of the region at initialisation time.
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
69 struct _block {
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
70 int size; // always the total length of the block, including this header
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
71 long magic; // Must be __ZLIB_MAGIC__ if allocated and 0 if free
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
72 struct _block *next;
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
73 struct _block *prev;
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
74 };
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
75 static struct _block *memlist;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
76
307
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 210
diff changeset
77 #ifdef CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 210
diff changeset
78 # define ZLIB_COMPRESSION_OVERHEAD CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 210
diff changeset
79 #else
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 210
diff changeset
80 # define ZLIB_COMPRESSION_OVERHEAD 0xC000
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 210
diff changeset
81 #endif
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
82 static void *zlib_workspace;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
83
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
84 //
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
85 // This function is run as part of RedBoot's initialization.
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
86 // It will allocate some memory from the "workspace" pool for
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
87 // use by the gzip/zlib routines. This allows the memory usage
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
88 // of RedBoot to be more finely controlled than if we simply
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
89 // used the generic 'malloc() from the heap' functionality.
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
90 //
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
91 static void
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
92 _zlib_init(void)
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
93 {
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
94 struct _block *bp;
307
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 210
diff changeset
95 #ifdef CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 210
diff changeset
96 zlib_workspace = fis_zlib_common_buffer;
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 210
diff changeset
97 #else
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
98 // Allocate some RAM for use by the gzip/zlib routines
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
99 workspace_end -= ZLIB_COMPRESSION_OVERHEAD;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
100 zlib_workspace = workspace_end;
307
906a5d289c6d Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents: 210
diff changeset
101 #endif
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
102 bp = (struct _block *)zlib_workspace;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
103 memlist = bp;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
104 bp->next = bp->prev = 0;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
105 bp->size = ZLIB_COMPRESSION_OVERHEAD;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
106 bp->magic = 0;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
107 #ifdef DEBUG_ZLIB_MALLOC
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
108 show_memlist(__FUNCTION__);
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
109 #endif
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
110 }
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
111
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
112 RedBoot_init(_zlib_init, RedBoot_INIT_FIRST);
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
113
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
114 // #define DEBUG_ZLIB_MALLOC
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
115 #ifdef DEBUG_ZLIB_MALLOC
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
116 static void
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
117 show_memlist(char *when)
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
118 {
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
119 struct _block *bp = memlist;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
120
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
121 diag_printf("memory list after %s\n", when);
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
122 diag_printf(" --START--- --END----- --SIZE---- --PREV---- --NEXT---- TYPE-----\n");
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
123 while (bp != (struct _block *)0) {
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
124 diag_printf(" %08p-%08p 0x%08x %08p %08p %s\n", bp, (unsigned char *)bp+bp->size,
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
125 bp->size, bp->prev, bp->next, bp->magic == 0 ? "FREE" : "ALLOCATED" );
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
126 bp = bp->next;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
127 }
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
128 diag_printf("\n");
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
129 }
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
130 #endif
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
131
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
132 // Note: these have to be global and match the prototype used by the
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
133 // gzip/zlib package since we are exactly replacing them.
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
134
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
135 void
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
136 *zcalloc(void *opaque, unsigned int items, unsigned int size)
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
137 {
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
138 voidpf res = 0;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
139 int len = (items*size) + sizeof(struct _block);
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
140 struct _block *bp = memlist;
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
141 struct _block *nbp;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
142
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
143 #ifdef DEBUG_ZLIB_MALLOC
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
144 /* do this here because when int is called output is not setup yet */
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
145 static int first_alloc = 1;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
146 if ( first_alloc ) {
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
147 show_memlist("initialization");
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
148 first_alloc = 0;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
149 }
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
150 #endif
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
151
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
152 // Simple, first-fit algorithm
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
153 while (bp) {
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
154 if (bp->magic == 0 && bp->size > len) {
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
155 nbp = (struct _block *)((char *)bp + len);
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
156 /* link new block into chain */
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
157 nbp->next = bp->next;
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
158 bp->next = nbp;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
159 nbp->prev = bp;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
160 /* split size between the two blocks */
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
161 nbp->size = bp->size - len;
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
162 bp->size = len;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
163 /* mark the new block as free */
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
164 nbp->magic = 0;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
165 /* mark allocated block as allocated */
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
166 bp->magic = __ZLIB_MAGIC__;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
167 res = bp +1;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
168 memset(res, 0, len - sizeof(struct _block));
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
169 break;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
170 }
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
171 bp = bp->next;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
172 }
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
173 #ifdef DEBUG_ZLIB_MALLOC
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
174 diag_printf("%s(0x%x,0x%x) = %p\n", __FUNCTION__, items, size, res);
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
175 show_memlist(__FUNCTION__);
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
176 #endif
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
177 if ( res == NULL )
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
178 diag_printf("zcalloc: failed to allocate 0x%x items of 0x%x bytes == 0x%x bytes\n", items, size, len);
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
179 return res;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
180 }
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
181
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
182 void
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
183 zcfree(void *opaque, void *ptr)
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
184 {
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
185 struct _block *bp;
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
186
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
187 if (!ptr) return; // Safety
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
188 bp = (struct _block *)((char *)ptr - sizeof(struct _block));
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
189 if (bp->magic != __ZLIB_MAGIC__) {
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
190 diag_printf("%s(%p) - invalid block\n", __FUNCTION__, ptr);
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
191 return;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
192 }
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
193
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
194 /* mark as free */
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
195 bp->magic = 0;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
196
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
197 #ifdef DEBUG_ZLIB_MALLOC
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
198 diag_printf("%s(%p) = 0x%x bytes\n", __FUNCTION__, ptr, bp->size);
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
199 #endif
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
200
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
201 while(bp->next && bp->next->magic == 0) {
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
202 #ifdef DEBUG_ZLIB_MALLOC
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
203 diag_printf(" merging %08p and %08p (after)\n", bp, bp->next);
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
204 #endif
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
205 bp->size += bp->next->size;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
206 bp->next = bp->next->next;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
207 }
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
208
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
209 while(bp->prev && bp->prev->magic == 0) {
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
210 #ifdef DEBUG_ZLIB_MALLOC
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
211 diag_printf(" merging %08p and %08p (before)\n", bp->prev, bp);
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
212 #endif
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
213 bp->prev->size += bp->size;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
214 bp->prev->next = bp->next;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
215 bp = bp->prev;
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
216 }
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
217
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
218 #ifdef DEBUG_ZLIB_MALLOC
1420
9721661d7ecc Fixes to zlib decompression - from Ian Campbell
gthomas
parents: 474
diff changeset
219 show_memlist(__FUNCTION__);
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
220 #endif
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
221 }
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
222
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
223 //
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
224 // This function is called to initialize a gzip/zlib stream.
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
225 //
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
226 static int
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
227 gzip_init(_pipe_t* p)
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
228 {
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
229 int err;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
230
1421
170fbc1a5bbc Clean up memory pool initialization
gthomas
parents: 1420
diff changeset
231 // Note: this code used to [re]initialize the memory pool used
170fbc1a5bbc Clean up memory pool initialization
gthomas
parents: 1420
diff changeset
232 // by zlib. This is now done in _zlib_init(), but only once.
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
233 stream.zalloc = zcalloc;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
234 stream.zfree = zcfree;
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
235 stream.next_in = NULL;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
236 stream.avail_in = 0;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
237 stream.next_out = NULL;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
238 stream.avail_out = 0;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
239 err = inflateInit(&stream);
331
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
240 stream_end = false;
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
241
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
242 return err;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
243 }
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
244
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
245 //
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
246 // This function is called during the decompression cycle to
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
247 // actually cause a buffer to be filled with uncompressed data.
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
248 //
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
249 static int
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
250 gzip_inflate(_pipe_t* p)
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
251 {
330
2525052c5d76 Fix compressed file loads.
msalter
parents: 307
diff changeset
252 int err, bytes_out;
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
253
331
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
254 if (stream_end)
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
255 return Z_STREAM_END;
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
256
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
257 stream.next_in = p->in_buf;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
258 stream.avail_in = p->in_avail;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
259 stream.next_out = p->out_buf;
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 191
diff changeset
260 stream.avail_out = p->out_max;
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
261 err = inflate(&stream, Z_SYNC_FLUSH);
330
2525052c5d76 Fix compressed file loads.
msalter
parents: 307
diff changeset
262 bytes_out = stream.next_out - p->out_buf;
2525052c5d76 Fix compressed file loads.
msalter
parents: 307
diff changeset
263 p->out_size += bytes_out;
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
264 p->out_buf = stream.next_out;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
265 p->msg = stream.msg;
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 191
diff changeset
266 p->in_avail = stream.avail_in;
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 191
diff changeset
267 p->in_buf = stream.next_in;
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
268
331
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
269 // Let upper layers process any inflated bytes at
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
270 // end of stream.
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
271 if (err == Z_STREAM_END && bytes_out) {
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
272 stream_end = true;
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
273 err = Z_OK;
330
2525052c5d76 Fix compressed file loads.
msalter
parents: 307
diff changeset
274 }
331
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
275
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
276 return err;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
277 }
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
278
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
279 //
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
280 // Called when the input data is completed or an error has
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
281 // occured. This allows for clean up as well as passing error
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
282 // information up.
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
283 //
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
284 static int
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
285 gzip_close(_pipe_t* p, int err)
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
286 {
331
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
287 switch (err) {
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
288 case Z_STREAM_END:
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
289 err = 0;
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
290 break;
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
291 case Z_OK:
474
f0d9ca957f47 Fix decompression problem - from Patrick Doyle.
gthomas
parents: 331
diff changeset
292 if (stream_end) {
f0d9ca957f47 Fix decompression problem - from Patrick Doyle.
gthomas
parents: 331
diff changeset
293 break;
f0d9ca957f47 Fix decompression problem - from Patrick Doyle.
gthomas
parents: 331
diff changeset
294 }
331
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
295 // Decompression didn't complete
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
296 p->msg = "premature end of input";
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
297 // fall-through
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
298 default:
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
299 err = -1;
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
300 break;
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
301 }
83cd88af1211 Fix xyzmodem compressed loads
msalter
parents: 330
diff changeset
302
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
303 inflateEnd(&stream);
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
304
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
305 return err;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
306 }
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
307
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
308 //
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
309 // Exported interfaces
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 156
diff changeset
310 //
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
311 _decompress_fun_init* _dc_init = gzip_init;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
312 _decompress_fun_inflate* _dc_inflate = gzip_inflate;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
313 _decompress_fun_close* _dc_close = gzip_close;
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
diff changeset
314 #endif // CYGPKG_COMPRESS_ZLIB