Prusa MINI Firmware overview
compress.c File Reference
#include "zlib.h"

Macros

#define ZLIB_INTERNAL
 

Functions

int ZEXPORT compress2 (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level)
 
int ZEXPORT compress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)
 
uLong ZEXPORT compressBound (uLong sourceLen)
 

Macro Definition Documentation

◆ ZLIB_INTERNAL

#define ZLIB_INTERNAL

Function Documentation

◆ compress2()

int ZEXPORT compress2 ( Bytef dest,
uLongf destLen,
const Bytef source,
uLong  sourceLen,
int  level 
)
28 {
29  z_stream stream;
30  int err;
31  const uInt max = (uInt)-1;
32  uLong left;
33 
34  left = *destLen;
35  *destLen = 0;
36 
37  stream.zalloc = (alloc_func)0;
38  stream.zfree = (free_func)0;
39  stream.opaque = (voidpf)0;
40 
41  err = deflateInit(&stream, level);
42  if (err != Z_OK) return err;
43 
44  stream.next_out = dest;
45  stream.avail_out = 0;
46  stream.next_in = (z_const Bytef *)source;
47  stream.avail_in = 0;
48 
49  do {
50  if (stream.avail_out == 0) {
51  stream.avail_out = left > (uLong)max ? max : (uInt)left;
52  left -= stream.avail_out;
53  }
54  if (stream.avail_in == 0) {
55  stream.avail_in = sourceLen > (uLong)max ? max : (uInt)sourceLen;
56  sourceLen -= stream.avail_in;
57  }
58  err = deflate(&stream, sourceLen ? Z_NO_FLUSH : Z_FINISH);
59  } while (err == Z_OK);
60 
61  *destLen = stream.total_out;
62  deflateEnd(&stream);
63  return err == Z_STREAM_END ? Z_OK : err;
64 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ compress()

int ZEXPORT compress ( Bytef dest,
uLongf destLen,
const Bytef source,
uLong  sourceLen 
)
73 {
74  return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION);
75 }
Here is the call graph for this function:

◆ compressBound()

uLong ZEXPORT compressBound ( uLong  sourceLen)
83 {
84  return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
85  (sourceLen >> 25) + 13;
86 }
Bytef
Byte FAR Bytef
Definition: zconf.h:400
compress2
int ZEXPORT compress2(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level)
Definition: compress.c:22
deflateEnd
int ZEXPORT deflateEnd(z_streamp strm)
Definition: deflate.c:1076
uLong
unsigned long uLong
Definition: zconf.h:394
z_stream_s::zfree
free_func zfree
Definition: zlib.h:99
z_stream_s::avail_in
uInt avail_in
Definition: zlib.h:88
Z_FINISH
#define Z_FINISH
Definition: zlib.h:172
max
#define max(a, b)
Definition: wiring_constants.h:40
voidpf
Byte FAR * voidpf
Definition: zconf.h:413
z_stream_s::avail_out
uInt avail_out
Definition: zlib.h:92
z_const
#define z_const
Definition: zconf.h:237
Z_NO_FLUSH
#define Z_NO_FLUSH
Definition: zlib.h:168
Z_OK
#define Z_OK
Definition: zlib.h:177
z_stream_s::zalloc
alloc_func zalloc
Definition: zlib.h:98
Z_STREAM_END
#define Z_STREAM_END
Definition: zlib.h:178
z_stream_s
Definition: zlib.h:86
z_stream_s::next_in
z_const Bytef * next_in
Definition: zlib.h:87
z_stream_s::next_out
Bytef * next_out
Definition: zlib.h:91
deflate
int ZEXPORT deflate(z_streamp strm, int flush)
Definition: deflate.c:763
Z_DEFAULT_COMPRESSION
#define Z_DEFAULT_COMPRESSION
Definition: zlib.h:193
uInt
unsigned int uInt
Definition: zconf.h:393
deflateInit
#define deflateInit(strm, level)
Definition: zlib.h:1793
z_stream_s::opaque
voidpf opaque
Definition: zlib.h:100
z_stream_s::total_out
uLong total_out
Definition: zlib.h:93