<ahref="open_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="l00173"name="l00173"></a><spanclass="lineno"> 173</span><aclass="code hl_define"href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<spanclass="stringliteral">"Reading header at position 0"</span>);</div>
<divclass="line"><aid="l00200"name="l00200"></a><spanclass="lineno"> 200</span><aclass="code hl_define"href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<spanclass="stringliteral">"Reading new header version at position 0"</span>);</div>
<divclass="line"><aid="l00215"name="l00215"></a><spanclass="lineno"> 215</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Incompatible AaruFormat version %d.%d found, maximum supported is %d.%d"</span>, ctx-><aclass="code hl_variable"href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<aclass="code hl_variable"href="structAaruHeaderV2.html#af79ca31bcd428d1a54ac25c30d09b7a7">imageMajorVersion</a>,</div>
<divclass="line"><aid="l00243"name="l00243"></a><spanclass="lineno"> 243</span><spanclass="comment">// Handle application name based on image version</span></div>
<divclass="line"><aid="l00248"name="l00248"></a><spanclass="lineno"> 248</span><spanclass="comment">// Version 2+: application name is UTF-8, direct copy</span></div>
<divclass="line"><aid="l00249"name="l00249"></a><spanclass="lineno"> 249</span><aclass="code hl_define"href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<spanclass="stringliteral">"Converting application name (v2+): UTF-8 direct copy"</span>);</div>
<divclass="line"><aid="l00256"name="l00256"></a><spanclass="lineno"> 256</span><spanclass="comment">// Version 1: application name is UTF-16LE, convert by taking every other byte</span></div>
<divclass="line"><aid="l00257"name="l00257"></a><spanclass="lineno"> 257</span><aclass="code hl_define"href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<spanclass="stringliteral">"Converting application name (v1): UTF-16LE to ASCII"</span>);</div>
<divclass="line"><aid="l00260"name="l00260"></a><spanclass="lineno"> 260</span><spanclass="comment">// Take the low byte, skip the high byte (assuming it's 0x00 for ASCII)</span></div>
<divclass="line"><aid="l00269"name="l00269"></a><spanclass="lineno"> 269</span><spanclass="comment">// Set application version string directly in the fixed-size array</span></div>
<divclass="line"><aid="l00274"name="l00274"></a><spanclass="lineno"> 274</span><spanclass="comment">// Set image version string directly in the fixed-size array</span></div>
<divclass="line"><aid="l00280"name="l00280"></a><spanclass="lineno"> 280</span><spanclass="comment">// Read the index header</span></div>
<divclass="line"><aid="l00281"name="l00281"></a><spanclass="lineno"> 281</span><aclass="code hl_define"href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<spanclass="stringliteral">"Reading index header at position %"</span> PRIu64, 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="l00305"name="l00305"></a><spanclass="lineno"> 305</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Could not read index header or incorrect identifier %4.4s"</span>, (<spanclass="keywordtype">char</span> *)&signature);</div>
<divclass="line"><aid="l00322"name="l00322"></a><spanclass="lineno"> 322</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Could not process index."</span>);</div>
<divclass="line"><aid="l00336"name="l00336"></a><spanclass="lineno"> 336</span><aclass="code hl_define"href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<spanclass="stringliteral">"Block type %4.4s with data type %d is indexed to be at %"</span> PRIu64 <spanclass="stringliteral">""</span>, (<spanclass="keywordtype">char</span> *)&entry-><aclass="code hl_variable"href="structIndexEntry.html#a4b5c7115ac83019c3f77c6f047e5f75e">blockType</a>,</div>
<divclass="line"><aid="l00349"name="l00349"></a><spanclass="lineno"> 349</span><aclass="code hl_define"href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<spanclass="stringliteral">"Could not seek to %"</span> PRIu64 <spanclass="stringliteral">" as indicated by index entry %d, continuing..."</span>, entry-><aclass="code hl_variable"href="structIndexEntry.html#a854951a64192d7e4cdcfa6dd6fd2b3ea">offset</a>, i);</div>
<divclass="line"><aid="l00354"name="l00354"></a><spanclass="lineno"> 354</span><aclass="code hl_define"href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<spanclass="stringliteral">"Processing block type %4.4s with data type %d at position %"</span> PRIu64 <spanclass="stringliteral">""</span>, (<spanclass="keywordtype">char</span> *)&entry-><aclass="code hl_variable"href="structIndexEntry.html#a4b5c7115ac83019c3f77c6f047e5f75e">blockType</a>,</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">"Unhandled block type %4.4s with data type %d is indexed to be at %"</span> PRIu64 <spanclass="stringliteral">""</span>,</div>
<divclass="line"><aid="l00446"name="l00446"></a><spanclass="lineno"> 446</span><aclass="code hl_define"href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<spanclass="stringliteral">"Could not find user data deduplication table, aborting..."</span>);</div>
<divclass="ttc"id="aconsts_8h_html_ad2fdced5805aa0364f1c5b073f81dd76"><divclass="ttname"><ahref="consts_8h.html#ad2fdced5805aa0364f1c5b073f81dd76">AARUF_VERSION_V2</a></div><divclass="ttdeci">#define AARUF_VERSION_V2</div><divclass="ttdoc">Second on‑disk version (C implementation).</div><divclass="ttdef"><b>Definition</b><ahref="consts_8h_source.html#l00075">consts.h:75</a></div></div>
<divclass="ttc"id="aconsts_8h_html_adbbd4387273589f1c76a5f5786607013"><divclass="ttname"><ahref="consts_8h.html#adbbd4387273589f1c76a5f5786607013">AARUF_VERSION</a></div><divclass="ttdeci">#define AARUF_VERSION</div><divclass="ttdoc">Current image format major version (incompatible changes bump this).</div><divclass="ttdef"><b>Definition</b><ahref="consts_8h_source.html#l00068">consts.h:68</a></div></div>
<divclass="ttc"id="adecls_8h_html_a6823e139f81a9dfd08efcb0e9b213a49"><divclass="ttname"><ahref="decls_8h.html#a6823e139f81a9dfd08efcb0e9b213a49">aaruf_close</a></div><divclass="ttdeci">int aaruf_close(void *context)</div><divclass="ttdoc">Close an Aaru image context, flushing pending data structures and releasing resources.</div><divclass="ttdef"><b>Definition</b><ahref="close_8c_source.html#l03995">close.c:3995</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#l00147">enums.h:147</a></div></div>
<divclass="ttc"id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3a60609bbcd07339a8bf589e66ef4a3041"><divclass="ttname"><ahref="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a60609bbcd07339a8bf589e66ef4a3041">TapePartitionBlock</a></div><divclass="ttdeci">@ TapePartitionBlock</div><divclass="ttdoc">Block containing list of partitions for a tape image.</div><divclass="ttdef"><b>Definition</b><ahref="enums_8h_source.html#l00158">enums.h:158</a></div></div>
<divclass="ttc"id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3a6ee3c4c583df36e3dfe796593c1e9439"><divclass="ttname"><ahref="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a6ee3c4c583df36e3dfe796593c1e9439">IndexBlock2</a></div><divclass="ttdeci">@ IndexBlock2</div><divclass="ttdoc">Block containing the index v2.</div><divclass="ttdef"><b>Definition</b><ahref="enums_8h_source.html#l00146">enums.h:146</a></div></div>
<divclass="ttc"id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3a8ac77889f0c345ed861ed653a3063032"><divclass="ttname"><ahref="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a8ac77889f0c345ed861ed653a3063032">AaruMetadataJsonBlock</a></div><divclass="ttdeci">@ AaruMetadataJsonBlock</div><divclass="ttdoc">Block containing JSON version of Aaru Metadata.</div><divclass="ttdef"><b>Definition</b><ahref="enums_8h_source.html#l00159">enums.h:159</a></div></div>
<divclass="ttc"id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3aa90947995922dcd8b27c998978aba359"><divclass="ttname"><ahref="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3aa90947995922dcd8b27c998978aba359">CicmBlock</a></div><divclass="ttdeci">@ CicmBlock</div><divclass="ttdoc">Block containing CICM XML metadata.</div><divclass="ttdef"><b>Definition</b><ahref="enums_8h_source.html#l00151">enums.h:151</a></div></div>
<divclass="ttc"id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3ab8d63dc690b2ba82f066fdc31ab5adad"><divclass="ttname"><ahref="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ab8d63dc690b2ba82f066fdc31ab5adad">IndexBlock</a></div><divclass="ttdeci">@ IndexBlock</div><divclass="ttdoc">Block containing the index (v1).</div><divclass="ttdef"><b>Definition</b><ahref="enums_8h_source.html#l00145">enums.h:145</a></div></div>
<divclass="ttc"id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3aba4d0f50b26af1d0292daaa0d70feacf"><divclass="ttname"><ahref="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3aba4d0f50b26af1d0292daaa0d70feacf">DeDuplicationTable2</a></div><divclass="ttdeci">@ DeDuplicationTable2</div><divclass="ttdoc">Block containing a deduplication table v2.</div><divclass="ttdef"><b>Definition</b><ahref="enums_8h_source.html#l00143">enums.h:143</a></div></div>
<divclass="ttc"id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3ac3a117f2498bf736a76d5d3a3830540a"><divclass="ttname"><ahref="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ac3a117f2498bf736a76d5d3a3830540a">TapeFileBlock</a></div><divclass="ttdeci">@ TapeFileBlock</div><divclass="ttdoc">Block containing list of files for a tape image.</div><divclass="ttdef"><b>Definition</b><ahref="enums_8h_source.html#l00157">enums.h:157</a></div></div>
<divclass="ttc"id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3ac9f1e20a51c73f238aa322e180c42bd4"><divclass="ttname"><ahref="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ac9f1e20a51c73f238aa322e180c42bd4">DeDuplicationTable</a></div><divclass="ttdeci">@ DeDuplicationTable</div><divclass="ttdoc">Block containing a deduplication table (v1).</div><divclass="ttdef"><b>Definition</b><ahref="enums_8h_source.html#l00142">enums.h:142</a></div></div>
<divclass="ttc"id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3ad33812deb344562478c4e0d208a114db"><divclass="ttname"><ahref="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad33812deb344562478c4e0d208a114db">DumpHardwareBlock</a></div><divclass="ttdeci">@ DumpHardwareBlock</div><divclass="ttdoc">Block containing an array of hardware used to create the image.</div><divclass="ttdef"><b>Definition</b><ahref="enums_8h_source.html#l00156">enums.h:156</a></div></div>
<divclass="ttc"id="aenums_8h_html_abaa37b51ab0a4cc3d5d1a0b4820c8466ad45ebea105994c5fe86200f36d9e6ccd"><divclass="ttname"><ahref="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466ad45ebea105994c5fe86200f36d9e6ccd">BlockMedia</a></div><divclass="ttdeci">@ BlockMedia</div><divclass="ttdoc">Media that is physically block-based or abstracted like that.</div><divclass="ttdef"><b>Definition</b><ahref="enums_8h_source.html#l00219">enums.h:219</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="aheader_8h_html_ab17964dacc36dca03ec5e75aa40a4502"><divclass="ttname"><ahref="header_8h.html#ab17964dacc36dca03ec5e75aa40a4502">AARU_HEADER_APP_NAME_LEN</a></div><divclass="ttdeci">#define AARU_HEADER_APP_NAME_LEN</div><divclass="ttdoc">Size in bytes (UTF-16LE) of application name field (32 UTF-16 code units).</div><divclass="ttdef"><b>Definition</b><ahref="header_8h_source.html#l00059">header.h:59</a></div></div>
<divclass="ttc"id="ainternal_8h_html_a0e2cfc858c0551bc9bef11d5bdb85aac"><divclass="ttname"><ahref="internal_8h.html#a0e2cfc858c0551bc9bef11d5bdb85aac">process_dumphw_block</a></div><divclass="ttdeci">void process_dumphw_block(aaruformat_context *ctx, const IndexEntry *entry)</div><divclass="ttdoc">Processes a dump hardware block from the image stream.</div><divclass="ttdef"><b>Definition</b><ahref="blocks_2dump_8c_source.html#l00108">dump.c:108</a></div></div>
<divclass="ttc"id="ainternal_8h_html_a1baad6508d1cde5a712794e956fb3d3c"><divclass="ttname"><ahref="internal_8h.html#a1baad6508d1cde5a712794e956fb3d3c">process_index_v2</a></div><divclass="ttdeci">UT_array * process_index_v2(aaruformat_context *ctx)</div><divclass="ttdoc">Processes an index block (version 2) from the image stream.</div><divclass="ttdef"><b>Definition</b><ahref="index__v2_8c_source.html#l00081">index_v2.c:81</a></div></div>
<divclass="ttc"id="ainternal_8h_html_a1caeae710ee5e1dd356e43b3b659e9c0"><divclass="ttname"><ahref="internal_8h.html#a1caeae710ee5e1dd356e43b3b659e9c0">process_ddt_v2</a></div><divclass="ttdeci">int32_t process_ddt_v2(aaruformat_context *ctx, IndexEntry *entry, bool *found_user_data_ddt)</div><divclass="ttdoc">Processes a DDT v2 block from the image stream.</div><divclass="ttdef"><b>Definition</b><ahref="ddt__v2_8c_source.html#l00096">ddt_v2.c:96</a></div></div>
<divclass="ttc"id="ainternal_8h_html_a28d844a06cecbbf436d825a3c99ff0eb"><divclass="ttname"><ahref="internal_8h.html#a28d844a06cecbbf436d825a3c99ff0eb">process_data_block</a></div><divclass="ttdeci">int32_t process_data_block(aaruformat_context *ctx, IndexEntry *entry)</div><divclass="ttdoc">Processes a data block from the image stream.</div><divclass="ttdef"><b>Definition</b><ahref="data_8c_source.html#l00071">data.c:71</a></div></div>
<divclass="ttc"id="ainternal_8h_html_a375a516fdf6f81e997365d93b21f6708"><divclass="ttname"><ahref="internal_8h.html#a375a516fdf6f81e997365d93b21f6708">process_tracks_block</a></div><divclass="ttdeci">void process_tracks_block(aaruformat_context *ctx, const IndexEntry *entry)</div><divclass="ttdoc">Parse and integrate a Tracks block from the image stream into the context.</div><divclass="ttdef"><b>Definition</b><ahref="optical_8c_source.html#l00111">optical.c:111</a></div></div>
<divclass="ttc"id="ainternal_8h_html_a43974d4c183240be30d49ff09ef7b8c2"><divclass="ttname"><ahref="internal_8h.html#a43974d4c183240be30d49ff09ef7b8c2">process_metadata_block</a></div><divclass="ttdeci">void process_metadata_block(aaruformat_context *ctx, const IndexEntry *entry)</div><divclass="ttdoc">Processes a metadata block from the image stream.</div><divclass="ttdef"><b>Definition</b><ahref="blocks_2metadata_8c_source.html#l00035">metadata.c:35</a></div></div>
<divclass="ttc"id="ainternal_8h_html_a565eace88f86c500249be1f2a89a1c60"><divclass="ttname"><ahref="internal_8h.html#a565eace88f86c500249be1f2a89a1c60">process_checksum_block</a></div><divclass="ttdeci">void process_checksum_block(aaruformat_context *ctx, const IndexEntry *entry)</div><divclass="ttdoc">Processes a checksum block from the image stream.</div><divclass="ttdef"><b>Definition</b><ahref="checksum_8c_source.html#l00039">checksum.c:39</a></div></div>
<divclass="ttc"id="ainternal_8h_html_a5d3b1092abc36a27a441a01a8a0b3b48"><divclass="ttname"><ahref="internal_8h.html#a5d3b1092abc36a27a441a01a8a0b3b48">process_index_v1</a></div><divclass="ttdeci">UT_array * process_index_v1(aaruformat_context *ctx)</div><divclass="ttdoc">Processes an index block (version 1) from the image stream.</div><divclass="ttdef"><b>Definition</b><ahref="index__v1_8c_source.html#l00079">index_v1.c:79</a></div></div>
<divclass="ttc"id="ainternal_8h_html_a5e0397faed8aea27c5a6a3881875de54"><divclass="ttname"><ahref="internal_8h.html#a5e0397faed8aea27c5a6a3881875de54">process_cicm_block</a></div><divclass="ttdeci">void process_cicm_block(aaruformat_context *ctx, const IndexEntry *entry)</div><divclass="ttdoc">Processes a CICM XML metadata block from the image stream.</div><divclass="ttdef"><b>Definition</b><ahref="blocks_2metadata_8c_source.html#l00306">metadata.c:306</a></div></div>
<divclass="ttc"id="ainternal_8h_html_a81d410de6727d95a85b827067e1a8bc6"><divclass="ttname"><ahref="internal_8h.html#a81d410de6727d95a85b827067e1a8bc6">process_geometry_block</a></div><divclass="ttdeci">void process_geometry_block(aaruformat_context *ctx, const IndexEntry *entry)</div><divclass="ttdoc">Processes a logical geometry block from the image stream.</div><divclass="ttdef"><b>Definition</b><ahref="blocks_2metadata_8c_source.html#l00246">metadata.c:246</a></div></div>
<divclass="ttc"id="ainternal_8h_html_a829bbac3c17b60efd8f93188a8de8278"><divclass="ttname"><ahref="internal_8h.html#a829bbac3c17b60efd8f93188a8de8278">process_tape_files_block</a></div><divclass="ttdeci">void process_tape_files_block(aaruformat_context *ctx, const IndexEntry *entry)</div><divclass="ttdoc">Processes a tape file metadata block from the image stream.</div><divclass="ttdef"><b>Definition</b><ahref="tape_8c_source.html#l00126">tape.c:126</a></div></div>
<divclass="ttc"id="ainternal_8h_html_a84003ec881425a7b28ec24cb48d19f02"><divclass="ttname"><ahref="internal_8h.html#a84003ec881425a7b28ec24cb48d19f02">process_aaru_metadata_json_block</a></div><divclass="ttdeci">void process_aaru_metadata_json_block(aaruformat_context *ctx, const IndexEntry *entry)</div><divclass="ttdoc">Processes an Aaru metadata JSON block from the image stream during image opening.</div><divclass="ttdef"><b>Definition</b><ahref="blocks_2metadata_8c_source.html#l00470">metadata.c:470</a></div></div>
<divclass="ttc"id="ainternal_8h_html_aa76718b0402b1a28be3d563d5e62028e"><divclass="ttname"><ahref="internal_8h.html#aa76718b0402b1a28be3d563d5e62028e">process_tape_partitions_block</a></div><divclass="ttdeci">void process_tape_partitions_block(aaruformat_context *ctx, const IndexEntry *entry)</div><divclass="ttdoc">Processes a tape partition metadata block from the image stream.</div><divclass="ttdef"><b>Definition</b><ahref="tape_8c_source.html#l00346">tape.c:346</a></div></div>
<divclass="ttc"id="ainternal_8h_html_abaf38090f967423898b99e0455751c07"><divclass="ttname"><ahref="internal_8h.html#abaf38090f967423898b99e0455751c07">process_ddt_v1</a></div><divclass="ttdeci">int32_t process_ddt_v1(aaruformat_context *ctx, IndexEntry *entry, bool *found_user_data_ddt)</div><divclass="ttdoc">Processes a DDT v1 block from the image stream.</div><divclass="ttdef"><b>Definition</b><ahref="ddt__v1_8c_source.html#l00085">ddt_v1.c:85</a></div></div>
<divclass="ttc"id="ainternal_8h_html_aff88fae9938d5f56318bfd7a455d5e94"><divclass="ttname"><ahref="internal_8h.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="index__v3_8c_source.html#l00098">index_v3.c:98</a></div></div>
<divclass="ttc"id="astructAaruHeaderV2_html_a1c26feafd945328f8f1854b523a0f03c"><divclass="ttname"><ahref="structAaruHeaderV2.html#a1c26feafd945328f8f1854b523a0f03c">AaruHeaderV2::applicationMajorVersion</a></div><divclass="ttdeci">uint8_t applicationMajorVersion</div><divclass="ttdoc">Creator application major version.</div><divclass="ttdef"><b>Definition</b><ahref="header_8h_source.html#l00112">header.h:112</a></div></div>
<divclass="ttc"id="astructAaruHeaderV2_html_a45bc7e2afc9008ce6f4ae1dba93bdac3"><divclass="ttname"><ahref="structAaruHeaderV2.html#a45bc7e2afc9008ce6f4ae1dba93bdac3">AaruHeaderV2::lastWrittenTime</a></div><divclass="ttdeci">int64_t lastWrittenTime</div><divclass="ttdoc">Last modification FILETIME (100 ns since 1601-01-01 UTC).</div><divclass="ttdef"><b>Definition</b><ahref="header_8h_source.html#l00117">header.h:117</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_a5ae79accbb8ba2762d01a63ad334ee60"><divclass="ttname"><ahref="structAaruHeaderV2.html#a5ae79accbb8ba2762d01a63ad334ee60">AaruHeaderV2::applicationMinorVersion</a></div><divclass="ttdeci">uint8_t applicationMinorVersion</div><divclass="ttdoc">Creator application minor / patch version.</div><divclass="ttdef"><b>Definition</b><ahref="header_8h_source.html#l00113">header.h:113</a></div></div>
<divclass="ttc"id="astructAaruHeaderV2_html_a81b114ab2b1fa786f64e9e914af3ba27"><divclass="ttname"><ahref="structAaruHeaderV2.html#a81b114ab2b1fa786f64e9e914af3ba27">AaruHeaderV2::mediaType</a></div><divclass="ttdeci">uint32_t mediaType</div><divclass="ttdoc">Media type enumeration (value from MediaType).</div><divclass="ttdef"><b>Definition</b><ahref="header_8h_source.html#l00114">header.h:114</a></div></div>
<divclass="ttc"id="astructAaruHeaderV2_html_ae2d6d3c7bc0a1956fb246cf7acbddeeb"><divclass="ttname"><ahref="structAaruHeaderV2.html#ae2d6d3c7bc0a1956fb246cf7acbddeeb">AaruHeaderV2::imageMinorVersion</a></div><divclass="ttdeci">uint8_t imageMinorVersion</div><divclass="ttdoc">Container format minor version.</div><divclass="ttdef"><b>Definition</b><ahref="header_8h_source.html#l00111">header.h:111</a></div></div>
<divclass="ttc"id="astructAaruHeaderV2_html_ae849dae5af5cf31b1b815ef67b3c621f"><divclass="ttname"><ahref="structAaruHeaderV2.html#ae849dae5af5cf31b1b815ef67b3c621f">AaruHeaderV2::creationTime</a></div><divclass="ttdeci">int64_t creationTime</div><divclass="ttdoc">Creation FILETIME (100 ns since 1601-01-01 UTC).</div><divclass="ttdef"><b>Definition</b><ahref="header_8h_source.html#l00116">header.h:116</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="astructAaruHeader_html"><divclass="ttname"><ahref="structAaruHeader.html">AaruHeader</a></div><divclass="ttdoc">Version 1 container header placed at offset 0 for legacy / initial format.</div><divclass="ttdef"><b>Definition</b><ahref="header_8h_source.html#l00076">header.h:77</a></div></div>
<divclass="ttc"id="astructCacheHeader_html_a44229bb929d8949f3c2700d07123d224"><divclass="ttname"><ahref="structCacheHeader.html#a44229bb929d8949f3c2700d07123d224">CacheHeader::cache</a></div><divclass="ttdeci">struct CacheEntry * cache</div><divclass="ttdoc">Hash root (uthash). NULL when empty.</div><divclass="ttdef"><b>Definition</b><ahref="lru_8h_source.html#l00048">lru.h:48</a></div></div>
<divclass="ttc"id="astructCacheHeader_html_ad3b962f8ce6c6115143cf581c7936e55"><divclass="ttname"><ahref="structCacheHeader.html#ad3b962f8ce6c6115143cf581c7936e55">CacheHeader::max_items</a></div><divclass="ttdeci">uint64_t max_items</div><divclass="ttdoc">Hard limit for number of entries (policy: enforce/ignore depends on implementation).</div><divclass="ttdef"><b>Definition</b><ahref="lru_8h_source.html#l00047">lru.h:47</a></div></div>
<divclass="ttc"id="astructCdEccContext_html"><divclass="ttname"><ahref="structCdEccContext.html">CdEccContext</a></div><divclass="ttdoc">Lookup tables and state for Compact Disc EDC/ECC (P/Q) regeneration / verification.</div><divclass="ttdef"><b>Definition</b><ahref="context_8h_source.html#l00085">context.h:86</a></div></div>
<divclass="ttc"id="astructGeometryBlockHeader_html_a233b19be8361b1c3c1963d8521924138"><divclass="ttname"><ahref="structGeometryBlockHeader.html#a233b19be8361b1c3c1963d8521924138">GeometryBlockHeader::identifier</a></div><divclass="ttdeci">uint32_t identifier</div><divclass="ttdoc">Block identifier, must be BlockType::GeometryBlock.</div><divclass="ttdef"><b>Definition</b><ahref="data_8h_source.html#l00092">data.h:92</a></div></div>
<divclass="ttc"id="astructImageInfo_html_a76611d5087e0a9fd4d329fac7c9ec3f3"><divclass="ttname"><ahref="structImageInfo.html#a76611d5087e0a9fd4d329fac7c9ec3f3">ImageInfo::MediaType</a></div><divclass="ttdeci">uint32_t MediaType</div><divclass="ttdoc">Media type identifier (see MediaType enum; 0=Unknown)</div><divclass="ttdef"><b>Definition</b><ahref="aaru_8h_source.html#l00881">aaru.h:881</a></div></div>
<divclass="ttc"id="astructImageInfo_html_a7ed25efcf8cec55d6609b83bcd17b2d0"><divclass="ttname"><ahref="structImageInfo.html#a7ed25efcf8cec55d6609b83bcd17b2d0">ImageInfo::MetadataMediaType</a></div><divclass="ttdeci">uint8_t MetadataMediaType</div><divclass="ttdoc">Media type for sidecar generation (internal archival use)</div><divclass="ttdef"><b>Definition</b><ahref="aaru_8h_source.html#l00882">aaru.h:882</a></div></div>
<divclass="ttc"id="astructImageInfo_html_aac1ac48f57afd415467cd6f13f01644b"><divclass="ttname"><ahref="structImageInfo.html#aac1ac48f57afd415467cd6f13f01644b">ImageInfo::SectorSize</a></div><divclass="ttdeci">uint32_t SectorSize</div><divclass="ttdoc">Size of each logical sector in bytes (512, 2048, 2352, 4096, etc.)</div><divclass="ttdef"><b>Definition</b><ahref="aaru_8h_source.html#l00875">aaru.h:875</a></div></div>
<divclass="ttc"id="astructImageInfo_html_aaea8b3a14fc03f9a4b045318160b7f54"><divclass="ttname"><ahref="structImageInfo.html#aaea8b3a14fc03f9a4b045318160b7f54">ImageInfo::Application</a></div><divclass="ttdeci">char Application[64]</div><divclass="ttdoc">Name of application that created the image (NUL-terminated)</div><divclass="ttdef"><b>Definition</b><ahref="aaru_8h_source.html#l00877">aaru.h:877</a></div></div>
<divclass="ttc"id="astructImageInfo_html_abca8e73a9655d810e6d30d36c3ab54d7"><divclass="ttname"><ahref="structImageInfo.html#abca8e73a9655d810e6d30d36c3ab54d7">ImageInfo::ImageSize</a></div><divclass="ttdeci">uint64_t ImageSize</div><divclass="ttdoc">Size of the image payload in bytes (excludes headers/metadata)</div><divclass="ttdef"><b>Definition</b><ahref="aaru_8h_source.html#l00873">aaru.h:873</a></div></div>
<divclass="ttc"id="astructImageInfo_html_acbccd97dbc139ed2f81d9997560725bb"><divclass="ttname"><ahref="structImageInfo.html#acbccd97dbc139ed2f81d9997560725bb">ImageInfo::CreationTime</a></div><divclass="ttdeci">int64_t CreationTime</div><divclass="ttdoc">Image creation timestamp (Windows FILETIME: 100ns since 1601-01-01 UTC)</div><divclass="ttdef"><b>Definition</b><ahref="aaru_8h_source.html#l00879">aaru.h:879</a></div></div>
<divclass="ttc"id="astructImageInfo_html_adce978941d9900c8c05e620df67f8c5c"><divclass="ttname"><ahref="structImageInfo.html#adce978941d9900c8c05e620df67f8c5c">ImageInfo::Version</a></div><divclass="ttdeci">char Version[32]</div><divclass="ttdoc">Image format version string (NUL-terminated, e.g., "6.0")</div><divclass="ttdef"><b>Definition</b><ahref="aaru_8h_source.html#l00876">aaru.h:876</a></div></div>
<divclass="ttc"id="astructImageInfo_html_ae3e1b9cde1c51152b00eb1b59e199906"><divclass="ttname"><ahref="structImageInfo.html#ae3e1b9cde1c51152b00eb1b59e199906">ImageInfo::Sectors</a></div><divclass="ttdeci">uint64_t Sectors</div><divclass="ttdoc">Total count of addressable logical sectors/blocks.</div><divclass="ttdef"><b>Definition</b><ahref="aaru_8h_source.html#l00874">aaru.h:874</a></div></div>
<divclass="ttc"id="astructImageInfo_html_aebf7783c46e640a8e7d0192ba2843e9a"><divclass="ttname"><ahref="structImageInfo.html#aebf7783c46e640a8e7d0192ba2843e9a">ImageInfo::ApplicationVersion</a></div><divclass="ttdeci">char ApplicationVersion[32]</div><divclass="ttdoc">Version of the creating application (NUL-terminated)</div><divclass="ttdef"><b>Definition</b><ahref="aaru_8h_source.html#l00878">aaru.h:878</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="astructIndexEntry_html_ae5d35082a756e0388efbf5fabbe93d10"><divclass="ttname"><ahref="structIndexEntry.html#ae5d35082a756e0388efbf5fabbe93d10">IndexEntry::dataType</a></div><divclass="ttdeci">uint16_t dataType</div><divclass="ttdoc">Data classification (value from DataType) or unused for untyped blocks.</div><divclass="ttdef"><b>Definition</b><ahref="index_8h_source.html#l00111">index.h:111</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="astructaaruformat__context_html_a09177c9e68d054bab844305f2771b77a"><divclass="ttname"><ahref="structaaruformat__context.html#a09177c9e68d054bab844305f2771b77a">aaruformat_context::library_major_version</a></div><divclass="ttdeci">uint8_t library_major_version</div><divclass="ttdoc">Linked library major version.</div><divclass="ttdef"><b>Definition</b><ahref="context_8h_source.html#l00177">context.h:177</a></div></div>
<divclass="ttc"id="astructaaruformat__context_html_a29c17435980ac94547f471485a891f54"><divclass="ttname"><ahref="structaaruformat__context.html#a29c17435980ac94547f471485a891f54">aaruformat_context::cylinders</a></div><divclass="ttdeci">uint32_t cylinders</div><divclass="ttdoc">Cylinders of the media represented by the image.</div><divclass="ttdef"><b>Definition</b><ahref="context_8h_source.html#l00234">context.h:234</a></div></div>
<divclass="ttc"id="astructaaruformat__context_html_a3a12addf4a338cc04471709604d48ae1"><divclass="ttname"><ahref="structaaruformat__context.html#a3a12addf4a338cc04471709604d48ae1">aaruformat_context::block_header_cache</a></div><divclass="ttdeci">struct CacheHeader block_header_cache</div><divclass="ttdoc">LRU/Cache header for block headers.</div><divclass="ttdef"><b>Definition</b><ahref="context_8h_source.html#l00256">context.h:256</a></div></div>
<divclass="ttc"id="astructaaruformat__context_html_a4023f622bac759754c68ac633c53e3f4"><divclass="ttname"><ahref="structaaruformat__context.html#a4023f622bac759754c68ac633c53e3f4">aaruformat_context::shift</a></div><divclass="ttdeci">uint8_t shift</div><divclass="ttdoc">Legacy overall shift (deprecated by data_shift/table_shift).</div><divclass="ttdef"><b>Definition</b><ahref="context_8h_source.html#l00195">context.h:195</a></div></div>
<divclass="ttc"id="astructaaruformat__context_html_a510b72290e2bd50e02ef8a2387aa829d"><divclass="ttname"><ahref="structaaruformat__context.html#a510b72290e2bd50e02ef8a2387aa829d">aaruformat_context::ecc_cd_context</a></div><divclass="ttdeci">CdEccContext * ecc_cd_context</div><divclass="ttdoc">CD ECC/EDC helper tables (allocated on demand).</div><divclass="ttdef"><b>Definition</b><ahref="context_8h_source.html#l00248">context.h:248</a></div></div>
<divclass="ttc"id="astructaaruformat__context_html_a58359ec8607d1d10e0af8699be238e77"><divclass="ttname"><ahref="structaaruformat__context.html#a58359ec8607d1d10e0af8699be238e77">aaruformat_context::block_cache</a></div><divclass="ttdeci">struct CacheHeader block_cache</div><divclass="ttdoc">LRU/Cache header for block payloads.</div><divclass="ttdef"><b>Definition</b><ahref="context_8h_source.html#l00257">context.h:257</a></div></div>
<divclass="ttc"id="astructaaruformat__context_html_a8fb7db933d8abfeb20a28110cb258922"><divclass="ttname"><ahref="structaaruformat__context.html#a8fb7db933d8abfeb20a28110cb258922">aaruformat_context::library_minor_version</a></div><divclass="ttdeci">uint8_t library_minor_version</div><divclass="ttdoc">Linked library minor version;.</div><divclass="ttdef"><b>Definition</b><ahref="context_8h_source.html#l00178">context.h:178</a></div></div>
<divclass="ttc"id="astructaaruformat__context_html_aaeb71d74c7d9236d80186a25066326a1"><divclass="ttname"><ahref="structaaruformat__context.html#aaeb71d74c7d9236d80186a25066326a1">aaruformat_context::sectors_per_track</a></div><divclass="ttdeci">uint32_t sectors_per_track</div><divclass="ttdoc">Sectors per track of the media represented by the image (for variable image, the smallest)</div><divclass="ttdef"><b>Definition</b><ahref="context_8h_source.html#l00236">context.h:236</a></div></div>
<divclass="ttc"id="astructaaruformat__context_html_ab213059edf055cf1c3e2021bc395c78e"><divclass="ttname"><ahref="structaaruformat__context.html#ab213059edf055cf1c3e2021bc395c78e">aaruformat_context::heads</a></div><divclass="ttdeci">uint32_t heads</div><divclass="ttdoc">Heads of the media represented by the image.</div><divclass="ttdef"><b>Definition</b><ahref="context_8h_source.html#l00235">context.h:235</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.14.0 </li>