summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/common/inflate.c9
-rw-r--r--firmware/include/inflate.h9
2 files changed, 18 insertions, 0 deletions
diff --git a/firmware/common/inflate.c b/firmware/common/inflate.c
index 62661ee111..e39fe3a14e 100644
--- a/firmware/common/inflate.c
+++ b/firmware/common/inflate.c
@@ -782,3 +782,12 @@ uint32_t inflate_buffer_writer(const void* block, uint32_t block_size, void* ctx
782 struct inflate_bufferctx* c = ctx; 782 struct inflate_bufferctx* c = ctx;
783 return inflate_buffer_rw(c, c->buf, block, block_size); 783 return inflate_buffer_rw(c, c->buf, block, block_size);
784} 784}
785
786uint32_t inflate_getsize_writer(const void* block, uint32_t block_size, void* ctx)
787{
788 (void)block;
789
790 size_t* size = ctx;
791 *size += block_size;
792 return block_size;
793}
diff --git a/firmware/include/inflate.h b/firmware/include/inflate.h
index 7dae0448e3..1fce186f34 100644
--- a/firmware/include/inflate.h
+++ b/firmware/include/inflate.h
@@ -58,4 +58,13 @@ struct inflate_bufferctx {
58uint32_t inflate_buffer_reader(void* block, uint32_t block_size, void* ctx); 58uint32_t inflate_buffer_reader(void* block, uint32_t block_size, void* ctx);
59uint32_t inflate_buffer_writer(const void* block, uint32_t block_size, void* ctx); 59uint32_t inflate_buffer_writer(const void* block, uint32_t block_size, void* ctx);
60 60
61// dummy writer used if you just want to figure out how big the decompressed
62// data will be. It does not actually write any data. Example usage:
63//
64// size_t size = 0;
65// inflate(it, st, read, rctx, inflate_getsize_writer, &size);
66//
67// Now 'size' will be the size of the decompressed data (assuming no errors).
68uint32_t inflate_getsize_writer(const void* block, uint32_t block_size, void* ctx);
69
61#endif 70#endif