Files
libaaruformat/docs/html/open_8c_source.html

630 lines
130 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libaaruformat: src/open.c Source File</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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.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 id="projectrow">
<td id="projectalign">
<div id="projectname">libaaruformat<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Aaru Data Preservation Suite - Format Library</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('open_8c_source.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- 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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">open.c</div></div>
</div><!--header-->
<div class="contents">
<a href="open_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> * This file is part of the Aaru Data Preservation Suite.</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> * Copyright (c) 2019-2025 Natalia Portillo.</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> *</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> * This library is free software; you can redistribute it and/or modify</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> * it under the terms of the GNU Lesser General Public License as</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * published by the Free Software Foundation; either version 2.1 of the</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> * License, or (at your option) any later version.</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> * This library is distributed in the hope that it will be useful, but</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> * Lesser General Public License for more details.</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> *</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> * You should have received a copy of the GNU Lesser General Public</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> * License along with this library; if not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"> */</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;errno.h&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;inttypes.h&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &lt;<a class="code" href="aaruformat_8h.html">aaruformat.h</a>&gt;</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include &quot;<a class="code" href="internal_8h.html">internal.h</a>&quot;</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include &quot;<a class="code" href="log_8h.html">log.h</a>&quot;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#include &quot;utarray.h&quot;</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="foldopen" id="foldopen00031" data-start="{" data-end="}">
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50"> 31</a></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a>(<a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx)</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>{</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">if</span>(ctx == NULL) <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a> != NULL)</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> {</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> fclose(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>);</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a> = NULL;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> }</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad3d5494e23b07418e9fbd22c3771e534">readableSectorTags</a>);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad3d5494e23b07418e9fbd22c3771e534">readableSectorTags</a> = NULL;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> free(ctx);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span>}</div>
</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span></div>
<div class="foldopen" id="foldopen00125" data-start="{" data-end="}">
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="decls_8h.html#afc4932cdc795ffb2ef3a33d5b8c57656"> 125</a></span><a class="code hl_define" href="decls_8h.html#a9001412c35f3c92d3a9320d27b0d97f9">AARU_EXPORT</a> <span class="keywordtype">void</span> <a class="code hl_define" href="decls_8h.html#a018e0da1c1f7e4f6187a982c0e40e056">AARU_CALL</a> *<a class="code hl_function" href="open_8c.html#afc4932cdc795ffb2ef3a33d5b8c57656">aaruf_open</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filepath) <span class="comment">// NOLINT(readability-function-size)</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span>{</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = NULL;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordtype">int</span> error_no = 0;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keywordtype">size_t</span> read_bytes = 0;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordtype">long</span> pos = 0;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordtype">int</span> i = 0;</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> uint32_t signature = 0;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> UT_array *index_entries = NULL;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="preprocessor">#ifdef USE_SLOG</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="preprocessor">#include &quot;slog.h&quot;</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> slog_init(<span class="stringliteral">&quot;aaruformat.log&quot;</span>, SLOG_FLAGS_ALL, 0);</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Logging initialized&quot;</span>);</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_open(%s)&quot;</span>, filepath);</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Allocating memory for context&quot;</span>);</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> ctx = (<a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *)malloc(<span class="keyword">sizeof</span>(<a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a>));</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">if</span>(ctx == NULL)</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> {</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Not enough memory to create context&quot;</span>);</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> errno = <a class="code hl_define" href="errors_8h.html#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</a>;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_open() = NULL&quot;</span>);</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> }</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> </div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> memset(ctx, 0, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a>));</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Opening file %s&quot;</span>, filepath);</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a> = fopen(filepath, <span class="stringliteral">&quot;rb&quot;</span>);</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a> == NULL)</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> {</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Error %d opening file %s for reading&quot;</span>, errno, filepath);</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> error_no = errno;</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <a class="code hl_function" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a>(ctx);</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> errno = error_no;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_open() = NULL&quot;</span>);</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> }</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Reading header at position 0&quot;</span>);</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> fseek(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>, 0, SEEK_SET);</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> read_bytes = fread(&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>, 1, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structAaruHeader.html">AaruHeader</a>), ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>);</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">if</span>(read_bytes != <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structAaruHeader.html">AaruHeader</a>))</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> {</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not read header&quot;</span>);</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <a class="code hl_function" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a>(ctx);</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> errno = <a class="code hl_define" href="errors_8h.html#acebe3e4bcc498066fe65d9e24e16c7f5">AARUF_ERROR_FILE_TOO_SMALL</a>;</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_open() = NULL&quot;</span>);</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> }</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> </div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a27af1bfabbc7650471a6010475116697">identifier</a> != <a class="code hl_define" href="consts_8h.html#a13ba7a163f45ee45c977d63c408539ca">DIC_MAGIC</a> &amp;&amp; ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a27af1bfabbc7650471a6010475116697">identifier</a> != <a class="code hl_define" href="consts_8h.html#a3c3ba66fe2b547655c9e4b16a1ba519a">AARU_MAGIC</a>)</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> {</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect identifier for AaruFormat file: %8.8s&quot;</span>, (<span class="keywordtype">char</span> *)&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a27af1bfabbc7650471a6010475116697">identifier</a>);</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <a class="code hl_function" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a>(ctx);</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> errno = <a class="code hl_define" href="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</a>;</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> </div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_open() = NULL&quot;</span>);</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> }</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> </div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <span class="comment">// Read new header version</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#af79ca31bcd428d1a54ac25c30d09b7a7">imageMajorVersion</a> &gt;= <a class="code hl_define" href="consts_8h.html#ad2fdced5805aa0364f1c5b073f81dd76">AARUF_VERSION_V2</a>)</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> {</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Reading new header version at position 0&quot;</span>);</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> fseek(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>, 0, SEEK_SET);</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> read_bytes = fread(&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>, 1, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structAaruHeaderV2.html">AaruHeaderV2</a>), ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>);</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> </div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keywordflow">if</span>(read_bytes != <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structAaruHeaderV2.html">AaruHeaderV2</a>))</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> {</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <a class="code hl_function" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a>(ctx);</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> errno = <a class="code hl_define" href="errors_8h.html#acebe3e4bcc498066fe65d9e24e16c7f5">AARUF_ERROR_FILE_TOO_SMALL</a>;</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> </div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> }</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> }</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#af79ca31bcd428d1a54ac25c30d09b7a7">imageMajorVersion</a> &gt; <a class="code hl_define" href="consts_8h.html#adbbd4387273589f1c76a5f5786607013">AARUF_VERSION</a>)</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> {</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incompatible AaruFormat version %d.%d found, maximum supported is %d.%d&quot;</span>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#af79ca31bcd428d1a54ac25c30d09b7a7">imageMajorVersion</a>,</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#ae2d6d3c7bc0a1956fb246cf7acbddeeb">imageMinorVersion</a>, <a class="code hl_define" href="consts_8h.html#ad2fdced5805aa0364f1c5b073f81dd76">AARUF_VERSION_V2</a>, 0);</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <a class="code hl_function" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a>(ctx);</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> errno = <a class="code hl_define" href="errors_8h.html#a626d70083785adf028130ac349f270c5">AARUF_ERROR_INCOMPATIBLE_VERSION</a>;</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_open() = NULL&quot;</span>);</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> }</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> </div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Opening image version %d.%d&quot;</span>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#af79ca31bcd428d1a54ac25c30d09b7a7">imageMajorVersion</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#ae2d6d3c7bc0a1956fb246cf7acbddeeb">imageMinorVersion</a>);</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Allocating memory for readable sector tags bitmap&quot;</span>);</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad3d5494e23b07418e9fbd22c3771e534">readableSectorTags</a> = (<span class="keywordtype">bool</span> *)malloc(<span class="keyword">sizeof</span>(<span class="keywordtype">bool</span>) * <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa81dbcd4677b6377bce5351ad92fc4d64">MaxSectorTag</a>);</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> </div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad3d5494e23b07418e9fbd22c3771e534">readableSectorTags</a> == NULL)</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> {</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for readable sector tags bitmap&quot;</span>);</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <a class="code hl_function" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a>(ctx);</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> errno = <a class="code hl_define" href="errors_8h.html#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</a>;</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_open() = NULL&quot;</span>);</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> }</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> memset(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad3d5494e23b07418e9fbd22c3771e534">readableSectorTags</a>, 0, <span class="keyword">sizeof</span>(<span class="keywordtype">bool</span>) * <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa81dbcd4677b6377bce5351ad92fc4d64">MaxSectorTag</a>);</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> </div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Setting up image info&quot;</span>);</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> </div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <span class="comment">// Handle application name based on image version</span></div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> memset(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#aaea8b3a14fc03f9a4b045318160b7f54">Application</a>, 0, 64);</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> </div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#af79ca31bcd428d1a54ac25c30d09b7a7">imageMajorVersion</a> &gt;= <a class="code hl_define" href="consts_8h.html#ad2fdced5805aa0364f1c5b073f81dd76">AARUF_VERSION_V2</a>)</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> {</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="comment">// Version 2+: application name is UTF-8, direct copy</span></div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Converting application name (v2+): UTF-8 direct copy&quot;</span>);</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="keywordtype">size_t</span> copy_len = <a class="code hl_define" href="header_8h.html#ab17964dacc36dca03ec5e75aa40a4502">AARU_HEADER_APP_NAME_LEN</a> &lt; 63 ? <a class="code hl_define" href="header_8h.html#ab17964dacc36dca03ec5e75aa40a4502">AARU_HEADER_APP_NAME_LEN</a> : 63;</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#aaea8b3a14fc03f9a4b045318160b7f54">Application</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a0afcf9a5f565a9053351f44234c90dc3">application</a>, copy_len);</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#aaea8b3a14fc03f9a4b045318160b7f54">Application</a>[63] = <span class="charliteral">&#39;\0&#39;</span>;</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> }</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> {</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="comment">// Version 1: application name is UTF-16LE, convert by taking every other byte</span></div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Converting application name (v1): UTF-16LE to ASCII&quot;</span>);</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="keywordtype">int</span> dest_idx = 0;</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; <a class="code hl_define" href="header_8h.html#ab17964dacc36dca03ec5e75aa40a4502">AARU_HEADER_APP_NAME_LEN</a> &amp;&amp; dest_idx &lt; 63; j += 2)</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="comment">// Take the low byte, skip the high byte (assuming it&#39;s 0x00 for ASCII)</span></div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a0afcf9a5f565a9053351f44234c90dc3">application</a>[j] != 0)</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#aaea8b3a14fc03f9a4b045318160b7f54">Application</a>[dest_idx++] = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a0afcf9a5f565a9053351f44234c90dc3">application</a>[j];</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <span class="comment">// Stop at null terminator</span></div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#aaea8b3a14fc03f9a4b045318160b7f54">Application</a>[dest_idx] = <span class="charliteral">&#39;\0&#39;</span>;</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> }</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> </div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <span class="comment">// Set application version string directly in the fixed-size array</span></div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> memset(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#aebf7783c46e640a8e7d0192ba2843e9a">ApplicationVersion</a>, 0, 32);</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> sprintf(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#aebf7783c46e640a8e7d0192ba2843e9a">ApplicationVersion</a>, <span class="stringliteral">&quot;%d.%d&quot;</span>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a1c26feafd945328f8f1854b523a0f03c">applicationMajorVersion</a>,</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a5ae79accbb8ba2762d01a63ad334ee60">applicationMinorVersion</a>);</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> </div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="comment">// Set image version string directly in the fixed-size array</span></div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> memset(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#adce978941d9900c8c05e620df67f8c5c">Version</a>, 0, 32);</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> sprintf(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#adce978941d9900c8c05e620df67f8c5c">Version</a>, <span class="stringliteral">&quot;%d.%d&quot;</span>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#af79ca31bcd428d1a54ac25c30d09b7a7">imageMajorVersion</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#ae2d6d3c7bc0a1956fb246cf7acbddeeb">imageMinorVersion</a>);</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> </div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#a76611d5087e0a9fd4d329fac7c9ec3f3">MediaType</a> = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a81b114ab2b1fa786f64e9e914af3ba27">mediaType</a>;</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> </div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="comment">// Read the index header</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Reading index header at position %&quot;</span> PRIu64, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a4ec4b1d593f5a0af19f6d7b8eaeada40">indexOffset</a>);</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> pos = fseek(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a4ec4b1d593f5a0af19f6d7b8eaeada40">indexOffset</a>, SEEK_SET);</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordflow">if</span>(pos &lt; 0)</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> {</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <a class="code hl_function" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a>(ctx);</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> errno = <a class="code hl_define" href="errors_8h.html#ab6c57651868e0f35e3821680ebb2b17a">AARUF_ERROR_CANNOT_READ_INDEX</a>;</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> </div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> }</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> </div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> pos = ftell(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>);</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">if</span>(pos != ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a4ec4b1d593f5a0af19f6d7b8eaeada40">indexOffset</a>)</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> {</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <a class="code hl_function" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a>(ctx);</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> errno = <a class="code hl_define" href="errors_8h.html#ab6c57651868e0f35e3821680ebb2b17a">AARUF_ERROR_CANNOT_READ_INDEX</a>;</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> </div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> }</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> </div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> read_bytes = fread(&amp;signature, 1, <span class="keyword">sizeof</span>(uint32_t), ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>);</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> </div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keywordflow">if</span>(read_bytes != <span class="keyword">sizeof</span>(uint32_t) ||</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> (signature != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ab8d63dc690b2ba82f066fdc31ab5adad">IndexBlock</a> &amp;&amp; signature != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a6ee3c4c583df36e3dfe796593c1e9439">IndexBlock2</a> &amp;&amp; signature != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a318acaf230a8ad091ef405caf7e4f411">IndexBlock3</a>))</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> {</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not read index header or incorrect identifier %4.4s&quot;</span>, (<span class="keywordtype">char</span> *)&amp;signature);</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <a class="code hl_function" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a>(ctx);</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> errno = <a class="code hl_define" href="errors_8h.html#ab6c57651868e0f35e3821680ebb2b17a">AARUF_ERROR_CANNOT_READ_INDEX</a>;</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> </div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_open() = NULL&quot;</span>);</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> }</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> </div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordflow">if</span>(signature == <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ab8d63dc690b2ba82f066fdc31ab5adad">IndexBlock</a>)</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> index_entries = <a class="code hl_function" href="internal_8h.html#a5d3b1092abc36a27a441a01a8a0b3b48">process_index_v1</a>(ctx);</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(signature == <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a6ee3c4c583df36e3dfe796593c1e9439">IndexBlock2</a>)</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> index_entries = <a class="code hl_function" href="internal_8h.html#a1baad6508d1cde5a712794e956fb3d3c">process_index_v2</a>(ctx);</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(signature == <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a318acaf230a8ad091ef405caf7e4f411">IndexBlock3</a>)</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> index_entries = <a class="code hl_function" href="internal_8h.html#aff88fae9938d5f56318bfd7a455d5e94">process_index_v3</a>(ctx);</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> </div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> <span class="keywordflow">if</span>(index_entries == NULL)</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> {</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not process index.&quot;</span>);</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> utarray_free(index_entries);</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <a class="code hl_function" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a>(ctx);</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> errno = <a class="code hl_define" href="errors_8h.html#ab6c57651868e0f35e3821680ebb2b17a">AARUF_ERROR_CANNOT_READ_INDEX</a>;</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> </div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_open() = NULL&quot;</span>);</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> }</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> </div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Index at %&quot;</span> PRIu64 <span class="stringliteral">&quot; contains %d entries&quot;</span>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a4ec4b1d593f5a0af19f6d7b8eaeada40">indexOffset</a>, utarray_len(index_entries));</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> </div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> <span class="keywordflow">for</span>(i = 0; i &lt; utarray_len(index_entries); i++)</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> {</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> <a class="code hl_struct" href="structIndexEntry.html">IndexEntry</a> *entry = utarray_eltptr(index_entries, i);</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Block type %4.4s with data type %d is indexed to be at %&quot;</span> PRIu64 <span class="stringliteral">&quot;&quot;</span>, (<span class="keywordtype">char</span> *)&amp;entry-&gt;<a class="code hl_variable" href="structIndexEntry.html#a4b5c7115ac83019c3f77c6f047e5f75e">blockType</a>,</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> entry-&gt;<a class="code hl_variable" href="structIndexEntry.html#ae5d35082a756e0388efbf5fabbe93d10">dataType</a>, entry-&gt;<a class="code hl_variable" href="structIndexEntry.html#a854951a64192d7e4cdcfa6dd6fd2b3ea">offset</a>);</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> }</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> </div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> <span class="keywordtype">bool</span> found_user_data_ddt = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#abca8e73a9655d810e6d30d36c3ab54d7">ImageSize</a> = 0;</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> <span class="keywordflow">for</span>(i = 0; i &lt; utarray_len(index_entries); i++)</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> {</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> <a class="code hl_struct" href="structIndexEntry.html">IndexEntry</a> *entry = utarray_eltptr(index_entries, i);</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> pos = fseek(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>, entry-&gt;<a class="code hl_variable" href="structIndexEntry.html#a854951a64192d7e4cdcfa6dd6fd2b3ea">offset</a>, SEEK_SET);</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> </div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> <span class="keywordflow">if</span>(pos &lt; 0 || ftell(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>) != entry-&gt;<a class="code hl_variable" href="structIndexEntry.html#a854951a64192d7e4cdcfa6dd6fd2b3ea">offset</a>)</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> {</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Could not seek to %&quot;</span> PRIu64 <span class="stringliteral">&quot; as indicated by index entry %d, continuing...&quot;</span>, entry-&gt;<a class="code hl_variable" href="structIndexEntry.html#a854951a64192d7e4cdcfa6dd6fd2b3ea">offset</a>, i);</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> </div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> }</div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> </div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Processing block type %4.4s with data type %d at position %&quot;</span> PRIu64 <span class="stringliteral">&quot;&quot;</span>, (<span class="keywordtype">char</span> *)&amp;entry-&gt;<a class="code hl_variable" href="structIndexEntry.html#a4b5c7115ac83019c3f77c6f047e5f75e">blockType</a>,</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> entry-&gt;<a class="code hl_variable" href="structIndexEntry.html#ae5d35082a756e0388efbf5fabbe93d10">dataType</a>, entry-&gt;<a class="code hl_variable" href="structIndexEntry.html#a854951a64192d7e4cdcfa6dd6fd2b3ea">offset</a>);</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> <span class="keywordflow">switch</span>(entry-&gt;<a class="code hl_variable" href="structIndexEntry.html#a4b5c7115ac83019c3f77c6f047e5f75e">blockType</a>)</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> {</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a5a0811c5ee97536aef900cecb8787713">DataBlock</a>:</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> error_no = <a class="code hl_function" href="internal_8h.html#a28d844a06cecbbf436d825a3c99ff0eb">process_data_block</a>(ctx, entry);</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> </div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> <span class="keywordflow">if</span>(error_no != <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>)</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> {</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> utarray_free(index_entries);</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <a class="code hl_function" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a>(ctx);</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> errno = error_no;</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> </div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> }</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> </div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> </div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ac9f1e20a51c73f238aa322e180c42bd4">DeDuplicationTable</a>:</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> error_no = <a class="code hl_function" href="internal_8h.html#abaf38090f967423898b99e0455751c07">process_ddt_v1</a>(ctx, entry, &amp;found_user_data_ddt);</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> </div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> <span class="keywordflow">if</span>(error_no != <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>)</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> {</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> utarray_free(index_entries);</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> <a class="code hl_function" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a>(ctx);</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> errno = error_no;</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> </div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> }</div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> </div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3aba4d0f50b26af1d0292daaa0d70feacf">DeDuplicationTable2</a>:</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> error_no = <a class="code hl_function" href="internal_8h.html#a1caeae710ee5e1dd356e43b3b659e9c0">process_ddt_v2</a>(ctx, entry, &amp;found_user_data_ddt);</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> </div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> <span class="keywordflow">if</span>(error_no != <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>)</div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> {</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> utarray_free(index_entries);</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> <a class="code hl_function" href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a>(ctx);</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> errno = error_no;</div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> </div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> }</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> </div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a76691ea3f772bf28e7446d171e205db2">GeometryBlock</a>:</div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> <a class="code hl_function" href="internal_8h.html#a81d410de6727d95a85b827067e1a8bc6">process_geometry_block</a>(ctx, entry);</div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> </div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>:</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> <a class="code hl_function" href="internal_8h.html#a43974d4c183240be30d49ff09ef7b8c2">process_metadata_block</a>(ctx, entry);</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> </div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ae550bdf57660fcbf3500155c29d4637e">TracksBlock</a>:</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> <a class="code hl_function" href="internal_8h.html#a375a516fdf6f81e997365d93b21f6708">process_tracks_block</a>(ctx, entry);</div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> </div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3aa90947995922dcd8b27c998978aba359">CicmBlock</a>:</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> <a class="code hl_function" href="internal_8h.html#a5e0397faed8aea27c5a6a3881875de54">process_cicm_block</a>(ctx, entry);</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> </div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a8ac77889f0c345ed861ed653a3063032">AaruMetadataJsonBlock</a>:</div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> <a class="code hl_function" href="internal_8h.html#a84003ec881425a7b28ec24cb48d19f02">process_aaru_metadata_json_block</a>(ctx, entry);</div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> </div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> <span class="comment">// Dump hardware block</span></div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad33812deb344562478c4e0d208a114db">DumpHardwareBlock</a>:</div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> <a class="code hl_function" href="internal_8h.html#a0e2cfc858c0551bc9bef11d5bdb85aac">process_dumphw_block</a>(ctx, entry);</div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> </div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a3e451c2577a6c790f33f99c2da189d46">ChecksumBlock</a>:</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> <a class="code hl_function" href="internal_8h.html#a565eace88f86c500249be1f2a89a1c60">process_checksum_block</a>(ctx, entry);</div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> </div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ac3a117f2498bf736a76d5d3a3830540a">TapeFileBlock</a>:</div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> <a class="code hl_function" href="internal_8h.html#a829bbac3c17b60efd8f93188a8de8278">process_tape_files_block</a>(ctx, entry);</div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> </div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a60609bbcd07339a8bf589e66ef4a3041">TapePartitionBlock</a>:</div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> <a class="code hl_function" href="internal_8h.html#aa76718b0402b1a28be3d563d5e62028e">process_tape_partitions_block</a>(ctx, entry);</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> </div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Unhandled block type %4.4s with data type %d is indexed to be at %&quot;</span> PRIu64 <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> (<span class="keywordtype">char</span> *)&amp;entry-&gt;<a class="code hl_variable" href="structIndexEntry.html#a4b5c7115ac83019c3f77c6f047e5f75e">blockType</a>, entry-&gt;<a class="code hl_variable" href="structIndexEntry.html#ae5d35082a756e0388efbf5fabbe93d10">dataType</a>, entry-&gt;<a class="code hl_variable" href="structIndexEntry.html#a854951a64192d7e4cdcfa6dd6fd2b3ea">offset</a>);</div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> }</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> }</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> </div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> utarray_free(index_entries);</div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> </div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> <span class="keywordflow">if</span>(!found_user_data_ddt)</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> {</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not find user data deduplication table, aborting...&quot;</span>);</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> <a class="code hl_function" href="decls_8h.html#a6823e139f81a9dfd08efcb0e9b213a49">aaruf_close</a>(ctx);</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> </div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_open() = NULL&quot;</span>);</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> }</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> </div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#acbccd97dbc139ed2f81d9997560725bb">CreationTime</a> = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#ae849dae5af5cf31b1b815ef67b3c621f">creationTime</a>;</div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#ada8567fee9fbe636cb10f788b3705e3a">LastModificationTime</a> = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a45bc7e2afc9008ce6f4ae1dba93bdac3">lastWrittenTime</a>;</div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#a7ed25efcf8cec55d6609b83bcd17b2d0">MetadataMediaType</a> = <a class="code hl_function" href="decls_8h.html#ac5f5334a51424028574a5433a0e24b20">aaruf_get_xml_mediatype</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">header</a>.<a class="code hl_variable" href="structAaruHeaderV2.html#a81b114ab2b1fa786f64e9e914af3ba27">mediaType</a>);</div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> </div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9ac9d12e8fde7a69c01cdf2dc32f33bd">geometry_block</a>.<a class="code hl_variable" href="structGeometryBlockHeader.html#a233b19be8361b1c3c1963d8521924138">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a76691ea3f772bf28e7446d171e205db2">GeometryBlock</a> &amp;&amp; ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#a7ed25efcf8cec55d6609b83bcd17b2d0">MetadataMediaType</a> == <a class="code hl_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466ad45ebea105994c5fe86200f36d9e6ccd">BlockMedia</a>)</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> {</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a29c17435980ac94547f471485a891f54">cylinders</a> = (uint32_t)(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#ae3e1b9cde1c51152b00eb1b59e199906">Sectors</a> / 16 / 63);</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab213059edf055cf1c3e2021bc395c78e">heads</a> = 16;</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaeb71d74c7d9236d80186a25066326a1">sectors_per_track</a> = 63;</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> }</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> </div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> <span class="comment">// Initialize caches</span></div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Initializing caches&quot;</span>);</div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3a12addf4a338cc04471709604d48ae1">block_header_cache</a>.<a class="code hl_variable" href="structCacheHeader.html#a44229bb929d8949f3c2700d07123d224">cache</a> = NULL;</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a58359ec8607d1d10e0af8699be238e77">block_cache</a>.<a class="code hl_variable" href="structCacheHeader.html#a44229bb929d8949f3c2700d07123d224">cache</a> = NULL;</div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> </div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> <span class="keyword">const</span> uint64_t cache_divisor = (uint64_t)ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#aac1ac48f57afd415467cd6f13f01644b">SectorSize</a> * (1ULL &lt;&lt; ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4023f622bac759754c68ac633c53e3f4">shift</a>);</div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> <span class="keywordflow">if</span>(cache_divisor == 0)</div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> {</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3a12addf4a338cc04471709604d48ae1">block_header_cache</a>.<a class="code hl_variable" href="structCacheHeader.html#ad3b962f8ce6c6115143cf581c7936e55">max_items</a> = 0;</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a58359ec8607d1d10e0af8699be238e77">block_cache</a>.<a class="code hl_variable" href="structCacheHeader.html#ad3b962f8ce6c6115143cf581c7936e55">max_items</a> = 0;</div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> }</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> {</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3a12addf4a338cc04471709604d48ae1">block_header_cache</a>.<a class="code hl_variable" href="structCacheHeader.html#ad3b962f8ce6c6115143cf581c7936e55">max_items</a> = <a class="code hl_define" href="consts_8h.html#a6c8469dfe973ac952cf40394bd2c160b">MAX_CACHE_SIZE</a> / cache_divisor;</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a58359ec8607d1d10e0af8699be238e77">block_cache</a>.<a class="code hl_variable" href="structCacheHeader.html#ad3b962f8ce6c6115143cf581c7936e55">max_items</a> = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3a12addf4a338cc04471709604d48ae1">block_header_cache</a>.<a class="code hl_variable" href="structCacheHeader.html#ad3b962f8ce6c6115143cf581c7936e55">max_items</a>;</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> }</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> </div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> <span class="comment">// TODO: Cache tracks and sessions?</span></div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> </div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> <span class="comment">// Initialize ECC for Compact Disc</span></div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Initializing ECC for Compact Disc&quot;</span>);</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a510b72290e2bd50e02ef8a2387aa829d">ecc_cd_context</a> = (<a class="code hl_struct" href="structCdEccContext.html">CdEccContext</a> *)<a class="code hl_function" href="decls_8h.html#ac1a30bb251ac148f485c51593c0740c1">aaruf_ecc_cd_init</a>();</div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> </div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a7dc0a0fe0bf6223ff4587fd01c360b76">magic</a> = <a class="code hl_define" href="consts_8h.html#a3c3ba66fe2b547655c9e4b16a1ba519a">AARU_MAGIC</a>;</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a09177c9e68d054bab844305f2771b77a">library_major_version</a> = <a class="code hl_define" href="aaruformat_8h.html#a1341a1043d24b7d7e234fcbfe52dd907">LIBAARUFORMAT_MAJOR_VERSION</a>;</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8fb7db933d8abfeb20a28110cb258922">library_minor_version</a> = <a class="code hl_define" href="aaruformat_8h.html#a9258501500f40e275641fca951a3ce04">LIBAARUFORMAT_MINOR_VERSION</a>;</div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> </div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_open() = %p&quot;</span>, ctx);</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> <span class="keywordflow">return</span> ctx;</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span>}</div>
</div>
<div class="ttc" id="aaaruformat_8h_html"><div class="ttname"><a href="aaruformat_8h.html">aaruformat.h</a></div></div>
<div class="ttc" id="aaaruformat_8h_html_a1341a1043d24b7d7e234fcbfe52dd907"><div class="ttname"><a href="aaruformat_8h.html#a1341a1043d24b7d7e234fcbfe52dd907">LIBAARUFORMAT_MAJOR_VERSION</a></div><div class="ttdeci">#define LIBAARUFORMAT_MAJOR_VERSION</div><div class="ttdef"><b>Definition</b> <a href="aaruformat_8h_source.html#l00022">aaruformat.h:22</a></div></div>
<div class="ttc" id="aaaruformat_8h_html_a9258501500f40e275641fca951a3ce04"><div class="ttname"><a href="aaruformat_8h.html#a9258501500f40e275641fca951a3ce04">LIBAARUFORMAT_MINOR_VERSION</a></div><div class="ttdeci">#define LIBAARUFORMAT_MINOR_VERSION</div><div class="ttdef"><b>Definition</b> <a href="aaruformat_8h_source.html#l00023">aaruformat.h:23</a></div></div>
<div class="ttc" id="aconsts_8h_html_a13ba7a163f45ee45c977d63c408539ca"><div class="ttname"><a href="consts_8h.html#a13ba7a163f45ee45c977d63c408539ca">DIC_MAGIC</a></div><div class="ttdeci">#define DIC_MAGIC</div><div class="ttdoc">Magic identifier for legacy DiscImageChef container (ASCII &quot;DICMFRMT&quot;).</div><div class="ttdef"><b>Definition</b> <a href="consts_8h_source.html#l00061">consts.h:61</a></div></div>
<div class="ttc" id="aconsts_8h_html_a3c3ba66fe2b547655c9e4b16a1ba519a"><div class="ttname"><a href="consts_8h.html#a3c3ba66fe2b547655c9e4b16a1ba519a">AARU_MAGIC</a></div><div class="ttdeci">#define AARU_MAGIC</div><div class="ttdoc">Magic identifier for AaruFormat container (ASCII &quot;AARUFRMT&quot;).</div><div class="ttdef"><b>Definition</b> <a href="consts_8h_source.html#l00064">consts.h:64</a></div></div>
<div class="ttc" id="aconsts_8h_html_a6c8469dfe973ac952cf40394bd2c160b"><div class="ttname"><a href="consts_8h.html#a6c8469dfe973ac952cf40394bd2c160b">MAX_CACHE_SIZE</a></div><div class="ttdeci">#define MAX_CACHE_SIZE</div><div class="ttdoc">Maximum read cache size (bytes).</div><div class="ttdef"><b>Definition</b> <a href="consts_8h_source.html#l00079">consts.h:79</a></div></div>
<div class="ttc" id="aconsts_8h_html_ad2fdced5805aa0364f1c5b073f81dd76"><div class="ttname"><a href="consts_8h.html#ad2fdced5805aa0364f1c5b073f81dd76">AARUF_VERSION_V2</a></div><div class="ttdeci">#define AARUF_VERSION_V2</div><div class="ttdoc">Second ondisk version (C implementation).</div><div class="ttdef"><b>Definition</b> <a href="consts_8h_source.html#l00075">consts.h:75</a></div></div>
<div class="ttc" id="aconsts_8h_html_adbbd4387273589f1c76a5f5786607013"><div class="ttname"><a href="consts_8h.html#adbbd4387273589f1c76a5f5786607013">AARUF_VERSION</a></div><div class="ttdeci">#define AARUF_VERSION</div><div class="ttdoc">Current image format major version (incompatible changes bump this).</div><div class="ttdef"><b>Definition</b> <a href="consts_8h_source.html#l00068">consts.h:68</a></div></div>
<div class="ttc" id="adecls_8h_html_a018e0da1c1f7e4f6187a982c0e40e056"><div class="ttname"><a href="decls_8h.html#a018e0da1c1f7e4f6187a982c0e40e056">AARU_CALL</a></div><div class="ttdeci">#define AARU_CALL</div><div class="ttdef"><b>Definition</b> <a href="decls_8h_source.html#l00045">decls.h:45</a></div></div>
<div class="ttc" id="adecls_8h_html_a6823e139f81a9dfd08efcb0e9b213a49"><div class="ttname"><a href="decls_8h.html#a6823e139f81a9dfd08efcb0e9b213a49">aaruf_close</a></div><div class="ttdeci">int aaruf_close(void *context)</div><div class="ttdoc">Close an Aaru image context, flushing pending data structures and releasing resources.</div><div class="ttdef"><b>Definition</b> <a href="close_8c_source.html#l03995">close.c:3995</a></div></div>
<div class="ttc" id="adecls_8h_html_a9001412c35f3c92d3a9320d27b0d97f9"><div class="ttname"><a href="decls_8h.html#a9001412c35f3c92d3a9320d27b0d97f9">AARU_EXPORT</a></div><div class="ttdeci">#define AARU_EXPORT</div><div class="ttdef"><b>Definition</b> <a href="decls_8h_source.html#l00054">decls.h:54</a></div></div>
<div class="ttc" id="adecls_8h_html_ac1a30bb251ac148f485c51593c0740c1"><div class="ttname"><a href="decls_8h.html#ac1a30bb251ac148f485c51593c0740c1">aaruf_ecc_cd_init</a></div><div class="ttdeci">void * aaruf_ecc_cd_init()</div><div class="ttdoc">Initializes a Compact Disc ECC context.</div><div class="ttdef"><b>Definition</b> <a href="ecc__cd_8c_source.html#l00035">ecc_cd.c:35</a></div></div>
<div class="ttc" id="adecls_8h_html_ac5f5334a51424028574a5433a0e24b20"><div class="ttname"><a href="decls_8h.html#ac5f5334a51424028574a5433a0e24b20">aaruf_get_xml_mediatype</a></div><div class="ttdeci">int32_t aaruf_get_xml_mediatype(int32_t type)</div><div class="ttdef"><b>Definition</b> <a href="helpers_8c_source.html#l00347">helpers.c:347</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3a318acaf230a8ad091ef405caf7e4f411"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a318acaf230a8ad091ef405caf7e4f411">IndexBlock3</a></div><div class="ttdeci">@ IndexBlock3</div><div class="ttdoc">Block containing the index v3.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00147">enums.h:147</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3a3e451c2577a6c790f33f99c2da189d46"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a3e451c2577a6c790f33f99c2da189d46">ChecksumBlock</a></div><div class="ttdeci">@ ChecksumBlock</div><div class="ttdoc">Block containing contents checksums.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00152">enums.h:152</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3a5a0811c5ee97536aef900cecb8787713"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a5a0811c5ee97536aef900cecb8787713">DataBlock</a></div><div class="ttdeci">@ DataBlock</div><div class="ttdoc">Block containing data.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00141">enums.h:141</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3a60609bbcd07339a8bf589e66ef4a3041"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a60609bbcd07339a8bf589e66ef4a3041">TapePartitionBlock</a></div><div class="ttdeci">@ TapePartitionBlock</div><div class="ttdoc">Block containing list of partitions for a tape image.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00158">enums.h:158</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3a6ee3c4c583df36e3dfe796593c1e9439"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a6ee3c4c583df36e3dfe796593c1e9439">IndexBlock2</a></div><div class="ttdeci">@ IndexBlock2</div><div class="ttdoc">Block containing the index v2.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00146">enums.h:146</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3a76691ea3f772bf28e7446d171e205db2"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a76691ea3f772bf28e7446d171e205db2">GeometryBlock</a></div><div class="ttdeci">@ GeometryBlock</div><div class="ttdoc">Block containing logical geometry.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00148">enums.h:148</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3a8ac77889f0c345ed861ed653a3063032"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a8ac77889f0c345ed861ed653a3063032">AaruMetadataJsonBlock</a></div><div class="ttdeci">@ AaruMetadataJsonBlock</div><div class="ttdoc">Block containing JSON version of Aaru Metadata.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00159">enums.h:159</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3aa90947995922dcd8b27c998978aba359"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3aa90947995922dcd8b27c998978aba359">CicmBlock</a></div><div class="ttdeci">@ CicmBlock</div><div class="ttdoc">Block containing CICM XML metadata.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00151">enums.h:151</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3ab8d63dc690b2ba82f066fdc31ab5adad"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ab8d63dc690b2ba82f066fdc31ab5adad">IndexBlock</a></div><div class="ttdeci">@ IndexBlock</div><div class="ttdoc">Block containing the index (v1).</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00145">enums.h:145</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3aba4d0f50b26af1d0292daaa0d70feacf"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3aba4d0f50b26af1d0292daaa0d70feacf">DeDuplicationTable2</a></div><div class="ttdeci">@ DeDuplicationTable2</div><div class="ttdoc">Block containing a deduplication table v2.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00143">enums.h:143</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3ac3a117f2498bf736a76d5d3a3830540a"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ac3a117f2498bf736a76d5d3a3830540a">TapeFileBlock</a></div><div class="ttdeci">@ TapeFileBlock</div><div class="ttdoc">Block containing list of files for a tape image.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00157">enums.h:157</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3ac9f1e20a51c73f238aa322e180c42bd4"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ac9f1e20a51c73f238aa322e180c42bd4">DeDuplicationTable</a></div><div class="ttdeci">@ DeDuplicationTable</div><div class="ttdoc">Block containing a deduplication table (v1).</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00142">enums.h:142</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3ad33812deb344562478c4e0d208a114db"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad33812deb344562478c4e0d208a114db">DumpHardwareBlock</a></div><div class="ttdeci">@ DumpHardwareBlock</div><div class="ttdoc">Block containing an array of hardware used to create the image.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00156">enums.h:156</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a></div><div class="ttdeci">@ MetadataBlock</div><div class="ttdoc">Block containing metadata.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00149">enums.h:149</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3ae550bdf57660fcbf3500155c29d4637e"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ae550bdf57660fcbf3500155c29d4637e">TracksBlock</a></div><div class="ttdeci">@ TracksBlock</div><div class="ttdoc">Block containing optical disc tracks.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00150">enums.h:150</a></div></div>
<div class="ttc" id="aenums_8h_html_abaa37b51ab0a4cc3d5d1a0b4820c8466ad45ebea105994c5fe86200f36d9e6ccd"><div class="ttname"><a href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466ad45ebea105994c5fe86200f36d9e6ccd">BlockMedia</a></div><div class="ttdeci">@ BlockMedia</div><div class="ttdoc">Media that is physically block-based or abstracted like that.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00219">enums.h:219</a></div></div>
<div class="ttc" id="aerrors_8h_html_a1d6e49f7e8a1fa489efa0a582e90b5de"><div class="ttname"><a href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a></div><div class="ttdeci">#define AARUF_STATUS_OK</div><div class="ttdoc">Sector present and read without uncorrectable errors.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00075">errors.h:75</a></div></div>
<div class="ttc" id="aerrors_8h_html_a35a771e3648bf971a004d4b2be9b5ec4"><div class="ttname"><a href="errors_8h.html#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</a></div><div class="ttdeci">#define AARUF_ERROR_NOT_ENOUGH_MEMORY</div><div class="ttdoc">Memory allocation failure (critical).</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00048">errors.h:48</a></div></div>
<div class="ttc" id="aerrors_8h_html_a626d70083785adf028130ac349f270c5"><div class="ttname"><a href="errors_8h.html#a626d70083785adf028130ac349f270c5">AARUF_ERROR_INCOMPATIBLE_VERSION</a></div><div class="ttdeci">#define AARUF_ERROR_INCOMPATIBLE_VERSION</div><div class="ttdoc">Image uses a newer incompatible on-disk version.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00042">errors.h:42</a></div></div>
<div class="ttc" id="aerrors_8h_html_ab6c57651868e0f35e3821680ebb2b17a"><div class="ttname"><a href="errors_8h.html#ab6c57651868e0f35e3821680ebb2b17a">AARUF_ERROR_CANNOT_READ_INDEX</a></div><div class="ttdeci">#define AARUF_ERROR_CANNOT_READ_INDEX</div><div class="ttdoc">Index block unreadable / truncated / bad identifier.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00043">errors.h:43</a></div></div>
<div class="ttc" id="aerrors_8h_html_abb63e240b11d790da83bd34507b57851"><div class="ttname"><a href="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</a></div><div class="ttdeci">#define AARUF_ERROR_NOT_AARUFORMAT</div><div class="ttdoc">Input file/stream failed magic or structural validation.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00040">errors.h:40</a></div></div>
<div class="ttc" id="aerrors_8h_html_acebe3e4bcc498066fe65d9e24e16c7f5"><div class="ttname"><a href="errors_8h.html#acebe3e4bcc498066fe65d9e24e16c7f5">AARUF_ERROR_FILE_TOO_SMALL</a></div><div class="ttdeci">#define AARUF_ERROR_FILE_TOO_SMALL</div><div class="ttdoc">File size insufficient for mandatory header / structures.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00041">errors.h:41</a></div></div>
<div class="ttc" id="agroup__SectorTags_html_ggaf863e81d172ce7a216d8687a8a23293aa81dbcd4677b6377bce5351ad92fc4d64"><div class="ttname"><a href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa81dbcd4677b6377bce5351ad92fc4d64">MaxSectorTag</a></div><div class="ttdeci">@ MaxSectorTag</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00918">aaru.h:918</a></div></div>
<div class="ttc" id="aheader_8h_html_ab17964dacc36dca03ec5e75aa40a4502"><div class="ttname"><a href="header_8h.html#ab17964dacc36dca03ec5e75aa40a4502">AARU_HEADER_APP_NAME_LEN</a></div><div class="ttdeci">#define AARU_HEADER_APP_NAME_LEN</div><div class="ttdoc">Size in bytes (UTF-16LE) of application name field (32 UTF-16 code units).</div><div class="ttdef"><b>Definition</b> <a href="header_8h_source.html#l00059">header.h:59</a></div></div>
<div class="ttc" id="ainternal_8h_html"><div class="ttname"><a href="internal_8h.html">internal.h</a></div></div>
<div class="ttc" id="ainternal_8h_html_a0e2cfc858c0551bc9bef11d5bdb85aac"><div class="ttname"><a href="internal_8h.html#a0e2cfc858c0551bc9bef11d5bdb85aac">process_dumphw_block</a></div><div class="ttdeci">void process_dumphw_block(aaruformat_context *ctx, const IndexEntry *entry)</div><div class="ttdoc">Processes a dump hardware block from the image stream.</div><div class="ttdef"><b>Definition</b> <a href="blocks_2dump_8c_source.html#l00108">dump.c:108</a></div></div>
<div class="ttc" id="ainternal_8h_html_a1baad6508d1cde5a712794e956fb3d3c"><div class="ttname"><a href="internal_8h.html#a1baad6508d1cde5a712794e956fb3d3c">process_index_v2</a></div><div class="ttdeci">UT_array * process_index_v2(aaruformat_context *ctx)</div><div class="ttdoc">Processes an index block (version 2) from the image stream.</div><div class="ttdef"><b>Definition</b> <a href="index__v2_8c_source.html#l00081">index_v2.c:81</a></div></div>
<div class="ttc" id="ainternal_8h_html_a1caeae710ee5e1dd356e43b3b659e9c0"><div class="ttname"><a href="internal_8h.html#a1caeae710ee5e1dd356e43b3b659e9c0">process_ddt_v2</a></div><div class="ttdeci">int32_t process_ddt_v2(aaruformat_context *ctx, IndexEntry *entry, bool *found_user_data_ddt)</div><div class="ttdoc">Processes a DDT v2 block from the image stream.</div><div class="ttdef"><b>Definition</b> <a href="ddt__v2_8c_source.html#l00096">ddt_v2.c:96</a></div></div>
<div class="ttc" id="ainternal_8h_html_a28d844a06cecbbf436d825a3c99ff0eb"><div class="ttname"><a href="internal_8h.html#a28d844a06cecbbf436d825a3c99ff0eb">process_data_block</a></div><div class="ttdeci">int32_t process_data_block(aaruformat_context *ctx, IndexEntry *entry)</div><div class="ttdoc">Processes a data block from the image stream.</div><div class="ttdef"><b>Definition</b> <a href="data_8c_source.html#l00071">data.c:71</a></div></div>
<div class="ttc" id="ainternal_8h_html_a375a516fdf6f81e997365d93b21f6708"><div class="ttname"><a href="internal_8h.html#a375a516fdf6f81e997365d93b21f6708">process_tracks_block</a></div><div class="ttdeci">void process_tracks_block(aaruformat_context *ctx, const IndexEntry *entry)</div><div class="ttdoc">Parse and integrate a Tracks block from the image stream into the context.</div><div class="ttdef"><b>Definition</b> <a href="optical_8c_source.html#l00111">optical.c:111</a></div></div>
<div class="ttc" id="ainternal_8h_html_a43974d4c183240be30d49ff09ef7b8c2"><div class="ttname"><a href="internal_8h.html#a43974d4c183240be30d49ff09ef7b8c2">process_metadata_block</a></div><div class="ttdeci">void process_metadata_block(aaruformat_context *ctx, const IndexEntry *entry)</div><div class="ttdoc">Processes a metadata block from the image stream.</div><div class="ttdef"><b>Definition</b> <a href="blocks_2metadata_8c_source.html#l00035">metadata.c:35</a></div></div>
<div class="ttc" id="ainternal_8h_html_a565eace88f86c500249be1f2a89a1c60"><div class="ttname"><a href="internal_8h.html#a565eace88f86c500249be1f2a89a1c60">process_checksum_block</a></div><div class="ttdeci">void process_checksum_block(aaruformat_context *ctx, const IndexEntry *entry)</div><div class="ttdoc">Processes a checksum block from the image stream.</div><div class="ttdef"><b>Definition</b> <a href="checksum_8c_source.html#l00039">checksum.c:39</a></div></div>
<div class="ttc" id="ainternal_8h_html_a5d3b1092abc36a27a441a01a8a0b3b48"><div class="ttname"><a href="internal_8h.html#a5d3b1092abc36a27a441a01a8a0b3b48">process_index_v1</a></div><div class="ttdeci">UT_array * process_index_v1(aaruformat_context *ctx)</div><div class="ttdoc">Processes an index block (version 1) from the image stream.</div><div class="ttdef"><b>Definition</b> <a href="index__v1_8c_source.html#l00079">index_v1.c:79</a></div></div>
<div class="ttc" id="ainternal_8h_html_a5e0397faed8aea27c5a6a3881875de54"><div class="ttname"><a href="internal_8h.html#a5e0397faed8aea27c5a6a3881875de54">process_cicm_block</a></div><div class="ttdeci">void process_cicm_block(aaruformat_context *ctx, const IndexEntry *entry)</div><div class="ttdoc">Processes a CICM XML metadata block from the image stream.</div><div class="ttdef"><b>Definition</b> <a href="blocks_2metadata_8c_source.html#l00306">metadata.c:306</a></div></div>
<div class="ttc" id="ainternal_8h_html_a81d410de6727d95a85b827067e1a8bc6"><div class="ttname"><a href="internal_8h.html#a81d410de6727d95a85b827067e1a8bc6">process_geometry_block</a></div><div class="ttdeci">void process_geometry_block(aaruformat_context *ctx, const IndexEntry *entry)</div><div class="ttdoc">Processes a logical geometry block from the image stream.</div><div class="ttdef"><b>Definition</b> <a href="blocks_2metadata_8c_source.html#l00246">metadata.c:246</a></div></div>
<div class="ttc" id="ainternal_8h_html_a829bbac3c17b60efd8f93188a8de8278"><div class="ttname"><a href="internal_8h.html#a829bbac3c17b60efd8f93188a8de8278">process_tape_files_block</a></div><div class="ttdeci">void process_tape_files_block(aaruformat_context *ctx, const IndexEntry *entry)</div><div class="ttdoc">Processes a tape file metadata block from the image stream.</div><div class="ttdef"><b>Definition</b> <a href="tape_8c_source.html#l00126">tape.c:126</a></div></div>
<div class="ttc" id="ainternal_8h_html_a84003ec881425a7b28ec24cb48d19f02"><div class="ttname"><a href="internal_8h.html#a84003ec881425a7b28ec24cb48d19f02">process_aaru_metadata_json_block</a></div><div class="ttdeci">void process_aaru_metadata_json_block(aaruformat_context *ctx, const IndexEntry *entry)</div><div class="ttdoc">Processes an Aaru metadata JSON block from the image stream during image opening.</div><div class="ttdef"><b>Definition</b> <a href="blocks_2metadata_8c_source.html#l00470">metadata.c:470</a></div></div>
<div class="ttc" id="ainternal_8h_html_aa76718b0402b1a28be3d563d5e62028e"><div class="ttname"><a href="internal_8h.html#aa76718b0402b1a28be3d563d5e62028e">process_tape_partitions_block</a></div><div class="ttdeci">void process_tape_partitions_block(aaruformat_context *ctx, const IndexEntry *entry)</div><div class="ttdoc">Processes a tape partition metadata block from the image stream.</div><div class="ttdef"><b>Definition</b> <a href="tape_8c_source.html#l00346">tape.c:346</a></div></div>
<div class="ttc" id="ainternal_8h_html_abaf38090f967423898b99e0455751c07"><div class="ttname"><a href="internal_8h.html#abaf38090f967423898b99e0455751c07">process_ddt_v1</a></div><div class="ttdeci">int32_t process_ddt_v1(aaruformat_context *ctx, IndexEntry *entry, bool *found_user_data_ddt)</div><div class="ttdoc">Processes a DDT v1 block from the image stream.</div><div class="ttdef"><b>Definition</b> <a href="ddt__v1_8c_source.html#l00085">ddt_v1.c:85</a></div></div>
<div class="ttc" id="ainternal_8h_html_aff88fae9938d5f56318bfd7a455d5e94"><div class="ttname"><a href="internal_8h.html#aff88fae9938d5f56318bfd7a455d5e94">process_index_v3</a></div><div class="ttdeci">UT_array * process_index_v3(aaruformat_context *ctx)</div><div class="ttdoc">Processes an index block (version 3) from the image stream.</div><div class="ttdef"><b>Definition</b> <a href="index__v3_8c_source.html#l00098">index_v3.c:98</a></div></div>
<div class="ttc" id="alog_8h_html"><div class="ttname"><a href="log_8h.html">log.h</a></div></div>
<div class="ttc" id="alog_8h_html_a053d6037d543b84ce59308ce71d15cd1"><div class="ttname"><a href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a></div><div class="ttdeci">#define FATAL(fmt,...)</div><div class="ttdef"><b>Definition</b> <a href="log_8h_source.html#l00040">log.h:40</a></div></div>
<div class="ttc" id="alog_8h_html_a21cc0459b78d5f2d7bd737e5aae1278a"><div class="ttname"><a href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a></div><div class="ttdeci">#define TRACE(fmt,...)</div><div class="ttdef"><b>Definition</b> <a href="log_8h_source.html#l00025">log.h:25</a></div></div>
<div class="ttc" id="aopen_8c_html_a356a7467b41a2929a27a6639cd3a2b50"><div class="ttname"><a href="open_8c.html#a356a7467b41a2929a27a6639cd3a2b50">cleanup_open_failure</a></div><div class="ttdeci">static void cleanup_open_failure(aaruformat_context *ctx)</div><div class="ttdef"><b>Definition</b> <a href="#l00031">open.c:31</a></div></div>
<div class="ttc" id="aopen_8c_html_afc4932cdc795ffb2ef3a33d5b8c57656"><div class="ttname"><a href="open_8c.html#afc4932cdc795ffb2ef3a33d5b8c57656">aaruf_open</a></div><div class="ttdeci">void * aaruf_open(const char *filepath)</div><div class="ttdoc">Opens an existing AaruFormat image file.</div><div class="ttdef"><b>Definition</b> <a href="#l00125">open.c:125</a></div></div>
<div class="ttc" id="astructAaruHeaderV2_html"><div class="ttname"><a href="structAaruHeaderV2.html">AaruHeaderV2</a></div><div class="ttdoc">Version 2 container header with GUID, alignment shifts, and feature negotiation bitmaps.</div><div class="ttdef"><b>Definition</b> <a href="header_8h_source.html#l00106">header.h:107</a></div></div>
<div class="ttc" id="astructAaruHeaderV2_html_a0afcf9a5f565a9053351f44234c90dc3"><div class="ttname"><a href="structAaruHeaderV2.html#a0afcf9a5f565a9053351f44234c90dc3">AaruHeaderV2::application</a></div><div class="ttdeci">uint8_t application[64]</div><div class="ttdoc">UTF-8 creator application name (fixed 64 bytes).</div><div class="ttdef"><b>Definition</b> <a href="header_8h_source.html#l00109">header.h:109</a></div></div>
<div class="ttc" id="astructAaruHeaderV2_html_a1c26feafd945328f8f1854b523a0f03c"><div class="ttname"><a href="structAaruHeaderV2.html#a1c26feafd945328f8f1854b523a0f03c">AaruHeaderV2::applicationMajorVersion</a></div><div class="ttdeci">uint8_t applicationMajorVersion</div><div class="ttdoc">Creator application major version.</div><div class="ttdef"><b>Definition</b> <a href="header_8h_source.html#l00112">header.h:112</a></div></div>
<div class="ttc" id="astructAaruHeaderV2_html_a27af1bfabbc7650471a6010475116697"><div class="ttname"><a href="structAaruHeaderV2.html#a27af1bfabbc7650471a6010475116697">AaruHeaderV2::identifier</a></div><div class="ttdeci">uint64_t identifier</div><div class="ttdoc">File magic (AARU_MAGIC).</div><div class="ttdef"><b>Definition</b> <a href="header_8h_source.html#l00108">header.h:108</a></div></div>
<div class="ttc" id="astructAaruHeaderV2_html_a45bc7e2afc9008ce6f4ae1dba93bdac3"><div class="ttname"><a href="structAaruHeaderV2.html#a45bc7e2afc9008ce6f4ae1dba93bdac3">AaruHeaderV2::lastWrittenTime</a></div><div class="ttdeci">int64_t lastWrittenTime</div><div class="ttdoc">Last modification FILETIME (100 ns since 1601-01-01 UTC).</div><div class="ttdef"><b>Definition</b> <a href="header_8h_source.html#l00117">header.h:117</a></div></div>
<div class="ttc" id="astructAaruHeaderV2_html_a4ec4b1d593f5a0af19f6d7b8eaeada40"><div class="ttname"><a href="structAaruHeaderV2.html#a4ec4b1d593f5a0af19f6d7b8eaeada40">AaruHeaderV2::indexOffset</a></div><div class="ttdeci">uint64_t indexOffset</div><div class="ttdoc">Absolute byte offset to primary index block (MUST be &gt; 0; 0 =&gt; corrupt/unreadable).</div><div class="ttdef"><b>Definition</b> <a href="header_8h_source.html#l00115">header.h:115</a></div></div>
<div class="ttc" id="astructAaruHeaderV2_html_a5ae79accbb8ba2762d01a63ad334ee60"><div class="ttname"><a href="structAaruHeaderV2.html#a5ae79accbb8ba2762d01a63ad334ee60">AaruHeaderV2::applicationMinorVersion</a></div><div class="ttdeci">uint8_t applicationMinorVersion</div><div class="ttdoc">Creator application minor / patch version.</div><div class="ttdef"><b>Definition</b> <a href="header_8h_source.html#l00113">header.h:113</a></div></div>
<div class="ttc" id="astructAaruHeaderV2_html_a81b114ab2b1fa786f64e9e914af3ba27"><div class="ttname"><a href="structAaruHeaderV2.html#a81b114ab2b1fa786f64e9e914af3ba27">AaruHeaderV2::mediaType</a></div><div class="ttdeci">uint32_t mediaType</div><div class="ttdoc">Media type enumeration (value from MediaType).</div><div class="ttdef"><b>Definition</b> <a href="header_8h_source.html#l00114">header.h:114</a></div></div>
<div class="ttc" id="astructAaruHeaderV2_html_ae2d6d3c7bc0a1956fb246cf7acbddeeb"><div class="ttname"><a href="structAaruHeaderV2.html#ae2d6d3c7bc0a1956fb246cf7acbddeeb">AaruHeaderV2::imageMinorVersion</a></div><div class="ttdeci">uint8_t imageMinorVersion</div><div class="ttdoc">Container format minor version.</div><div class="ttdef"><b>Definition</b> <a href="header_8h_source.html#l00111">header.h:111</a></div></div>
<div class="ttc" id="astructAaruHeaderV2_html_ae849dae5af5cf31b1b815ef67b3c621f"><div class="ttname"><a href="structAaruHeaderV2.html#ae849dae5af5cf31b1b815ef67b3c621f">AaruHeaderV2::creationTime</a></div><div class="ttdeci">int64_t creationTime</div><div class="ttdoc">Creation FILETIME (100 ns since 1601-01-01 UTC).</div><div class="ttdef"><b>Definition</b> <a href="header_8h_source.html#l00116">header.h:116</a></div></div>
<div class="ttc" id="astructAaruHeaderV2_html_af79ca31bcd428d1a54ac25c30d09b7a7"><div class="ttname"><a href="structAaruHeaderV2.html#af79ca31bcd428d1a54ac25c30d09b7a7">AaruHeaderV2::imageMajorVersion</a></div><div class="ttdeci">uint8_t imageMajorVersion</div><div class="ttdoc">Container format major version.</div><div class="ttdef"><b>Definition</b> <a href="header_8h_source.html#l00110">header.h:110</a></div></div>
<div class="ttc" id="astructAaruHeader_html"><div class="ttname"><a href="structAaruHeader.html">AaruHeader</a></div><div class="ttdoc">Version 1 container header placed at offset 0 for legacy / initial format.</div><div class="ttdef"><b>Definition</b> <a href="header_8h_source.html#l00076">header.h:77</a></div></div>
<div class="ttc" id="astructCacheHeader_html_a44229bb929d8949f3c2700d07123d224"><div class="ttname"><a href="structCacheHeader.html#a44229bb929d8949f3c2700d07123d224">CacheHeader::cache</a></div><div class="ttdeci">struct CacheEntry * cache</div><div class="ttdoc">Hash root (uthash). NULL when empty.</div><div class="ttdef"><b>Definition</b> <a href="lru_8h_source.html#l00048">lru.h:48</a></div></div>
<div class="ttc" id="astructCacheHeader_html_ad3b962f8ce6c6115143cf581c7936e55"><div class="ttname"><a href="structCacheHeader.html#ad3b962f8ce6c6115143cf581c7936e55">CacheHeader::max_items</a></div><div class="ttdeci">uint64_t max_items</div><div class="ttdoc">Hard limit for number of entries (policy: enforce/ignore depends on implementation).</div><div class="ttdef"><b>Definition</b> <a href="lru_8h_source.html#l00047">lru.h:47</a></div></div>
<div class="ttc" id="astructCdEccContext_html"><div class="ttname"><a href="structCdEccContext.html">CdEccContext</a></div><div class="ttdoc">Lookup tables and state for Compact Disc EDC/ECC (P/Q) regeneration / verification.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00085">context.h:86</a></div></div>
<div class="ttc" id="astructGeometryBlockHeader_html_a233b19be8361b1c3c1963d8521924138"><div class="ttname"><a href="structGeometryBlockHeader.html#a233b19be8361b1c3c1963d8521924138">GeometryBlockHeader::identifier</a></div><div class="ttdeci">uint32_t identifier</div><div class="ttdoc">Block identifier, must be BlockType::GeometryBlock.</div><div class="ttdef"><b>Definition</b> <a href="data_8h_source.html#l00092">data.h:92</a></div></div>
<div class="ttc" id="astructImageInfo_html_a76611d5087e0a9fd4d329fac7c9ec3f3"><div class="ttname"><a href="structImageInfo.html#a76611d5087e0a9fd4d329fac7c9ec3f3">ImageInfo::MediaType</a></div><div class="ttdeci">uint32_t MediaType</div><div class="ttdoc">Media type identifier (see MediaType enum; 0=Unknown)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00881">aaru.h:881</a></div></div>
<div class="ttc" id="astructImageInfo_html_a7ed25efcf8cec55d6609b83bcd17b2d0"><div class="ttname"><a href="structImageInfo.html#a7ed25efcf8cec55d6609b83bcd17b2d0">ImageInfo::MetadataMediaType</a></div><div class="ttdeci">uint8_t MetadataMediaType</div><div class="ttdoc">Media type for sidecar generation (internal archival use)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00882">aaru.h:882</a></div></div>
<div class="ttc" id="astructImageInfo_html_aac1ac48f57afd415467cd6f13f01644b"><div class="ttname"><a href="structImageInfo.html#aac1ac48f57afd415467cd6f13f01644b">ImageInfo::SectorSize</a></div><div class="ttdeci">uint32_t SectorSize</div><div class="ttdoc">Size of each logical sector in bytes (512, 2048, 2352, 4096, etc.)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00875">aaru.h:875</a></div></div>
<div class="ttc" id="astructImageInfo_html_aaea8b3a14fc03f9a4b045318160b7f54"><div class="ttname"><a href="structImageInfo.html#aaea8b3a14fc03f9a4b045318160b7f54">ImageInfo::Application</a></div><div class="ttdeci">char Application[64]</div><div class="ttdoc">Name of application that created the image (NUL-terminated)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00877">aaru.h:877</a></div></div>
<div class="ttc" id="astructImageInfo_html_abca8e73a9655d810e6d30d36c3ab54d7"><div class="ttname"><a href="structImageInfo.html#abca8e73a9655d810e6d30d36c3ab54d7">ImageInfo::ImageSize</a></div><div class="ttdeci">uint64_t ImageSize</div><div class="ttdoc">Size of the image payload in bytes (excludes headers/metadata)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00873">aaru.h:873</a></div></div>
<div class="ttc" id="astructImageInfo_html_acbccd97dbc139ed2f81d9997560725bb"><div class="ttname"><a href="structImageInfo.html#acbccd97dbc139ed2f81d9997560725bb">ImageInfo::CreationTime</a></div><div class="ttdeci">int64_t CreationTime</div><div class="ttdoc">Image creation timestamp (Windows FILETIME: 100ns since 1601-01-01 UTC)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00879">aaru.h:879</a></div></div>
<div class="ttc" id="astructImageInfo_html_ada8567fee9fbe636cb10f788b3705e3a"><div class="ttname"><a href="structImageInfo.html#ada8567fee9fbe636cb10f788b3705e3a">ImageInfo::LastModificationTime</a></div><div class="ttdeci">int64_t LastModificationTime</div><div class="ttdoc">Last modification timestamp (Windows FILETIME format)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00880">aaru.h:880</a></div></div>
<div class="ttc" id="astructImageInfo_html_adce978941d9900c8c05e620df67f8c5c"><div class="ttname"><a href="structImageInfo.html#adce978941d9900c8c05e620df67f8c5c">ImageInfo::Version</a></div><div class="ttdeci">char Version[32]</div><div class="ttdoc">Image format version string (NUL-terminated, e.g., &quot;6.0&quot;)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00876">aaru.h:876</a></div></div>
<div class="ttc" id="astructImageInfo_html_ae3e1b9cde1c51152b00eb1b59e199906"><div class="ttname"><a href="structImageInfo.html#ae3e1b9cde1c51152b00eb1b59e199906">ImageInfo::Sectors</a></div><div class="ttdeci">uint64_t Sectors</div><div class="ttdoc">Total count of addressable logical sectors/blocks.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00874">aaru.h:874</a></div></div>
<div class="ttc" id="astructImageInfo_html_aebf7783c46e640a8e7d0192ba2843e9a"><div class="ttname"><a href="structImageInfo.html#aebf7783c46e640a8e7d0192ba2843e9a">ImageInfo::ApplicationVersion</a></div><div class="ttdeci">char ApplicationVersion[32]</div><div class="ttdoc">Version of the creating application (NUL-terminated)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00878">aaru.h:878</a></div></div>
<div class="ttc" id="astructIndexEntry_html"><div class="ttname"><a href="structIndexEntry.html">IndexEntry</a></div><div class="ttdoc">Single index entry describing a block&#39;s type, (optional) data classification, and file offset.</div><div class="ttdef"><b>Definition</b> <a href="index_8h_source.html#l00108">index.h:109</a></div></div>
<div class="ttc" id="astructIndexEntry_html_a4b5c7115ac83019c3f77c6f047e5f75e"><div class="ttname"><a href="structIndexEntry.html#a4b5c7115ac83019c3f77c6f047e5f75e">IndexEntry::blockType</a></div><div class="ttdeci">uint32_t blockType</div><div class="ttdoc">Block identifier of the referenced block (value from BlockType).</div><div class="ttdef"><b>Definition</b> <a href="index_8h_source.html#l00110">index.h:110</a></div></div>
<div class="ttc" id="astructIndexEntry_html_a854951a64192d7e4cdcfa6dd6fd2b3ea"><div class="ttname"><a href="structIndexEntry.html#a854951a64192d7e4cdcfa6dd6fd2b3ea">IndexEntry::offset</a></div><div class="ttdeci">uint64_t offset</div><div class="ttdoc">Absolute byte offset in the image where the referenced block header begins.</div><div class="ttdef"><b>Definition</b> <a href="index_8h_source.html#l00112">index.h:112</a></div></div>
<div class="ttc" id="astructIndexEntry_html_ae5d35082a756e0388efbf5fabbe93d10"><div class="ttname"><a href="structIndexEntry.html#ae5d35082a756e0388efbf5fabbe93d10">IndexEntry::dataType</a></div><div class="ttdeci">uint16_t dataType</div><div class="ttdoc">Data classification (value from DataType) or unused for untyped blocks.</div><div class="ttdef"><b>Definition</b> <a href="index_8h_source.html#l00111">index.h:111</a></div></div>
<div class="ttc" id="astructaaruformat__context_html"><div class="ttname"><a href="structaaruformat__context.html">aaruformat_context</a></div><div class="ttdoc">Master context representing an open or increation Aaru image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00171">context.h:172</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a09177c9e68d054bab844305f2771b77a"><div class="ttname"><a href="structaaruformat__context.html#a09177c9e68d054bab844305f2771b77a">aaruformat_context::library_major_version</a></div><div class="ttdeci">uint8_t library_major_version</div><div class="ttdoc">Linked library major version.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00177">context.h:177</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a29c17435980ac94547f471485a891f54"><div class="ttname"><a href="structaaruformat__context.html#a29c17435980ac94547f471485a891f54">aaruformat_context::cylinders</a></div><div class="ttdeci">uint32_t cylinders</div><div class="ttdoc">Cylinders of the media represented by the image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00234">context.h:234</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a3a12addf4a338cc04471709604d48ae1"><div class="ttname"><a href="structaaruformat__context.html#a3a12addf4a338cc04471709604d48ae1">aaruformat_context::block_header_cache</a></div><div class="ttdeci">struct CacheHeader block_header_cache</div><div class="ttdoc">LRU/Cache header for block headers.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00256">context.h:256</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a4023f622bac759754c68ac633c53e3f4"><div class="ttname"><a href="structaaruformat__context.html#a4023f622bac759754c68ac633c53e3f4">aaruformat_context::shift</a></div><div class="ttdeci">uint8_t shift</div><div class="ttdoc">Legacy overall shift (deprecated by data_shift/table_shift).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00195">context.h:195</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a510b72290e2bd50e02ef8a2387aa829d"><div class="ttname"><a href="structaaruformat__context.html#a510b72290e2bd50e02ef8a2387aa829d">aaruformat_context::ecc_cd_context</a></div><div class="ttdeci">CdEccContext * ecc_cd_context</div><div class="ttdoc">CD ECC/EDC helper tables (allocated on demand).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00248">context.h:248</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a58359ec8607d1d10e0af8699be238e77"><div class="ttname"><a href="structaaruformat__context.html#a58359ec8607d1d10e0af8699be238e77">aaruformat_context::block_cache</a></div><div class="ttdeci">struct CacheHeader block_cache</div><div class="ttdoc">LRU/Cache header for block payloads.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00257">context.h:257</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a670dec8d59407989fefc361dc26c6832"><div class="ttname"><a href="structaaruformat__context.html#a670dec8d59407989fefc361dc26c6832">aaruformat_context::header</a></div><div class="ttdeci">AaruHeaderV2 header</div><div class="ttdoc">Parsed container header (v2).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00175">context.h:175</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a7dc0a0fe0bf6223ff4587fd01c360b76"><div class="ttname"><a href="structaaruformat__context.html#a7dc0a0fe0bf6223ff4587fd01c360b76">aaruformat_context::magic</a></div><div class="ttdeci">uint64_t magic</div><div class="ttdoc">File magic (AARU_MAGIC) post-open.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00174">context.h:174</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a8fb7db933d8abfeb20a28110cb258922"><div class="ttname"><a href="structaaruformat__context.html#a8fb7db933d8abfeb20a28110cb258922">aaruformat_context::library_minor_version</a></div><div class="ttdeci">uint8_t library_minor_version</div><div class="ttdoc">Linked library minor version;.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00178">context.h:178</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a9ac9d12e8fde7a69c01cdf2dc32f33bd"><div class="ttname"><a href="structaaruformat__context.html#a9ac9d12e8fde7a69c01cdf2dc32f33bd">aaruformat_context::geometry_block</a></div><div class="ttdeci">GeometryBlockHeader geometry_block</div><div class="ttdoc">Logical geometry block (if present).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00229">context.h:229</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_aaeb71d74c7d9236d80186a25066326a1"><div class="ttname"><a href="structaaruformat__context.html#aaeb71d74c7d9236d80186a25066326a1">aaruformat_context::sectors_per_track</a></div><div class="ttdeci">uint32_t sectors_per_track</div><div class="ttdoc">Sectors per track of the media represented by the image (for variable image, the smallest)</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00236">context.h:236</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_ab213059edf055cf1c3e2021bc395c78e"><div class="ttname"><a href="structaaruformat__context.html#ab213059edf055cf1c3e2021bc395c78e">aaruformat_context::heads</a></div><div class="ttdeci">uint32_t heads</div><div class="ttdoc">Heads of the media represented by the image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00235">context.h:235</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_ab516fae594bde4f76b75488d0a3ca3a8"><div class="ttname"><a href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">aaruformat_context::imageStream</a></div><div class="ttdeci">FILE * imageStream</div><div class="ttdoc">Underlying FILE* stream (binary mode).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00176">context.h:176</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_ac970291b3449c04221827b9c2c18ac70"><div class="ttname"><a href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">aaruformat_context::image_info</a></div><div class="ttdeci">ImageInfo image_info</div><div class="ttdoc">Exposed high-level image info summary.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00260">context.h:260</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_ad3d5494e23b07418e9fbd22c3771e534"><div class="ttname"><a href="structaaruformat__context.html#ad3d5494e23b07418e9fbd22c3771e534">aaruformat_context::readableSectorTags</a></div><div class="ttdeci">bool * readableSectorTags</div><div class="ttdoc">Per-sector boolean array (optical tags read successfully?).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00263">context.h:263</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a href="open_8c.html">open.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>