summaryrefslogtreecommitdiff
path: root/tools/src/minilzlib/minlzma.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/src/minilzlib/minlzma.h')
-rw-r--r--tools/src/minilzlib/minlzma.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/tools/src/minilzlib/minlzma.h b/tools/src/minilzlib/minlzma.h
new file mode 100644
index 0000000..f7ca4bd
--- /dev/null
+++ b/tools/src/minilzlib/minlzma.h
@@ -0,0 +1,33 @@
+#pragma once
+
+#include <stdbool.h>
+
+/*!
+ * @brief Decompresses an XZ stream from InputBuffer into OutputBuffer.
+ *
+ * @detail The XZ stream must contain a single block with an LZMA2 filter
+ * and no BJC2 filters, using default LZMA properties, and using
+ * either CRC32 or None as the checksum type.
+ *
+ * @param[in] InputBuffer - A fully formed buffer containing the XZ stream.
+ * @param[in,out] InputSize - The size of the input buffer. On output, the size
+ * consumed from the input buffer.
+ * @param[in] OutputBuffer - A fully allocated buffer to receive the output.
+ * Callers can pass in NULL if they do not intend to decompress,
+ * in combination with setting OutputSize to 0, in order to query
+ * the final expected size of the decompressed buffer.
+ * @param[in,out] OutputSize - On input, the size of the buffer. On output, the
+ * size of the decompressed result.
+ *
+ * @return true - The input buffer was fully decompressed in OutputBuffer,
+ * or no decompression was requested, the size of the decompressed
+ * buffer was returned in OutputSIze.
+ * false - A failure occurred during the decompression process.
+ */
+bool
+XzDecode (
+ uint8_t* InputBuffer,
+ uint32_t* InputSize,
+ uint8_t* OutputBuffer,
+ uint32_t* OutputSize
+ );