<ahref="erasure__internal_8h.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="ttc"id="adata_8h_html"><divclass="ttname"><ahref="data_8h.html">data.h</a></div><divclass="ttdoc">On-disk layout structures for data-bearing and geometry blocks.</div></div>
<divclass="ttc"id="aerasure__internal_8h_html_a18f424702fcd85725ee26c1cf7e253db"><divclass="ttname"><ahref="erasure__internal_8h.html#a18f424702fcd85725ee26c1cf7e253db">ec_load_ecmb</a></div><divclass="ttdeci">void ec_load_ecmb(aaruformat_context *ctx)</div><divclass="ttdoc">Try to load the ECMB from the recovery footer at EOF.</div><divclass="ttdef"><b>Definition</b><ahref="erasure_8c_source.html#l01046">erasure.c:1046</a></div></div>
<divclass="ttc"id="aerasure__internal_8h_html_a38a12ac5d36e23b28d2f110906b14126"><divclass="ttname"><ahref="erasure__internal_8h.html#a38a12ac5d36e23b28d2f110906b14126">ec_finalize</a></div><divclass="ttdeci">void ec_finalize(aaruformat_context *ctx)</div><divclass="ttdoc">Flush all partial data stripes and write parity for all groups + ECMB + recovery footer.</div><divclass="ttdef"><b>Definition</b><ahref="erasure_8c_source.html#l00585">erasure.c:585</a></div></div>
<divclass="ttc"id="aerasure__internal_8h_html_a41514b5f6f31a9a2207f2807da831e26"><divclass="ttname"><ahref="erasure__internal_8h.html#a41514b5f6f31a9a2207f2807da831e26">ec_recover_ddt_block</a></div><divclass="ttdeci">int32_t ec_recover_ddt_block(aaruformat_context *ctx, uint64_t block_offset, uint8_t **recovered_data, uint32_t *recovered_size)</div><divclass="ttdoc">Attempt to recover a DDT secondary block at a given file offset.</div><divclass="ttdef"><b>Definition</b><ahref="erasure_8c_source.html#l00918">erasure.c:918</a></div></div>
<divclass="ttc"id="aerasure__internal_8h_html_a676c380c73d5adf73afd7613ec06b29d"><divclass="ttname"><ahref="erasure__internal_8h.html#a676c380c73d5adf73afd7613ec06b29d">ec_accumulate_data_block</a></div><divclass="ttdeci">void ec_accumulate_data_block(aaruformat_context *ctx, const BlockHeader *block_header, const uint8_t *lzma_props, const uint8_t *payload, uint32_t payload_size, uint64_t file_offset)</div><divclass="ttdoc">Accumulate parity for a data block that was just written to disk.</div><divclass="ttdef"><b>Definition</b><ahref="erasure_8c_source.html#l00209">erasure.c:209</a></div></div>
<divclass="ttc"id="aerasure__internal_8h_html_a7a9ac507738cdf72e951f152edd4d233"><divclass="ttname"><ahref="erasure__internal_8h.html#a7a9ac507738cdf72e951f152edd4d233">ec_recover_data_block</a></div><divclass="ttdeci">int32_t ec_recover_data_block(aaruformat_context *ctx, uint64_t block_offset, uint64_t offset, uint8_t *data, uint32_t *length, uint8_t sector_status)</div><divclass="ttdoc">Attempt to recover a data block that failed decompression or CRC verification.</div><divclass="ttdef"><b>Definition</b><ahref="erasure_8c_source.html#l01303">erasure.c:1303</a></div></div>
<divclass="ttc"id="aerasure__internal_8h_html_aa17442a11d3d3ef4b51b5129eed19b45"><divclass="ttname"><ahref="erasure__internal_8h.html#aa17442a11d3d3ef4b51b5129eed19b45">ec_recover_meta_block</a></div><divclass="ttdeci">int32_t ec_recover_meta_block(aaruformat_context *ctx, uint64_t block_offset, uint8_t **recovered_data, uint32_t *recovered_size)</div><divclass="ttdoc">Attempt to recover a metadata/media-tag block at a given file offset.</div><divclass="ttdef"><b>Definition</b><ahref="erasure_8c_source.html#l00909">erasure.c:909</a></div></div>
<divclass="ttc"id="aerasure__internal_8h_html_aa258c90d05ad57fc4c378679e5187e48"><divclass="ttname"><ahref="erasure__internal_8h.html#aa258c90d05ad57fc4c378679e5187e48">ec_flush_data_stripe</a></div><divclass="ttdeci">void ec_flush_data_stripe(aaruformat_context *ctx, uint32_t slot)</div><divclass="ttdoc">Write M parity blocks for a completed data stripe slot and record the stripe descriptor.</div><divclass="ttdef"><b>Definition</b><ahref="erasure_8c_source.html#l00323">erasure.c:323</a></div></div>
<divclass="ttc"id="aerasure__internal_8h_html_ae5fe558b49013df6e932278061a2ab53"><divclass="ttname"><ahref="erasure__internal_8h.html#ae5fe558b49013df6e932278061a2ab53">ec_free</a></div><divclass="ttdeci">void ec_free(aaruformat_context *ctx)</div><divclass="ttdoc">Free all erasure coding state from the context.</div><divclass="ttdef"><b>Definition</b><ahref="erasure_8c_source.html#l00934">erasure.c:934</a></div></div>
<divclass="ttc"id="aerasure__internal_8h_html_af7d7ad06ff421cd43197434e2999f2d7"><divclass="ttname"><ahref="erasure__internal_8h.html#af7d7ad06ff421cd43197434e2999f2d7">ec_recover_raw_block</a></div><divclass="ttdeci">int32_t ec_recover_raw_block(aaruformat_context *ctx, uint64_t block_offset, uint8_t **recovered_data, uint32_t *recovered_size, void *stripes, uint32_t stripe_count, void *lookup, uint16_t group_K, uint16_t group_M, uint32_t group_shard_size)</div><divclass="ttdoc">Attempt to recover a raw block at a given file offset using a specified stripe group.</div><divclass="ttdef"><b>Definition</b><ahref="erasure_8c_source.html#l00827">erasure.c:827</a></div></div>
<divclass="ttc"id="astructBlockHeader_html"><divclass="ttname"><ahref="structBlockHeader.html">BlockHeader</a></div><divclass="ttdoc">Header preceding the compressed data payload of a data block (BlockType::DataBlock).</div><divclass="ttdef"><b>Definition</b><ahref="data_8h_source.html#l00070">data.h:71</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#l00177">context.h:178</a></div></div>
<liclass="footer">Generated by <ahref="https://www.doxygen.org/index.html"><imgclass="footer"src="doxygen.svg"width="104"height="31"alt="doxygen"/></a> 1.18.0 </li>