libctru/decompress_8h.html
2024-11-03 20:36:34 +00:00

1034 lines
55 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libctru: include/3ds/util/decompress.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libctru
&#160;<span id="projectnumber">v2.4.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_d475325f6a9fe3bfc3a495c72a9e475e.html">3ds</a></li><li class="navelem"><a class="el" href="dir_1b1aef9f2527d990c50369cf62d7d9a1.html">util</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">decompress.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Decompression functions.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdbool.h&gt;</code><br />
<code>#include &lt;stdint.h&gt;</code><br />
<code>#include &lt;sys/types.h&gt;</code><br />
</div>
<p><a href="decompress_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdecompressIOVec.html">decompressIOVec</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">I/O vector. <a href="structdecompressIOVec.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a82afe6b8cb1580641c2b7cc4afe10586"><td class="memItemLeft" align="right" valign="top"><a id="a82afe6b8cb1580641c2b7cc4afe10586"></a>
typedef ssize_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a>) (void *userdata, void *buffer, size_t size)</td></tr>
<tr class="memdesc:a82afe6b8cb1580641c2b7cc4afe10586"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data callback. <br /></td></tr>
<tr class="separator:a82afe6b8cb1580641c2b7cc4afe10586"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:af608dea9741e036c8219ca0acf41ca47"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47">decompressType</a> { <br />
&#160;&#160;<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47a7e88ffc0dd6b4591500ff8d06f24901d">DECOMPRESS_DUMMY</a> = 0x00
, <br />
&#160;&#160;<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47a0ae27226b18f8697786ff436fecc2abb">DECOMPRESS_LZSS</a> = 0x10
, <br />
&#160;&#160;<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47a1f5ccfe86c3c4d2efa980b1a40f2b94d">DECOMPRESS_LZ10</a> = 0x10
, <br />
&#160;&#160;<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47a7f78c3240f1cc1b6ea07e9f8c5057e10">DECOMPRESS_LZ11</a> = 0x11
, <br />
&#160;&#160;<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47af85a1bd7a05035d44931e8ae2b7c959a">DECOMPRESS_HUFF1</a> = 0x21
, <br />
&#160;&#160;<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47a2c9180a08bf80fb3910795123607453a">DECOMPRESS_HUFF2</a> = 0x22
, <br />
&#160;&#160;<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47a29d334d516ddfdc7a7ace93270a95d72">DECOMPRESS_HUFF3</a> = 0x23
, <br />
&#160;&#160;<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47a149b900d1f0643108f3f987e30ddff1a">DECOMPRESS_HUFF4</a> = 0x24
, <br />
&#160;&#160;<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47a30ec47e273fc5b9dadcb98f28ff29e6f">DECOMPRESS_HUFF5</a> = 0x25
, <br />
&#160;&#160;<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47adcd62d63c577651263fb6d6240c2370d">DECOMPRESS_HUFF6</a> = 0x26
, <br />
&#160;&#160;<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47acfc8e3dda6f87a22010f8abdae8976a2">DECOMPRESS_HUFF7</a> = 0x27
, <br />
&#160;&#160;<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47a70bb6597010e5f3ae215eaa05b71f826">DECOMPRESS_HUFF8</a> = 0x28
, <br />
&#160;&#160;<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47a552ec2ffb0b59f738ead8790d726bba7">DECOMPRESS_HUFF</a> = 0x28
, <br />
&#160;&#160;<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47a7ab5e09ffe4b9d8dc8533e8b80cfc14a">DECOMPRESS_RLE</a> = 0x30
<br />
}</td></tr>
<tr class="memdesc:af608dea9741e036c8219ca0acf41ca47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compression types. <a href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47">More...</a><br /></td></tr>
<tr class="separator:af608dea9741e036c8219ca0acf41ca47"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a55dc28982013508464dc397168ca5f19"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#a55dc28982013508464dc397168ca5f19">decompressCallback_FD</a> (void *userdata, void *buffer, size_t size)</td></tr>
<tr class="memdesc:a55dc28982013508464dc397168ca5f19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompression callback for file descriptors. <a href="decompress_8h.html#a55dc28982013508464dc397168ca5f19">More...</a><br /></td></tr>
<tr class="separator:a55dc28982013508464dc397168ca5f19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6453066b1202aab9df9805f9bda717c3"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#a6453066b1202aab9df9805f9bda717c3">decompressCallback_Stdio</a> (void *userdata, void *buffer, size_t size)</td></tr>
<tr class="memdesc:a6453066b1202aab9df9805f9bda717c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompression callback for stdio FILE*. <a href="decompress_8h.html#a6453066b1202aab9df9805f9bda717c3">More...</a><br /></td></tr>
<tr class="separator:a6453066b1202aab9df9805f9bda717c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5de8b5325fcfa3ccf069ced93bb2615f"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#a5de8b5325fcfa3ccf069ced93bb2615f">decompressHeader</a> (<a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47">decompressType</a> *type, size_t *size, <a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a> callback, void *userdata, size_t insize)</td></tr>
<tr class="memdesc:a5de8b5325fcfa3ccf069ced93bb2615f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode decompression header. <a href="decompress_8h.html#a5de8b5325fcfa3ccf069ced93bb2615f">More...</a><br /></td></tr>
<tr class="separator:a5de8b5325fcfa3ccf069ced93bb2615f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7547936f0d622823db1b9ee8ac53547"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547">decompressV</a> (const <a class="el" href="structdecompressIOVec.html">decompressIOVec</a> *iov, size_t iovcnt, <a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a> callback, void *userdata, size_t insize)</td></tr>
<tr class="memdesc:aa7547936f0d622823db1b9ee8ac53547"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress data. <a href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547">More...</a><br /></td></tr>
<tr class="separator:aa7547936f0d622823db1b9ee8ac53547"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aceec72c729cdefbc0102e0e406b945e2"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#aceec72c729cdefbc0102e0e406b945e2">decompress</a> (void *output, size_t size, <a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a> callback, void *userdata, size_t insize)</td></tr>
<tr class="memdesc:aceec72c729cdefbc0102e0e406b945e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress data. <a href="decompress_8h.html#aceec72c729cdefbc0102e0e406b945e2">More...</a><br /></td></tr>
<tr class="separator:aceec72c729cdefbc0102e0e406b945e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9fcd89e5e81327e098e0ba638b2d040"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#aa9fcd89e5e81327e098e0ba638b2d040">decompressV_LZSS</a> (const <a class="el" href="structdecompressIOVec.html">decompressIOVec</a> *iov, size_t iovcnt, <a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a> callback, void *userdata, size_t insize)</td></tr>
<tr class="memdesc:aa9fcd89e5e81327e098e0ba638b2d040"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress LZSS/LZ10. <a href="decompress_8h.html#aa9fcd89e5e81327e098e0ba638b2d040">More...</a><br /></td></tr>
<tr class="separator:aa9fcd89e5e81327e098e0ba638b2d040"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4925d56b946f8ccdcf5ab528cdccd0c6"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#a4925d56b946f8ccdcf5ab528cdccd0c6">decompress_LZSS</a> (void *output, size_t size, <a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a> callback, void *userdata, size_t insize)</td></tr>
<tr class="memdesc:a4925d56b946f8ccdcf5ab528cdccd0c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress LZSS/LZ10. <a href="decompress_8h.html#a4925d56b946f8ccdcf5ab528cdccd0c6">More...</a><br /></td></tr>
<tr class="separator:a4925d56b946f8ccdcf5ab528cdccd0c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7dbb269c5aa8759ea5eebfbf8ecf5a68"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#a7dbb269c5aa8759ea5eebfbf8ecf5a68">decompressV_LZ11</a> (const <a class="el" href="structdecompressIOVec.html">decompressIOVec</a> *iov, size_t iovcnt, <a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a> callback, void *userdata, size_t insize)</td></tr>
<tr class="memdesc:a7dbb269c5aa8759ea5eebfbf8ecf5a68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress LZ11. <a href="decompress_8h.html#a7dbb269c5aa8759ea5eebfbf8ecf5a68">More...</a><br /></td></tr>
<tr class="separator:a7dbb269c5aa8759ea5eebfbf8ecf5a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5893c39e2c01602c7b6cd2a928df7b4"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#ab5893c39e2c01602c7b6cd2a928df7b4">decompress_LZ11</a> (void *output, size_t size, <a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a> callback, void *userdata, size_t insize)</td></tr>
<tr class="memdesc:ab5893c39e2c01602c7b6cd2a928df7b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress LZ11. <a href="decompress_8h.html#ab5893c39e2c01602c7b6cd2a928df7b4">More...</a><br /></td></tr>
<tr class="separator:ab5893c39e2c01602c7b6cd2a928df7b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94caad1153dcc297b400858c37aac3c3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#a94caad1153dcc297b400858c37aac3c3">decompressV_Huff</a> (size_t bits, const <a class="el" href="structdecompressIOVec.html">decompressIOVec</a> *iov, size_t iovcnt, <a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a> callback, void *userdata, size_t insize)</td></tr>
<tr class="memdesc:a94caad1153dcc297b400858c37aac3c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress Huffman. <a href="decompress_8h.html#a94caad1153dcc297b400858c37aac3c3">More...</a><br /></td></tr>
<tr class="separator:a94caad1153dcc297b400858c37aac3c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d57a5f7c27992e96210d1316a043b94"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#a8d57a5f7c27992e96210d1316a043b94">decompress_Huff</a> (size_t bits, void *output, size_t size, <a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a> callback, void *userdata, size_t insize)</td></tr>
<tr class="memdesc:a8d57a5f7c27992e96210d1316a043b94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress Huffman. <a href="decompress_8h.html#a8d57a5f7c27992e96210d1316a043b94">More...</a><br /></td></tr>
<tr class="separator:a8d57a5f7c27992e96210d1316a043b94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a109b071a95bce3a2e4ea19b94c5d1b5f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#a109b071a95bce3a2e4ea19b94c5d1b5f">decompressV_RLE</a> (const <a class="el" href="structdecompressIOVec.html">decompressIOVec</a> *iov, size_t iovcnt, <a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a> callback, void *userdata, size_t insize)</td></tr>
<tr class="memdesc:a109b071a95bce3a2e4ea19b94c5d1b5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress run-length encoding. <a href="decompress_8h.html#a109b071a95bce3a2e4ea19b94c5d1b5f">More...</a><br /></td></tr>
<tr class="separator:a109b071a95bce3a2e4ea19b94c5d1b5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a2babed787a73655b49e1b29a456aad"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decompress_8h.html#a2a2babed787a73655b49e1b29a456aad">decompress_RLE</a> (void *output, size_t size, <a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a> callback, void *userdata, size_t insize)</td></tr>
<tr class="memdesc:a2a2babed787a73655b49e1b29a456aad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress run-length encoding. <a href="decompress_8h.html#a2a2babed787a73655b49e1b29a456aad">More...</a><br /></td></tr>
<tr class="separator:a2a2babed787a73655b49e1b29a456aad"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Decompression functions. </p>
</div><h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="af608dea9741e036c8219ca0acf41ca47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af608dea9741e036c8219ca0acf41ca47">&#9670;&nbsp;</a></span>decompressType</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47">decompressType</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Compression types. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="af608dea9741e036c8219ca0acf41ca47a7e88ffc0dd6b4591500ff8d06f24901d"></a>DECOMPRESS_DUMMY&#160;</td><td class="fielddoc"><p>Dummy compression. </p>
</td></tr>
<tr><td class="fieldname"><a id="af608dea9741e036c8219ca0acf41ca47a0ae27226b18f8697786ff436fecc2abb"></a>DECOMPRESS_LZSS&#160;</td><td class="fielddoc"><p>LZSS/LZ10 compression. </p>
</td></tr>
<tr><td class="fieldname"><a id="af608dea9741e036c8219ca0acf41ca47a1f5ccfe86c3c4d2efa980b1a40f2b94d"></a>DECOMPRESS_LZ10&#160;</td><td class="fielddoc"><p>LZSS/LZ10 compression. </p>
</td></tr>
<tr><td class="fieldname"><a id="af608dea9741e036c8219ca0acf41ca47a7f78c3240f1cc1b6ea07e9f8c5057e10"></a>DECOMPRESS_LZ11&#160;</td><td class="fielddoc"><p>LZ11 compression. </p>
</td></tr>
<tr><td class="fieldname"><a id="af608dea9741e036c8219ca0acf41ca47af85a1bd7a05035d44931e8ae2b7c959a"></a>DECOMPRESS_HUFF1&#160;</td><td class="fielddoc"><p>Huffman compression with 1-bit data. </p>
</td></tr>
<tr><td class="fieldname"><a id="af608dea9741e036c8219ca0acf41ca47a2c9180a08bf80fb3910795123607453a"></a>DECOMPRESS_HUFF2&#160;</td><td class="fielddoc"><p>Huffman compression with 2-bit data. </p>
</td></tr>
<tr><td class="fieldname"><a id="af608dea9741e036c8219ca0acf41ca47a29d334d516ddfdc7a7ace93270a95d72"></a>DECOMPRESS_HUFF3&#160;</td><td class="fielddoc"><p>Huffman compression with 3-bit data. </p>
</td></tr>
<tr><td class="fieldname"><a id="af608dea9741e036c8219ca0acf41ca47a149b900d1f0643108f3f987e30ddff1a"></a>DECOMPRESS_HUFF4&#160;</td><td class="fielddoc"><p>Huffman compression with 4-bit data. </p>
</td></tr>
<tr><td class="fieldname"><a id="af608dea9741e036c8219ca0acf41ca47a30ec47e273fc5b9dadcb98f28ff29e6f"></a>DECOMPRESS_HUFF5&#160;</td><td class="fielddoc"><p>Huffman compression with 5-bit data. </p>
</td></tr>
<tr><td class="fieldname"><a id="af608dea9741e036c8219ca0acf41ca47adcd62d63c577651263fb6d6240c2370d"></a>DECOMPRESS_HUFF6&#160;</td><td class="fielddoc"><p>Huffman compression with 6-bit data. </p>
</td></tr>
<tr><td class="fieldname"><a id="af608dea9741e036c8219ca0acf41ca47acfc8e3dda6f87a22010f8abdae8976a2"></a>DECOMPRESS_HUFF7&#160;</td><td class="fielddoc"><p>Huffman compression with 7-bit data. </p>
</td></tr>
<tr><td class="fieldname"><a id="af608dea9741e036c8219ca0acf41ca47a70bb6597010e5f3ae215eaa05b71f826"></a>DECOMPRESS_HUFF8&#160;</td><td class="fielddoc"><p>Huffman compression with 8-bit data. </p>
</td></tr>
<tr><td class="fieldname"><a id="af608dea9741e036c8219ca0acf41ca47a552ec2ffb0b59f738ead8790d726bba7"></a>DECOMPRESS_HUFF&#160;</td><td class="fielddoc"><p>Huffman compression with 8-bit data. </p>
</td></tr>
<tr><td class="fieldname"><a id="af608dea9741e036c8219ca0acf41ca47a7ab5e09ffe4b9d8dc8533e8b80cfc14a"></a>DECOMPRESS_RLE&#160;</td><td class="fielddoc"><p>Run-length encoding compression. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="aceec72c729cdefbc0102e0e406b945e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aceec72c729cdefbc0102e0e406b945e2">&#9670;&nbsp;</a></span>decompress()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool decompress </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>output</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>insize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Decompress data. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">output</td><td>Output buffer </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Output size limit </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>Data callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>User data passed to callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">insize</td><td>Size of userdata (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Whether succeeded </dd></dl>
</div>
</div>
<a id="a8d57a5f7c27992e96210d1316a043b94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d57a5f7c27992e96210d1316a043b94">&#9670;&nbsp;</a></span>decompress_Huff()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool decompress_Huff </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>bits</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>output</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>insize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Decompress Huffman. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">bits</td><td>Data size in bits (usually 4 or 8) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">output</td><td>Output buffer </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Output size limit </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>Data callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>User data passed to callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">insize</td><td>Size of userdata (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Whether succeeded </dd></dl>
</div>
</div>
<a id="ab5893c39e2c01602c7b6cd2a928df7b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5893c39e2c01602c7b6cd2a928df7b4">&#9670;&nbsp;</a></span>decompress_LZ11()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool decompress_LZ11 </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>output</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>insize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Decompress LZ11. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">output</td><td>Output buffer </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Output size limit </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>Data callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>User data passed to callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">insize</td><td>Size of userdata (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Whether succeeded </dd></dl>
</div>
</div>
<a id="a4925d56b946f8ccdcf5ab528cdccd0c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4925d56b946f8ccdcf5ab528cdccd0c6">&#9670;&nbsp;</a></span>decompress_LZSS()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool decompress_LZSS </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>output</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>insize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Decompress LZSS/LZ10. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">output</td><td>Output buffer </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Output size limit </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>Data callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>User data passed to callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">insize</td><td>Size of userdata (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Whether succeeded </dd></dl>
</div>
</div>
<a id="a2a2babed787a73655b49e1b29a456aad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a2babed787a73655b49e1b29a456aad">&#9670;&nbsp;</a></span>decompress_RLE()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool decompress_RLE </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>output</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>insize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Decompress run-length encoding. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">output</td><td>Output buffer </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Output size limit </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>Data callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>User data passed to callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">insize</td><td>Size of userdata (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Whether succeeded </dd></dl>
</div>
</div>
<a id="a55dc28982013508464dc397168ca5f19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55dc28982013508464dc397168ca5f19">&#9670;&nbsp;</a></span>decompressCallback_FD()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ssize_t decompressCallback_FD </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Decompression callback for file descriptors. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>Address of file descriptor </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Buffer to write into </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size to read from file descriptor </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of bytes read </dd></dl>
</div>
</div>
<a id="a6453066b1202aab9df9805f9bda717c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6453066b1202aab9df9805f9bda717c3">&#9670;&nbsp;</a></span>decompressCallback_Stdio()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ssize_t decompressCallback_Stdio </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Decompression callback for stdio FILE*. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>FILE* </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Buffer to write into </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size to read from file descriptor </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of bytes read </dd></dl>
</div>
</div>
<a id="a5de8b5325fcfa3ccf069ced93bb2615f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5de8b5325fcfa3ccf069ced93bb2615f">&#9670;&nbsp;</a></span>decompressHeader()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ssize_t decompressHeader </td>
<td>(</td>
<td class="paramtype"><a class="el" href="decompress_8h.html#af608dea9741e036c8219ca0acf41ca47">decompressType</a> *&#160;</td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>insize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Decode decompression header. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">type</td><td>Decompression type </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>Decompressed size </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>Data callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>User data passed to callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">insize</td><td>Size of userdata (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Bytes consumed </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">-1</td><td>error </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aa7547936f0d622823db1b9ee8ac53547"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7547936f0d622823db1b9ee8ac53547">&#9670;&nbsp;</a></span>decompressV()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool decompressV </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structdecompressIOVec.html">decompressIOVec</a> *&#160;</td>
<td class="paramname"><em>iov</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>iovcnt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>insize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Decompress data. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">iov</td><td>Output vector </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">iovcnt</td><td>Number of buffers </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>Data callback (see note) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>User data passed to callback (see note) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">insize</td><td>Size of userdata (see note) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Whether succeeded</dd></dl>
<dl class="section note"><dt>Note</dt><dd>If callback is null, userdata is a pointer to memory to read from, and insize is the size of that data. If callback is not null, userdata is passed to callback to fetch more data, and insize is unused. </dd></dl>
</div>
</div>
<a id="a94caad1153dcc297b400858c37aac3c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94caad1153dcc297b400858c37aac3c3">&#9670;&nbsp;</a></span>decompressV_Huff()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool decompressV_Huff </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>bits</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdecompressIOVec.html">decompressIOVec</a> *&#160;</td>
<td class="paramname"><em>iov</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>iovcnt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>insize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Decompress Huffman. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">bits</td><td>Data size in bits (usually 4 or 8) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">iov</td><td>Output vector </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">iovcnt</td><td>Number of buffers </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>Data callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>User data passed to callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">insize</td><td>Size of userdata (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Whether succeeded </dd></dl>
</div>
</div>
<a id="a7dbb269c5aa8759ea5eebfbf8ecf5a68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7dbb269c5aa8759ea5eebfbf8ecf5a68">&#9670;&nbsp;</a></span>decompressV_LZ11()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool decompressV_LZ11 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structdecompressIOVec.html">decompressIOVec</a> *&#160;</td>
<td class="paramname"><em>iov</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>iovcnt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>insize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Decompress LZ11. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">iov</td><td>Output vector </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">iovcnt</td><td>Number of buffers </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>Data callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>User data passed to callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">insize</td><td>Size of userdata (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Whether succeeded </dd></dl>
</div>
</div>
<a id="aa9fcd89e5e81327e098e0ba638b2d040"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9fcd89e5e81327e098e0ba638b2d040">&#9670;&nbsp;</a></span>decompressV_LZSS()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool decompressV_LZSS </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structdecompressIOVec.html">decompressIOVec</a> *&#160;</td>
<td class="paramname"><em>iov</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>iovcnt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>insize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Decompress LZSS/LZ10. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">iov</td><td>Output vector </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">iovcnt</td><td>Number of buffers </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>Data callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>User data passed to callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">insize</td><td>Size of userdata (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Whether succeeded </dd></dl>
</div>
</div>
<a id="a109b071a95bce3a2e4ea19b94c5d1b5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a109b071a95bce3a2e4ea19b94c5d1b5f">&#9670;&nbsp;</a></span>decompressV_RLE()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool decompressV_RLE </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structdecompressIOVec.html">decompressIOVec</a> *&#160;</td>
<td class="paramname"><em>iov</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>iovcnt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="decompress_8h.html#a82afe6b8cb1580641c2b7cc4afe10586">decompressCallback</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>insize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Decompress run-length encoding. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">iov</td><td>Output vector </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">iovcnt</td><td>Number of buffers </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>Data callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>User data passed to callback (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">insize</td><td>Size of userdata (see <a class="el" href="decompress_8h.html#aa7547936f0d622823db1b9ee8ac53547" title="Decompress data.">decompressV()</a>) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Whether succeeded </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>