<ahref="index__v3_8c.html">Go to the documentation of this file.</a><divclass="fragment"><divclass="line"><aid="l00001"name="l00001"></a><spanclass="lineno"> 1</span><spanclass="comment">/*</span></div>
<divclass="line"><aid="l00002"name="l00002"></a><spanclass="lineno"> 2</span><spanclass="comment"> * This file is part of the Aaru Data Preservation Suite.</span></div>
<divclass="line"><aid="l00005"name="l00005"></a><spanclass="lineno"> 5</span><spanclass="comment"> * This library is free software; you can redistribute it and/or modify</span></div>
<divclass="line"><aid="l00006"name="l00006"></a><spanclass="lineno"> 6</span><spanclass="comment"> * it under the terms of the GNU Lesser General Public License as</span></div>
<divclass="line"><aid="l00007"name="l00007"></a><spanclass="lineno"> 7</span><spanclass="comment"> * published by the Free Software Foundation; either version 2.1 of the</span></div>
<divclass="line"><aid="l00008"name="l00008"></a><spanclass="lineno"> 8</span><spanclass="comment"> * License, or (at your option) any later version.</span></div>
<divclass="line"><aid="l00010"name="l00010"></a><spanclass="lineno"> 10</span><spanclass="comment"> * This library is distributed in the hope that it will be useful, but</span></div>
<divclass="line"><aid="l00011"name="l00011"></a><spanclass="lineno"> 11</span><spanclass="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
<divclass="line"><aid="l00012"name="l00012"></a><spanclass="lineno"> 12</span><spanclass="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div>
<divclass="line"><aid="l00013"name="l00013"></a><spanclass="lineno"> 13</span><spanclass="comment"> * Lesser General Public License for more details.</span></div>
<divclass="line"><aid="l00015"name="l00015"></a><spanclass="lineno"> 15</span><spanclass="comment"> * You should have received a copy of the GNU Lesser General Public</span></div>
<divclass="line"><aid="l00016"name="l00016"></a><spanclass="lineno"> 16</span><spanclass="comment"> * License along with this library; if not, see <http://www.gnu.org/licenses/>.</span></div>
<divclass="line"><aid="l00114"name="l00114"></a><spanclass="lineno"> 114</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Could not allocate memory for index entries array."</span>);</div>
<divclass="line"><aid="l00119"name="l00119"></a><spanclass="lineno"> 119</span><spanclass="comment">// Read the index header</span></div>
<divclass="line"><aid="l00120"name="l00120"></a><spanclass="lineno"> 120</span><aclass="code hl_define"href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<spanclass="stringliteral">"Reading index header at position %llu"</span>, ctx-><aclass="code hl_variable"href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<aclass="code hl_variable"href="structAaruHeaderV2.html#a4ec4b1d593f5a0af19f6d7b8eaeada40">indexOffset</a>);</div>
<divclass="line"><aid="l00123"name="l00123"></a><spanclass="lineno"> 123</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Could not seek to index header at %llu."</span>, ctx-><aclass="code hl_variable"href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<aclass="code hl_variable"href="structAaruHeaderV2.html#a4ec4b1d593f5a0af19f6d7b8eaeada40">indexOffset</a>);</div>
<divclass="line"><aid="l00132"name="l00132"></a><spanclass="lineno"> 132</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Could not read index header at %llu."</span>, ctx-><aclass="code hl_variable"href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<aclass="code hl_variable"href="structAaruHeaderV2.html#a4ec4b1d593f5a0af19f6d7b8eaeada40">indexOffset</a>);</div>
<divclass="line"><aid="l00142"name="l00142"></a><spanclass="lineno"> 142</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Incorrect index identifier."</span>);</div>
<divclass="line"><aid="l00149"name="l00149"></a><spanclass="lineno"> 149</span><spanclass="keywordflow">for</span>(uint64_t i = 0; i < idx_header.<aclass="code hl_variable"href="structIndexHeader3.html#af05fe8e08e929aa0eab6b74638f22b74">entries</a>; i++)</div>
<divclass="line"><aid="l00153"name="l00153"></a><spanclass="lineno"> 153</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Could not read index entry %llu at %llu."</span>, (<spanclass="keywordtype">unsigned</span><spanclass="keywordtype">long</span><spanclass="keywordtype">long</span>)i, ctx-><aclass="code hl_variable"href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<aclass="code hl_variable"href="structAaruHeaderV2.html#a4ec4b1d593f5a0af19f6d7b8eaeada40">indexOffset</a>);</div>
<divclass="line"><aid="l00162"name="l00162"></a><spanclass="lineno"> 162</span><spanclass="comment">// If the entry is a subindex, we need to read its entries</span></div>
<divclass="line"><aid="l00175"name="l00175"></a><spanclass="lineno"> 175</span><aclass="code hl_define"href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<spanclass="stringliteral">"Read %llu index entries from index block at position %llu"</span>, (<spanclass="keywordtype">unsigned</span><spanclass="keywordtype">long</span><spanclass="keywordtype">long</span>)idx_header.<aclass="code hl_variable"href="structIndexHeader3.html#af05fe8e08e929aa0eab6b74638f22b74">entries</a>,</div>
<divclass="line"><aid="l00263"name="l00263"></a><spanclass="lineno"> 263</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Could not seek to subindex header at %llu."</span>, (<spanclass="keywordtype">unsigned</span><spanclass="keywordtype">long</span><spanclass="keywordtype">long</span>)subindex_entry-><aclass="code hl_variable"href="structIndexEntry.html#a854951a64192d7e4cdcfa6dd6fd2b3ea">offset</a>);</div>
<divclass="line"><aid="l00276"name="l00276"></a><spanclass="lineno"> 276</span><spanclass="comment">// Check if the subindex header is valid</span></div>
<divclass="line"><aid="l00287"name="l00287"></a><spanclass="lineno"> 287</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Subindex entry count %llu is too large to process."</span>, (<spanclass="keywordtype">unsigned</span><spanclass="keywordtype">long</span><spanclass="keywordtype">long</span>)subindex_header.<aclass="code hl_variable"href="structIndexHeader3.html#af05fe8e08e929aa0eab6b74638f22b74">entries</a>);</div>
<divclass="line"><aid="l00292"name="l00292"></a><spanclass="lineno"> 292</span><spanclass="comment">// Read each entry in the subindex and add it to the main index entries array</span></div>
<divclass="line"><aid="l00293"name="l00293"></a><spanclass="lineno"> 293</span><spanclass="keywordflow">for</span>(uint64_t i = 0; i < subindex_header.<aclass="code hl_variable"href="structIndexHeader3.html#af05fe8e08e929aa0eab6b74638f22b74">entries</a>; i++)</div>
<divclass="line"><aid="l00304"name="l00304"></a><spanclass="lineno"> 304</span><spanclass="comment">// If the entry is a subindex, we need to read its entries</span></div>
<divclass="line"><aid="l00425"name="l00425"></a><spanclass="lineno"> 425</span><spanclass="comment">// This will traverse all blocks and check their CRC64 without uncompressing them</span></div>
<divclass="line"><aid="l00426"name="l00426"></a><spanclass="lineno"> 426</span><aclass="code hl_define"href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<spanclass="stringliteral">"Checking index integrity at %llu."</span>, ctx-><aclass="code hl_variable"href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<aclass="code hl_variable"href="structAaruHeaderV2.html#a4ec4b1d593f5a0af19f6d7b8eaeada40">indexOffset</a>);</div>
<divclass="line"><aid="l00429"name="l00429"></a><spanclass="lineno"> 429</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Could not seek to index header at %llu."</span>, ctx-><aclass="code hl_variable"href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<aclass="code hl_variable"href="structAaruHeaderV2.html#a4ec4b1d593f5a0af19f6d7b8eaeada40">indexOffset</a>);</div>
<divclass="line"><aid="l00435"name="l00435"></a><spanclass="lineno"> 435</span><spanclass="comment">// Read the index header</span></div>
<divclass="line"><aid="l00436"name="l00436"></a><spanclass="lineno"> 436</span><aclass="code hl_define"href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<spanclass="stringliteral">"Reading index header at position %llu"</span>, ctx-><aclass="code hl_variable"href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<aclass="code hl_variable"href="structAaruHeaderV2.html#a4ec4b1d593f5a0af19f6d7b8eaeada40">indexOffset</a>);</div>
<divclass="line"><aid="l00441"name="l00441"></a><spanclass="lineno"> 441</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Could not read index header."</span>);</div>
<divclass="line"><aid="l00449"name="l00449"></a><spanclass="lineno"> 449</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Incorrect index identifier."</span>);</div>
<divclass="line"><aid="l00459"name="l00459"></a><spanclass="lineno"> 459</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Index entry count %llu is too large to process."</span>, (<spanclass="keywordtype">unsigned</span><spanclass="keywordtype">long</span><spanclass="keywordtype">long</span>)index_header.<aclass="code hl_variable"href="structIndexHeader3.html#af05fe8e08e929aa0eab6b74638f22b74">entries</a>);</div>
<divclass="line"><aid="l00473"name="l00473"></a><spanclass="lineno"> 473</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Cannot allocate memory for index entries."</span>);</div>
<divclass="line"><aid="l00483"name="l00483"></a><spanclass="lineno"> 483</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Could not read index entries."</span>);</div>
<divclass="line"><aid="l00513"name="l00513"></a><spanclass="lineno"> 513</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Failed to update index CRC."</span>);</div>
<divclass="line"><aid="l00528"name="l00528"></a><spanclass="lineno"> 528</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Failed to finalize index CRC."</span>);</div>
<divclass="line"><aid="l00538"name="l00538"></a><spanclass="lineno"> 538</span><spanclass="comment">// Due to how C# wrote it, it is effectively reversed</span></div>
<divclass="ttc"id="aconsts_8h_html_ac837e146bff4d0f3603e4a9e444358c6"><divclass="ttname"><ahref="consts_8h.html#ac837e146bff4d0f3603e4a9e444358c6">AARUF_VERSION_V1</a></div><divclass="ttdeci">#define AARUF_VERSION_V1</div><divclass="ttdoc">First on‑disk version (C# implementation).</div><divclass="ttdef"><b>Definition</b><ahref="consts_8h_source.html#l00071">consts.h:71</a></div></div>
<divclass="ttc"id="adecls_8h_html_a1fb4423a841ccd728e3ad0d028cbc9b4"><divclass="ttname"><ahref="decls_8h.html#a1fb4423a841ccd728e3ad0d028cbc9b4">aaruf_crc64_update</a></div><divclass="ttdeci">int aaruf_crc64_update(crc64_ctx *ctx, const uint8_t *data, uint32_t len)</div><divclass="ttdoc">Updates the CRC64 context with new data.</div><divclass="ttdef"><b>Definition</b><ahref="crc64_8c_source.html#l00055">crc64.c:55</a></div></div>
<divclass="ttc"id="adecls_8h_html_a4943569a8623eb2e3e0adc276c433097"><divclass="ttname"><ahref="decls_8h.html#a4943569a8623eb2e3e0adc276c433097">aaruf_crc64_free</a></div><divclass="ttdeci">void aaruf_crc64_free(crc64_ctx *ctx)</div><divclass="ttdoc">Frees a CRC64 context.</div><divclass="ttdef"><b>Definition</b><ahref="crc64_8c_source.html#l00155">crc64.c:155</a></div></div>
<divclass="ttc"id="adecls_8h_html_a66567ca64e31a687d4982cb254b45196"><divclass="ttname"><ahref="decls_8h.html#a66567ca64e31a687d4982cb254b45196">aaruf_crc64_init</a></div><divclass="ttdeci">crc64_ctx * aaruf_crc64_init()</div><divclass="ttdoc">Initializes a CRC64 context.</div><divclass="ttdef"><b>Definition</b><ahref="crc64_8c_source.html#l00032">crc64.c:32</a></div></div>
<divclass="ttc"id="adecls_8h_html_ae48cfb59c6585e9ffd4cd1a97044891f"><divclass="ttname"><ahref="decls_8h.html#ae48cfb59c6585e9ffd4cd1a97044891f">aaruf_crc64_final</a></div><divclass="ttdeci">int aaruf_crc64_final(crc64_ctx *ctx, uint64_t *crc)</div><divclass="ttdoc">Computes the final CRC64 value from the context.</div><divclass="ttdef"><b>Definition</b><ahref="crc64_8c_source.html#l00141">crc64.c:141</a></div></div>
<divclass="ttc"id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3a318acaf230a8ad091ef405caf7e4f411"><divclass="ttname"><ahref="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a318acaf230a8ad091ef405caf7e4f411">IndexBlock3</a></div><divclass="ttdeci">@ IndexBlock3</div><divclass="ttdoc">Block containing the index v3.</div><divclass="ttdef"><b>Definition</b><ahref="enums_8h_source.html#l00148">enums.h:148</a></div></div>
<divclass="ttc"id="aerrors_8h_html_a1d6e49f7e8a1fa489efa0a582e90b5de"><divclass="ttname"><ahref="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a></div><divclass="ttdeci">#define AARUF_STATUS_OK</div><divclass="ttdoc">Sector present and read without uncorrectable errors.</div><divclass="ttdef"><b>Definition</b><ahref="errors_8h_source.html#l00075">errors.h:75</a></div></div>
<divclass="ttc"id="aerrors_8h_html_a3459a04771fe04f8f77bfa90563a4375"><divclass="ttname"><ahref="errors_8h.html#a3459a04771fe04f8f77bfa90563a4375">AARUF_ERROR_CANNOT_READ_HEADER</a></div><divclass="ttdeci">#define AARUF_ERROR_CANNOT_READ_HEADER</div><divclass="ttdoc">Failed to read container header.</div><divclass="ttdef"><b>Definition</b><ahref="errors_8h_source.html#l00045">errors.h:45</a></div></div>
<divclass="ttc"id="aerrors_8h_html_ab6c57651868e0f35e3821680ebb2b17a"><divclass="ttname"><ahref="errors_8h.html#ab6c57651868e0f35e3821680ebb2b17a">AARUF_ERROR_CANNOT_READ_INDEX</a></div><divclass="ttdeci">#define AARUF_ERROR_CANNOT_READ_INDEX</div><divclass="ttdoc">Index block unreadable / truncated / bad identifier.</div><divclass="ttdef"><b>Definition</b><ahref="errors_8h_source.html#l00043">errors.h:43</a></div></div>
<divclass="ttc"id="aerrors_8h_html_abb63e240b11d790da83bd34507b57851"><divclass="ttname"><ahref="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</a></div><divclass="ttdeci">#define AARUF_ERROR_NOT_AARUFORMAT</div><divclass="ttdoc">Input file/stream failed magic or structural validation.</div><divclass="ttdef"><b>Definition</b><ahref="errors_8h_source.html#l00040">errors.h:40</a></div></div>
<divclass="ttc"id="aindex__v3_8c_html_ac85ad03ba0f06b8799d7fe056b87a18e"><divclass="ttname"><ahref="index__v3_8c.html#ac85ad03ba0f06b8799d7fe056b87a18e">add_subindex_entries</a></div><divclass="ttdeci">static bool add_subindex_entries(aaruformat_context *ctx, UT_array *index_entries, const IndexEntry *subindex_entry)</div><divclass="ttdoc">Adds entries from a subindex block (version 3) to the main index entries array.</div><divclass="ttdef"><b>Definition</b><ahref="#l00247">index_v3.c:247</a></div></div>
<divclass="ttc"id="aindex__v3_8c_html_ad7ed9250463c320c7bc8d83689bcfefb"><divclass="ttname"><ahref="index__v3_8c.html#ad7ed9250463c320c7bc8d83689bcfefb">verify_index_v3</a></div><divclass="ttdeci">int32_t verify_index_v3(aaruformat_context *ctx)</div><divclass="ttdoc">Verifies the integrity of an index block (version 3) in the image stream.</div><divclass="ttdef"><b>Definition</b><ahref="#l00408">index_v3.c:408</a></div></div>
<divclass="ttc"id="aindex__v3_8c_html_aff88fae9938d5f56318bfd7a455d5e94"><divclass="ttname"><ahref="index__v3_8c.html#aff88fae9938d5f56318bfd7a455d5e94">process_index_v3</a></div><divclass="ttdeci">UT_array * process_index_v3(aaruformat_context *ctx)</div><divclass="ttdoc">Processes an index block (version 3) from the image stream.</div><divclass="ttdef"><b>Definition</b><ahref="#l00098">index_v3.c:98</a></div></div>
<divclass="ttc"id="astructAaruHeaderV2_html_a4ec4b1d593f5a0af19f6d7b8eaeada40"><divclass="ttname"><ahref="structAaruHeaderV2.html#a4ec4b1d593f5a0af19f6d7b8eaeada40">AaruHeaderV2::indexOffset</a></div><divclass="ttdeci">uint64_t indexOffset</div><divclass="ttdoc">Absolute byte offset to primary index block (MUST be > 0; 0 => corrupt/unreadable).</div><divclass="ttdef"><b>Definition</b><ahref="header_8h_source.html#l00115">header.h:115</a></div></div>
<divclass="ttc"id="astructAaruHeaderV2_html_af79ca31bcd428d1a54ac25c30d09b7a7"><divclass="ttname"><ahref="structAaruHeaderV2.html#af79ca31bcd428d1a54ac25c30d09b7a7">AaruHeaderV2::imageMajorVersion</a></div><divclass="ttdeci">uint8_t imageMajorVersion</div><divclass="ttdoc">Container format major version.</div><divclass="ttdef"><b>Definition</b><ahref="header_8h_source.html#l00110">header.h:110</a></div></div>
<divclass="ttc"id="astructIndexEntry_html"><divclass="ttname"><ahref="structIndexEntry.html">IndexEntry</a></div><divclass="ttdoc">Single index entry describing a block's type, (optional) data classification, and file offset.</div><divclass="ttdef"><b>Definition</b><ahref="index_8h_source.html#l00108">index.h:109</a></div></div>
<divclass="ttc"id="astructIndexEntry_html_a4b5c7115ac83019c3f77c6f047e5f75e"><divclass="ttname"><ahref="structIndexEntry.html#a4b5c7115ac83019c3f77c6f047e5f75e">IndexEntry::blockType</a></div><divclass="ttdeci">uint32_t blockType</div><divclass="ttdoc">Block identifier of the referenced block (value from BlockType).</div><divclass="ttdef"><b>Definition</b><ahref="index_8h_source.html#l00110">index.h:110</a></div></div>
<divclass="ttc"id="astructIndexEntry_html_a854951a64192d7e4cdcfa6dd6fd2b3ea"><divclass="ttname"><ahref="structIndexEntry.html#a854951a64192d7e4cdcfa6dd6fd2b3ea">IndexEntry::offset</a></div><divclass="ttdeci">uint64_t offset</div><divclass="ttdoc">Absolute byte offset in the image where the referenced block header begins.</div><divclass="ttdef"><b>Definition</b><ahref="index_8h_source.html#l00112">index.h:112</a></div></div>
<divclass="ttc"id="astructIndexHeader3_html_a482f94fd93019dd2879d984bc8eecf67"><divclass="ttname"><ahref="structIndexHeader3.html#a482f94fd93019dd2879d984bc8eecf67">IndexHeader3::identifier</a></div><divclass="ttdeci">uint32_t identifier</div><divclass="ttdoc">Block identifier (must be BlockType::IndexBlock3).</div><divclass="ttdef"><b>Definition</b><ahref="index_8h_source.html#l00094">index.h:94</a></div></div>
<divclass="ttc"id="astructIndexHeader3_html_a7291ac63956c468bf48aa17d24d3f7b2"><divclass="ttname"><ahref="structIndexHeader3.html#a7291ac63956c468bf48aa17d24d3f7b2">IndexHeader3::crc64</a></div><divclass="ttdeci">uint64_t crc64</div><divclass="ttdoc">CRC64-ECMA of the local entries array (does NOT cover subindexes or previous chains).</div><divclass="ttdef"><b>Definition</b><ahref="index_8h_source.html#l00096">index.h:96</a></div></div>
<divclass="ttc"id="astructIndexHeader3_html_af05fe8e08e929aa0eab6b74638f22b74"><divclass="ttname"><ahref="structIndexHeader3.html#af05fe8e08e929aa0eab6b74638f22b74">IndexHeader3::entries</a></div><divclass="ttdeci">uint64_t entries</div><divclass="ttdoc">Number of IndexEntry records that follow in this (sub)index block.</div><divclass="ttdef"><b>Definition</b><ahref="index_8h_source.html#l00095">index.h:95</a></div></div>
<divclass="ttc"id="astructaaruformat__context_html"><divclass="ttname"><ahref="structaaruformat__context.html">aaruformat_context</a></div><divclass="ttdoc">Master context representing an open or in‑creation Aaru image.</div><divclass="ttdef"><b>Definition</b><ahref="context_8h_source.html#l00171">context.h:172</a></div></div>
<divclass="ttc"id="astructcrc64__ctx_html"><divclass="ttname"><ahref="structcrc64__ctx.html">crc64_ctx</a></div><divclass="ttdoc">Minimal ECMA-182 CRC64 incremental state container (running value only).</div><divclass="ttdef"><b>Definition</b><ahref="crc64_8h_source.html#l00055">crc64.h:56</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<divid="nav-path"class="navpath"><!-- id is needed for treeview function! -->
<liclass="footer">Generated by <ahref="https://www.doxygen.org/index.html"><imgclass="footer"src="doxygen.svg"width="104"height="31"alt="doxygen"/></a> 1.14.0 </li>