diff options
Diffstat (limited to 'firmware/include/inflate.h')
-rw-r--r-- | firmware/include/inflate.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/firmware/include/inflate.h b/firmware/include/inflate.h index b56ccf181a..7dae0448e3 100644 --- a/firmware/include/inflate.h +++ b/firmware/include/inflate.h | |||
@@ -23,6 +23,7 @@ | |||
23 | #define _INFLATE_H_ | 23 | #define _INFLATE_H_ |
24 | 24 | ||
25 | #include <stdint.h> | 25 | #include <stdint.h> |
26 | #include <stddef.h> | ||
26 | 27 | ||
27 | enum { | 28 | enum { |
28 | INFLATE_RAW, | 29 | INFLATE_RAW, |
@@ -43,4 +44,18 @@ extern const uint32_t inflate_align; | |||
43 | // see above enum for possible options. | 44 | // see above enum for possible options. |
44 | int inflate(struct inflate* it, int st, inflate_reader read, void* rctx, inflate_writer write, void* wctx); | 45 | int inflate(struct inflate* it, int st, inflate_reader read, void* rctx, inflate_writer write, void* wctx); |
45 | 46 | ||
47 | struct inflate_bufferctx { | ||
48 | // initialize this with your input/output buffer. | ||
49 | // the pointer is updated as data is read or written. | ||
50 | void* buf; | ||
51 | |||
52 | // buffer end marker (= buf + buf_size). | ||
53 | void* end; | ||
54 | }; | ||
55 | |||
56 | // reader and writer for using an in-memory buffer. | ||
57 | // Use 'inflate_bufferctx' as the context argument. | ||
58 | uint32_t inflate_buffer_reader(void* block, uint32_t block_size, void* ctx); | ||
59 | uint32_t inflate_buffer_writer(const void* block, uint32_t block_size, void* ctx); | ||
60 | |||
46 | #endif | 61 | #endif |