Skip to content

Commit 3e03e91

Browse files
vkarpenkpablodelara
authored andcommitted
igzip: add inflate example
Signed-off-by: Karpenko, Veronika <[email protected]>
1 parent c0bd84c commit 3e03e91

File tree

5 files changed

+104
-3
lines changed

5 files changed

+104
-3
lines changed

Makefile.nmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ ex = \
264264
crc_simple_test.exe \
265265
crc64_example.exe \
266266
igzip_example.exe \
267+
igzip_inflate_example.exe \
267268
igzip_sync_flush_example.exe \
268269
ec_simple_example.exe \
269270
ec_piggyback_example.exe

doc/functions.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ Examples:
198198
- [ec example]
199199
- [raid example]
200200
- [crc example]
201-
- [igzip example]
201+
- [igzip examples]
202202
203203
---
204204
@@ -207,4 +207,5 @@ Examples:
207207
[raid example]: https://github.com/intel/isa-l/blob/master/raid/xor_example.c
208208
[crc example]: https://github.com/intel/isa-l/blob/master/crc/crc64_example.c
209209
[crc combine example]: https://github.com/intel/isa-l/blob/master/examples/crc/crc_combine_example.c
210-
[igzip example]: https://github.com/intel/isa-l/blob/master/igzip/igzip_example.c
210+
[igzip deflate example]: https://github.com/intel/isa-l/blob/master/igzip/igzip_example.c
211+
[igzip inflate example]: https://github.com/intel/isa-l/blob/master/igzip/igzip_inflate_example.c

igzip/Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ other_src += igzip/bitbuf2.asm \
123123

124124
perf_tests += igzip/adler32_perf
125125

126-
examples += igzip/igzip_example igzip/igzip_sync_flush_example
126+
examples += igzip/igzip_example igzip/igzip_inflate_example igzip/igzip_sync_flush_example
127127

128128
igzip_igzip_rand_test_LDADD = libisal.la
129129

igzip/igzip_inflate_example.c

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
/**********************************************************************
2+
Copyright(c) 2025 Intel Corporation All rights reserved.
3+
4+
Redistribution and use in source and binary forms, with or without
5+
modification, are permitted provided that the following conditions
6+
are met:
7+
* Redistributions of source code must retain the above copyright
8+
notice, this list of conditions and the following disclaimer.
9+
* Redistributions in binary form must reproduce the above copyright
10+
notice, this list of conditions and the following disclaimer in
11+
the documentation and/or other materials provided with the
12+
distribution.
13+
* Neither the name of Intel Corporation nor the names of its
14+
contributors may be used to endorse or promote products derived
15+
from this software without specific prior written permission.
16+
17+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28+
**********************************************************************/
29+
30+
#include <stdio.h>
31+
#include <stdlib.h>
32+
#include <assert.h>
33+
#include "igzip_lib.h"
34+
35+
#define BUF_SIZE 8192
36+
37+
struct inflate_state stream;
38+
39+
int main(int argc, char *argv[])
40+
{
41+
uint8_t inbuf[BUF_SIZE], outbuf[BUF_SIZE];
42+
FILE *in, *out;
43+
int ret;
44+
int eof;
45+
46+
if (argc != 3) {
47+
fprintf(stderr, "Usage: igzip_inflate_example infile outfile\n");
48+
exit(0);
49+
}
50+
51+
in = fopen(argv[1], "rb");
52+
if (!in) {
53+
fprintf(stderr, "Can't open %s for reading\n", argv[1]);
54+
exit(0);
55+
}
56+
57+
out = fopen(argv[2], "wb");
58+
if (!out) {
59+
fprintf(stderr, "Can't open %s for writing\n", argv[2]);
60+
fclose(in);
61+
exit(0);
62+
}
63+
64+
printf("igzip_inflate_example\n");
65+
fflush(0);
66+
67+
isal_inflate_init(&stream);
68+
69+
do {
70+
stream.avail_in = (uint32_t)fread(inbuf, 1, BUF_SIZE, in);
71+
eof = feof(in);
72+
stream.next_in = inbuf;
73+
74+
do {
75+
stream.avail_out = BUF_SIZE;
76+
stream.next_out = outbuf;
77+
78+
ret = isal_inflate(&stream);
79+
80+
if (ret != ISAL_DECOMP_OK && ret != ISAL_END_INPUT) {
81+
fprintf(stderr, "Decompression error: %d\n", ret);
82+
fclose(out);
83+
fclose(in);
84+
return 1;
85+
}
86+
87+
fwrite(outbuf, 1, BUF_SIZE - stream.avail_out, out);
88+
} while (stream.avail_out == 0);
89+
} while (eof == 0);
90+
91+
fclose(out);
92+
fclose(in);
93+
94+
printf("End of igzip_inflate_example\n\n");
95+
return 0;
96+
}

tools/test_extended.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,9 @@ test_end "xor_example" $?
152152
test_start "igzip_example"
153153
./igzip_example ${in_file} ${in_file}.cmp
154154
test_end "igzip_example" $?
155+
test_start "igzip_inflate_example"
156+
./igzip_inflate_example ${in_file}.cmp ${in_file}
157+
test_end "igzip_inflate_example" $?
155158
rm -rf ${in_file}.cmp
156159
msg+=$'Examples run: Pass\n'
157160

0 commit comments

Comments
 (0)