12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #pragma once
- #include <stdbool.h>
- #include <stdint.h>
- #if defined (__cplusplus)
- extern "C" {
- #endif
- /*!
- * @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] InputSize - The size of 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 (
- const uint8_t* InputBuffer,
- uint32_t InputSize,
- uint8_t* OutputBuffer,
- uint32_t* OutputSize
- );
- /*!
- * @brief Returns if the last call to XzDecode resulted in an integrity
- * error.
- *
- * @detail Checksum errors can indicate either the uncompressed block's
- * CRC-32 or CRC-64 checksum being corrupt, or any of the meta-
- * data CRC-32 checksums in the header, footer, or index.
- *
- * @return true - A checksum error was encountered at some point.
- * false - No error was encountered or integrity checks are not
- * enabled.
- */
- bool
- XzChecksumError (
- void
- );
- #if defined (__cplusplus)
- }
- #endif
|