Files
libaaruformat/docs/html/read_8c_source.html

1658 lines
346 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/read.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('read_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">read.c</div></div>
</div><!--header-->
<div class="contents">
<a href="read_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;stdlib.h&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &lt;<a class="code" href="aaruformat_8h.html">aaruformat.h</a>&gt;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &quot;<a class="code" href="internal_8h.html">internal.h</a>&quot;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &quot;<a class="code" href="log_8h.html">log.h</a>&quot;</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span></div>
<div class="foldopen" id="foldopen00085" data-start="{" data-end="}">
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="decls_8h.html#a48f93ec154d0aed7cb713391a7717b46"> 85</a></span><a class="code hl_define" href="decls_8h.html#a9001412c35f3c92d3a9320d27b0d97f9">AARU_EXPORT</a> int32_t <a class="code hl_define" href="decls_8h.html#a018e0da1c1f7e4f6187a982c0e40e056">AARU_CALL</a> <a class="code hl_function" href="read_8c.html#aa8588f3b6c705666833c84e6cd4cfe62">aaruf_read_media_tag</a>(<span class="keywordtype">void</span> *context, uint8_t *data, <span class="keyword">const</span> int32_t tag, uint32_t *length)</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>{</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">const</span> uint32_t initial_length = length == NULL ? 0U : *length;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_read_media_tag(%p, %p, %d, %u)&quot;</span>, context, data, tag, initial_length);</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <a class="code hl_struct" href="structmediaTagEntry.html">mediaTagEntry</a> *item;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> {</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_media_tag() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</a>;</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> }</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">if</span>(length == NULL)</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid length pointer&quot;</span>);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_media_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> }</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">if</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="l00111" name="l00111"></a><span class="lineno"> 111</span> {</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_media_tag() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</a>;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> }</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Finding media tag %d&quot;</span>, tag);</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> HASH_FIND_INT(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8b769e9fb9467aa11d4a2936cf5cf5ed">mediaTags</a>, &amp;tag, item);</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keywordflow">if</span>(item == NULL)</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> {</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Media tag not found&quot;</span>);</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> *length = 0;</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_media_tag() = AARUF_ERROR_MEDIA_TAG_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ad87e52bef1f48eebb49458a5f64f7016">AARUF_ERROR_MEDIA_TAG_NOT_PRESENT</a>;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> }</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keywordflow">if</span>(data == NULL || *length &lt; item-&gt;length)</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> {</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Buffer too small for media tag %d, required %u bytes&quot;</span>, tag, item-&gt;<a class="code hl_variable" href="structmediaTagEntry.html#aa96c6684fd98145d0089d72957d2afa7">length</a>);</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> *length = item-&gt;<a class="code hl_variable" href="structmediaTagEntry.html#aa96c6684fd98145d0089d72957d2afa7">length</a>;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_media_tag() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</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> *length = item-&gt;<a class="code hl_variable" href="structmediaTagEntry.html#aa96c6684fd98145d0089d72957d2afa7">length</a>;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> memcpy(data, item-&gt;<a class="code hl_variable" href="structmediaTagEntry.html#a334fc65b37efdfb624e804e98c398927">data</a>, item-&gt;<a class="code hl_variable" href="structmediaTagEntry.html#aa96c6684fd98145d0089d72957d2afa7">length</a>);</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;Media tag %d read successfully, length %u&quot;</span>, tag, *length);</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_media_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span>}</div>
</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span></div>
<div class="foldopen" id="foldopen00253" data-start="{" data-end="}">
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"><a class="line" href="decls_8h.html#a2297e89619ba11cb0a0779a985fc1c34"> 253</a></span><a class="code hl_define" href="decls_8h.html#a9001412c35f3c92d3a9320d27b0d97f9">AARU_EXPORT</a> int32_t <a class="code hl_define" href="decls_8h.html#a018e0da1c1f7e4f6187a982c0e40e056">AARU_CALL</a> <a class="code hl_function" href="read_8c.html#a6feebf672750fc129fe2802ab738d563">aaruf_read_sector</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint64_t sector_address, <span class="keywordtype">bool</span> negative,</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> uint8_t *data, uint32_t *length, uint8_t *sector_status)</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="keyword">const</span> uint32_t initial_length = length == NULL ? 0U : *length;</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> </div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_read_sector(%p, %&quot;</span> PRIu64 <span class="stringliteral">&quot;, %d, %p, %u)&quot;</span>, context, sector_address, negative, data,</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> initial_length);</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> </div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = NULL;</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> uint64_t offset = 0;</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> uint64_t block_offset = 0;</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <a class="code hl_struct" href="structBlockHeader.html">BlockHeader</a> *block_header = NULL;</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> uint8_t *block = NULL;</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="keywordtype">size_t</span> read_bytes = 0;</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> uint8_t lzma_properties[<a class="code hl_define" href="consts_8h.html#a25fd08252b97a0230d3efc899bddd240">LZMA_PROPERTIES_LENGTH</a>];</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordtype">size_t</span> lzma_size = 0;</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> uint8_t *cmp_data = NULL;</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordtype">int</span> error_no = 0;</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> *sector_status = <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a032ffcff283d253414768f0fa035af4d">SectorStatusNotDumped</a>;</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> </div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> {</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> </div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</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> </div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> ctx = context;</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> </div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordflow">if</span>(length == NULL)</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_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid length pointer&quot;</span>);</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> </div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</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> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">if</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="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_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> </div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</a>;</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> <span class="keywordflow">if</span>(negative &amp;&amp; sector_address &gt; ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04c5fb367458a6e9dd0a50b39f6edec2">user_data_ddt_header</a>.<a class="code hl_variable" href="structDdtHeader2.html#aa4b1416ac0e0585f436513cacf9ebd74">negative</a> - 1)</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> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector address out of bounds&quot;</span>);</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> </div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_SECTOR_OUT_OF_BOUNDS&quot;</span>);</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a3f6069602fee5f1264befab13708c0ef">AARUF_ERROR_SECTOR_OUT_OF_BOUNDS</a>;</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> }</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> </div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> <span class="keywordflow">if</span>(!negative &amp;&amp; sector_address &gt; 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> + ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04c5fb367458a6e9dd0a50b39f6edec2">user_data_ddt_header</a>.<a class="code hl_variable" href="structDdtHeader2.html#a2bfa558d9d778ae6b86d52520e278b66">overflow</a> - 1)</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> {</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector address out of bounds&quot;</span>);</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_SECTOR_OUT_OF_BOUNDS&quot;</span>);</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a3f6069602fee5f1264befab13708c0ef">AARUF_ERROR_SECTOR_OUT_OF_BOUNDS</a>;</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> }</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> </div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a7c284949fdbfecfddeac2ba6687213b0">ddt_version</a> == 1)</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> {</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <span class="keywordflow">if</span>(negative)</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> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Negative sector addresses not supported in this image&quot;</span>);</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a3f6069602fee5f1264befab13708c0ef">AARUF_ERROR_SECTOR_OUT_OF_BOUNDS</a>;</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> }</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> </div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> error_no = <a class="code hl_function" href="internal_8h.html#a26e5fd58cdfd39948f1b724fafffcdc2">decode_ddt_entry_v1</a>(ctx, sector_address, &amp;offset, &amp;block_offset, sector_status);</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> }</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a7c284949fdbfecfddeac2ba6687213b0">ddt_version</a> == 2)</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> error_no = <a class="code hl_function" href="internal_8h.html#a805d607b45bb8ad8a3e6b0bcfabe3265">decode_ddt_entry_v2</a>(ctx, sector_address, negative, &amp;offset, &amp;block_offset, sector_status);</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> </div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</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="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#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Error %d decoding DDT entry&quot;</span>, error_no);</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = %d&quot;</span>, error_no);</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> <span class="keywordflow">return</span> error_no;</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> }</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> </div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> <span class="comment">// Partially written image... as we can&#39;t know the real sector size just assume it&#39;s common :/</span></div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> <span class="keywordflow">if</span>(*sector_status == <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a032ffcff283d253414768f0fa035af4d">SectorStatusNotDumped</a>)</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> *length = 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>;</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> </div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_STATUS_SECTOR_NOT_DUMPED&quot;</span>);</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ab629288e7ddaf4dd8419621e6963e2cf">AARUF_STATUS_SECTOR_NOT_DUMPED</a>;</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> }</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> </div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> <span class="comment">// Check if block header is cached</span></div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Checking if block header is cached&quot;</span>);</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> block_header = <a class="code hl_function" href="lru_8h.html#a8cb7ac8e057627210732ee61d2966e35">find_in_cache_uint64</a>(&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3a12addf4a338cc04471709604d48ae1">block_header_cache</a>, block_offset);</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> </div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> <span class="comment">// Read block header</span></div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> <span class="keywordflow">if</span>(block_header == NULL)</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Allocating memory for block header&quot;</span>);</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> block_header = malloc(<span class="keyword">sizeof</span>(<a class="code hl_struct" href="structBlockHeader.html">BlockHeader</a>));</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> <span class="keywordflow">if</span>(block_header == NULL)</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> {</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Not enough memory for block header&quot;</span>);</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> </div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</a>;</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> }</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Reading block header&quot;</span>);</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="keywordflow">if</span>(fseek(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>, block_offset, SEEK_SET) != 0)</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> {</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not seek to block header&quot;</span>);</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> free(block_header);</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_CANNOT_READ_HEADER&quot;</span>);</div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a3459a04771fe04f8f77bfa90563a4375">AARUF_ERROR_CANNOT_READ_HEADER</a>;</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> </div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> read_bytes = fread(block_header, 1, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structBlockHeader.html">BlockHeader</a>), ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>);</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>(read_bytes != <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structBlockHeader.html">BlockHeader</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> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Error reading block header&quot;</span>);</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> free(block_header);</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> </div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_CANNOT_READ_HEADER&quot;</span>);</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a3459a04771fe04f8f77bfa90563a4375">AARUF_ERROR_CANNOT_READ_HEADER</a>;</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Adding block header to cache&quot;</span>);</div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> <a class="code hl_function" href="lru_8h.html#a0735969939ca80db3fe439ed92b787bb">add_to_cache_uint64</a>(&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3a12addf4a338cc04471709604d48ae1">block_header_cache</a>, block_offset, block_header);</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> }</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(fseek(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>, block_offset + <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structBlockHeader.html">BlockHeader</a>), SEEK_SET) != 0)</div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> {</div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not seek past cached block header&quot;</span>);</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> </div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_CANNOT_READ_HEADER&quot;</span>);</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a3459a04771fe04f8f77bfa90563a4375">AARUF_ERROR_CANNOT_READ_HEADER</a>;</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> </div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> <span class="keywordflow">if</span>(data == NULL || *length &lt; block_header-&gt;sectorSize)</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Buffer too small for sector, required %u bytes&quot;</span>, block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb">sectorSize</a>);</div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> *length = block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb">sectorSize</a>;</div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> </div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> }</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> </div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> <span class="comment">// Check if block is cached</span></div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Checking if block is cached&quot;</span>);</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> block = <a class="code hl_function" href="lru_8h.html#a8cb7ac8e057627210732ee61d2966e35">find_in_cache_uint64</a>(&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a58359ec8607d1d10e0af8699be238e77">block_cache</a>, block_offset);</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> </div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> <span class="keywordflow">if</span>(block != NULL)</div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> {</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Getting data from cache&quot;</span>);</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> memcpy(data, block + offset * block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb">sectorSize</a>, block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb">sectorSize</a>);</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> *length = block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb">sectorSize</a>;</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> </div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</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> </div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> <span class="comment">// Decompress block</span></div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> <span class="keywordflow">switch</span>(block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">compression</a>)</div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> {</div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263ac9d3e887722f2bc482bcca9d41c512af">None</a>:</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Allocating memory for block&quot;</span>);</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> block = (uint8_t *)malloc(block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>);</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> <span class="keywordflow">if</span>(block == NULL)</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> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Not enough memory for block&quot;</span>);</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> </div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</a>;</div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> }</div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> </div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Reading block into memory&quot;</span>);</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> read_bytes = fread(block, 1, block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>);</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> </div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> <span class="keywordflow">if</span>(read_bytes != block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>)</div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> {</div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not read block&quot;</span>);</div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> free(block);</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_CANNOT_READ_BLOCK&quot;</span>);</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a67753dacbd0ffdd397e563a8a5ecd271">AARUF_ERROR_CANNOT_READ_BLOCK</a>;</div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> }</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">break</span>;</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263a002db7938c70152bf9af1797cb87c32f">Lzma</a>:</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> <span class="keywordflow">if</span>(block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a> &lt;= <a class="code hl_define" href="consts_8h.html#a25fd08252b97a0230d3efc899bddd240">LZMA_PROPERTIES_LENGTH</a> || block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a> == 0)</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> {</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid LZMA block lengths (cmpLength=%u, length=%u)&quot;</span>, block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a>,</div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>);</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> </div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK&quot;</span>);</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ac9f4e38e8d5a1f940c9cd0c7f6788c37">AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK</a>;</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> }</div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> </div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> lzma_size = block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a> - <a class="code hl_define" href="consts_8h.html#a25fd08252b97a0230d3efc899bddd240">LZMA_PROPERTIES_LENGTH</a>;</div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Allocating memory for compressed data of size %zu bytes&quot;</span>, lzma_size);</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> cmp_data = malloc(lzma_size);</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> <span class="keywordflow">if</span>(cmp_data == NULL)</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> {</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Cannot allocate memory for block...&quot;</span>);</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</a>;</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> }</div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> </div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Allocating memory for block of size %zu bytes&quot;</span>, block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>);</div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> block = malloc(block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>);</div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> <span class="keywordflow">if</span>(block == NULL)</div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> {</div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Cannot allocate memory for block...&quot;</span>);</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> free(cmp_data);</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> </div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</a>;</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> </div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> read_bytes = fread(lzma_properties, 1, <a class="code hl_define" href="consts_8h.html#a25fd08252b97a0230d3efc899bddd240">LZMA_PROPERTIES_LENGTH</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</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> <span class="keywordflow">if</span>(read_bytes != <a class="code hl_define" href="consts_8h.html#a25fd08252b97a0230d3efc899bddd240">LZMA_PROPERTIES_LENGTH</a>)</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> {</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not read LZMA properties...&quot;</span>);</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> free(block);</div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> free(cmp_data);</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> </div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK&quot;</span>);</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ac9f4e38e8d5a1f940c9cd0c7f6788c37">AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK</a>;</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> }</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> </div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> read_bytes = fread(cmp_data, 1, lzma_size, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>);</div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> <span class="keywordflow">if</span>(read_bytes != lzma_size)</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> {</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not read compressed block...&quot;</span>);</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> free(cmp_data);</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> free(block);</div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> </div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK&quot;</span>);</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ac9f4e38e8d5a1f940c9cd0c7f6788c37">AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK</a>;</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> }</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> </div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Decompressing block of size %zu bytes&quot;</span>, block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>);</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> read_bytes = block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>;</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> error_no = <a class="code hl_function" href="decls_8h.html#a12f3cbc43c2f57a11fbba32a71ba2704">aaruf_lzma_decode_buffer</a>(block, &amp;read_bytes, cmp_data, &amp;lzma_size, lzma_properties,</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> <a class="code hl_define" href="consts_8h.html#a25fd08252b97a0230d3efc899bddd240">LZMA_PROPERTIES_LENGTH</a>);</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> </div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> <span class="keywordflow">if</span>(error_no != 0)</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> {</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Got error %d from LZMA...&quot;</span>, error_no);</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> free(cmp_data);</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> free(block);</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> </div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK&quot;</span>);</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ac9f4e38e8d5a1f940c9cd0c7f6788c37">AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK</a>;</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> }</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> </div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> <span class="keywordflow">if</span>(read_bytes != block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>)</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> {</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Error decompressing block, should be {0} bytes but got {1} bytes...&quot;</span>);</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> free(cmp_data);</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> free(block);</div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> </div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK&quot;</span>);</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ac9f4e38e8d5a1f940c9cd0c7f6788c37">AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK</a>;</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> }</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> </div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> free(cmp_data);</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> </div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263adce52e91e4d88a577ecf67cbe7beac31">Flac</a>:</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Allocating memory for compressed data of size %zu bytes&quot;</span>, block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a>);</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> cmp_data = malloc(block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a>);</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> </div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> <span class="keywordflow">if</span>(cmp_data == NULL)</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> {</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Cannot allocate memory for block...&quot;</span>);</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> </div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</a>;</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> }</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> </div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Allocating memory for block of size %zu bytes&quot;</span>, block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>);</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> block = malloc(block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>);</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="keywordflow">if</span>(block == NULL)</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> {</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Cannot allocate memory for block...&quot;</span>);</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> free(cmp_data);</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> </div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</a>;</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> }</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> </div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Reading compressed data into memory&quot;</span>);</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> read_bytes = fread(cmp_data, 1, block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>);</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> <span class="keywordflow">if</span>(read_bytes != block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a>)</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> {</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not read compressed block...&quot;</span>);</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> free(cmp_data);</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> free(block);</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> </div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK&quot;</span>);</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ac9f4e38e8d5a1f940c9cd0c7f6788c37">AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK</a>;</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> }</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> </div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Decompressing block of size %zu bytes&quot;</span>, block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>);</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> read_bytes =</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <a class="code hl_function" href="decls_8h.html#af0ff6ad1495d50a8fa0ce0005be69471">aaruf_flac_decode_redbook_buffer</a>(block, block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>, cmp_data, block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a>);</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> </div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <span class="keywordflow">if</span>(read_bytes != block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>)</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> {</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Error decompressing block, should be {0} bytes but got {1} bytes...&quot;</span>);</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> free(cmp_data);</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> free(block);</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> </div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK&quot;</span>);</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ac9f4e38e8d5a1f940c9cd0c7f6788c37">AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK</a>;</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> }</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> </div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> free(cmp_data);</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> </div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Unsupported compression %d&quot;</span>, block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">compression</a>);</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_ERROR_UNSUPPORTED_COMPRESSION&quot;</span>);</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#aec106e533b79916d14e4d48a3d95e8c8">AARUF_ERROR_UNSUPPORTED_COMPRESSION</a>;</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> }</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> </div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> <span class="comment">// Add block to cache</span></div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Adding block to cache&quot;</span>);</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> <a class="code hl_function" href="lru_8h.html#a0735969939ca80db3fe439ed92b787bb">add_to_cache_uint64</a>(&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a58359ec8607d1d10e0af8699be238e77">block_cache</a>, block_offset, block);</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> </div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> memcpy(data, block + offset * block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb">sectorSize</a>, block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb">sectorSize</a>);</div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> *length = block_header-&gt;<a class="code hl_variable" href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb">sectorSize</a>;</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> </div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span>}</div>
</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span></div>
<div class="foldopen" id="foldopen00670" data-start="{" data-end="}">
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"><a class="line" href="decls_8h.html#ae0945dde37d57278f14d71bfc9b56d55"> 670</a></span><a class="code hl_define" href="decls_8h.html#a9001412c35f3c92d3a9320d27b0d97f9">AARU_EXPORT</a> int32_t <a class="code hl_define" href="decls_8h.html#a018e0da1c1f7e4f6187a982c0e40e056">AARU_CALL</a> <a class="code hl_function" href="read_8c.html#a84e3bc8f611af8e9fc77dac24788d53b">aaruf_read_track_sector</a>(<span class="keywordtype">void</span> *context, uint8_t *data, <span class="keyword">const</span> uint64_t sector_address,</div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> uint32_t *length, <span class="keyword">const</span> uint8_t track, uint8_t *sector_status)</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span>{</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> <span class="keyword">const</span> uint32_t initial_length = length == NULL ? 0U : *length;</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> </div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_read_track_sector(%p, %p, %&quot;</span> PRIu64 <span class="stringliteral">&quot;, %u, %d)&quot;</span>, context, data, sector_address,</div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> initial_length, track);</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> </div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> {</div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> </div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_track_sector() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</a>;</div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span> }</div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> </div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> </div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> <span class="keywordflow">if</span>(length == NULL)</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> {</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid length pointer&quot;</span>);</div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> </div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_track_sector() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> }</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> </div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> <span class="keywordflow">if</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="l00698" name="l00698"></a><span class="lineno"> 698</span> {</div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> </div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_track_sector() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</a>;</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> }</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> </div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> <span class="keywordflow">if</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_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466aaf46f69508c3a90e5588c71f410a7f12">OpticalDisc</a>)</div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> {</div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect media type %d, expected OpticalDisc&quot;</span>, ctx-&gt;imageInfo.XmlMediaType);</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> </div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_track_sector() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> }</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span> </div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#adcda13fede7a22da60ef942981aef1b2">number_of_data_tracks</a>; i++)</div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a2656e1efffab41086f8c580896ea24a1">data_tracks</a>[i].<a class="code hl_variable" href="structTrackEntry.html#aa6464108b61ee648a5aa8e6ffcc9a59a">sequence</a> == track)</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> <span class="keywordflow">return</span> <a class="code hl_function" href="read_8c.html#a6feebf672750fc129fe2802ab738d563">aaruf_read_sector</a>(context, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a2656e1efffab41086f8c580896ea24a1">data_tracks</a>[i].<a class="code hl_variable" href="structTrackEntry.html#aa82e4a2aa2cfecee9891f117e9494cdf">start</a> + sector_address, <span class="keyword">false</span>, data, length,</div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> sector_status);</div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> </div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Track %d not found&quot;</span>, track);</div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_track_sector() = AARUF_ERROR_TRACK_NOT_FOUND&quot;</span>);</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a32b645da87003df886a5742d23f8ca19">AARUF_ERROR_TRACK_NOT_FOUND</a>;</div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span>}</div>
</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span></div>
<div class="foldopen" id="foldopen00826" data-start="{" data-end="}">
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"><a class="line" href="decls_8h.html#aed40c9ebc6d963b2a8ed5ebec1fed3c5"> 826</a></span><a class="code hl_define" href="decls_8h.html#a9001412c35f3c92d3a9320d27b0d97f9">AARU_EXPORT</a> int32_t <a class="code hl_define" href="decls_8h.html#a018e0da1c1f7e4f6187a982c0e40e056">AARU_CALL</a> <a class="code hl_function" href="read_8c.html#a7c8786fe6f2a1538bcb2362cfe21563c">aaruf_read_sector_long</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint64_t sector_address, <span class="keywordtype">bool</span> negative,</div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> uint8_t *data, uint32_t *length, uint8_t *sector_status)</div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span>{</div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> <span class="keyword">const</span> uint32_t initial_length = length == NULL ? 0U : *length;</div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span> </div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_read_sector_long(%p, %&quot;</span> PRIu64 <span class="stringliteral">&quot;, %d, %p, %u)&quot;</span>, context, sector_address, data,</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> initial_length);</div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> </div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = NULL;</div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> uint32_t bare_length = 0;</div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> uint32_t tag_length = 0;</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> uint8_t *bare_data = NULL;</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span> int32_t res = 0;</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> int32_t query_status;</div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> <a class="code hl_struct" href="structTrackEntry.html">TrackEntry</a> trk;</div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span> <span class="keywordtype">int</span> i = 0;</div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> <span class="keywordtype">bool</span> trk_found = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span> </div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> {</div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> </div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</a>;</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> }</div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span> </div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> ctx = context;</div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span> </div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span> <span class="keywordflow">if</span>(length == NULL)</div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> {</div>
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid length pointer&quot;</span>);</div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> </div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span> }</div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> </div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span> <span class="keywordflow">if</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="l00864" name="l00864"></a><span class="lineno"> 864</span> {</div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span> </div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</a>;</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> }</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> </div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> <span class="keywordflow">if</span>(negative &amp;&amp; sector_address &gt; ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04c5fb367458a6e9dd0a50b39f6edec2">user_data_ddt_header</a>.<a class="code hl_variable" href="structDdtHeader2.html#aa4b1416ac0e0585f436513cacf9ebd74">negative</a> - 1)</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> {</div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector address out of bounds&quot;</span>);</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span> </div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_SECTOR_OUT_OF_BOUNDS&quot;</span>);</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a3f6069602fee5f1264befab13708c0ef">AARUF_ERROR_SECTOR_OUT_OF_BOUNDS</a>;</div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span> }</div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> </div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> <span class="keywordflow">if</span>(!negative &amp;&amp; sector_address &gt; 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> + ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04c5fb367458a6e9dd0a50b39f6edec2">user_data_ddt_header</a>.<a class="code hl_variable" href="structDdtHeader2.html#a2bfa558d9d778ae6b86d52520e278b66">overflow</a> - 1)</div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> {</div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector address out of bounds&quot;</span>);</div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span> </div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_SECTOR_OUT_OF_BOUNDS&quot;</span>);</div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a3f6069602fee5f1264befab13708c0ef">AARUF_ERROR_SECTOR_OUT_OF_BOUNDS</a>;</div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> }</div>
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span> </div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span> uint64_t corrected_sector_address = sector_address;</div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span> </div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> <span class="comment">// Calculate positive or negative sector</span></div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span> <span class="keywordflow">if</span>(negative)</div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> corrected_sector_address -= ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04c5fb367458a6e9dd0a50b39f6edec2">user_data_ddt_header</a>.<a class="code hl_variable" href="structDdtHeader2.html#aa4b1416ac0e0585f436513cacf9ebd74">negative</a>;</div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> corrected_sector_address += ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04c5fb367458a6e9dd0a50b39f6edec2">user_data_ddt_header</a>.<a class="code hl_variable" href="structDdtHeader2.html#aa4b1416ac0e0585f436513cacf9ebd74">negative</a>;</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> </div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> <span class="keywordflow">switch</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>)</div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> {</div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466aaf46f69508c3a90e5588c71f410a7f12">OpticalDisc</a>:</div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> <span class="keywordflow">if</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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aaf254215c04f84a87eef3702782ba7662">DVDROM</a> || 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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa8dccd9aa3702e0112d3c4d6f3388820e">PS2DVD</a> ||</div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa6903c0dd79d234b9379daaaa97e2c0fe">SACD</a> || 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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa727f071d5dd887fd6645e112cfcab197">PS3DVD</a> ||</div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa711ac65a3b3a2d5392d2efee1616bcd7">DVDR</a> || 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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa4cfa242859c1a136a740718d0440de9a">DVDRW</a> ||</div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aac3c8ca46e314f36e5398a97e85b7a3d1">DVDPR</a> || 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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aad5de19f38ea842de6d5edc2baa586160">DVDPRW</a> ||</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa44d41093d0d9a56fa5e9fa317c4d795a">DVDPRWDL</a> || 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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aadff93972faa98cafc01f4fbb464680a2">DVDRDL</a> ||</div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa6a04ebe8862d4f729e9dad48bfe92b99">DVDPRDL</a> || 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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aaff04a947594e116dd0adf854660ff00a">DVDRAM</a> ||</div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa502cfc3a14e97fdb99a2856c2f230e19">DVDRWDL</a> || 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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aadf89869853533586979db286065899af">DVDDownload</a> ||</div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</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> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aad730786bd592903cc42ad7f5a5847171">Nuon</a>)</div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> {</div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#acc9cdfdd4be56c4f7016a37e218cee47">sector_id</a> == NULL || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3bfc3fceaaf015830913fd7efa794e5a">sector_ied</a> == NULL || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a1614b9ffbd5e4661a2483eb3f68f8fd1">sector_cpr_mai</a> == NULL ||</div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4dc244e21a520e90abd961c38eb6d9ae">sector_edc</a> == NULL)</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> <span class="keywordflow">return</span> <a class="code hl_function" href="read_8c.html#a6feebf672750fc129fe2802ab738d563">aaruf_read_sector</a>(context, sector_address, negative, data, length, sector_status);</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> </div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> <span class="keywordflow">if</span>(*length &lt; 2064 || data == NULL)</div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> {</div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span> *length = 2064;</div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Buffer too small for sector, required %u bytes&quot;</span>, *length);</div>
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"> 915</span> </div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> }</div>
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno"> 919</span> </div>
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno"> 920</span> bare_length = 0;</div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span> query_status = <a class="code hl_function" href="read_8c.html#a6feebf672750fc129fe2802ab738d563">aaruf_read_sector</a>(context, sector_address, negative, NULL, &amp;bare_length, sector_status);</div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"> 922</span> </div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> <span class="keywordflow">if</span>(query_status != <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a> &amp;&amp; query_status != <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>)</div>
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno"> 924</span> {</div>
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno"> 925</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = %d&quot;</span>, query_status);</div>
<div class="line"><a id="l00926" name="l00926"></a><span class="lineno"> 926</span> <span class="keywordflow">return</span> query_status;</div>
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"> 927</span> }</div>
<div class="line"><a id="l00928" name="l00928"></a><span class="lineno"> 928</span> </div>
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno"> 929</span> <span class="keywordflow">if</span>(bare_length == 0)</div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"> 930</span> {</div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"> 931</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid bare sector length (0)&quot;</span>);</div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"> 932</span> </div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"> 933</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"> 934</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span> }</div>
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"> 936</span> </div>
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"> 937</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Allocating memory for bare data&quot;</span>);</div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span> bare_data = (uint8_t *)malloc(bare_length);</div>
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"> 939</span> </div>
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"> 940</span> <span class="keywordflow">if</span>(bare_data == NULL)</div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span> {</div>
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for bare data&quot;</span>);</div>
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"> 943</span> </div>
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"> 944</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</a>;</div>
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno"> 946</span> }</div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"> 947</span> </div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> res = <a class="code hl_function" href="read_8c.html#a6feebf672750fc129fe2802ab738d563">aaruf_read_sector</a>(context, sector_address, negative, bare_data, &amp;bare_length, sector_status);</div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span> </div>
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"> 950</span> <span class="keywordflow">if</span>(res != <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>)</div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</span> {</div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> *length = 2064;</div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> free(bare_data);</div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"> 954</span> </div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"> 955</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = %d&quot;</span>, res);</div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"> 957</span> }</div>
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno"> 958</span> </div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> memcpy(data, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#acc9cdfdd4be56c4f7016a37e218cee47">sector_id</a> + corrected_sector_address * 4, 4);</div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span> memcpy(data + 4, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3bfc3fceaaf015830913fd7efa794e5a">sector_ied</a> + corrected_sector_address * 2, 2);</div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span> memcpy(data + 6, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a1614b9ffbd5e4661a2483eb3f68f8fd1">sector_cpr_mai</a> + corrected_sector_address * 6, 6);</div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> memcpy(data + 12, bare_data, 2048);</div>
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"> 963</span> memcpy(data + 2060, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4dc244e21a520e90abd961c38eb6d9ae">sector_edc</a> + corrected_sector_address * 4, 4);</div>
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno"> 964</span> </div>
<div class="line"><a id="l00965" name="l00965"></a><span class="lineno"> 965</span> *length = 2064;</div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</span> </div>
<div class="line"><a id="l00967" name="l00967"></a><span class="lineno"> 967</span> free(bare_data);</div>
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"> 968</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</span> }</div>
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"> 970</span> </div>
<div class="line"><a id="l00971" name="l00971"></a><span class="lineno"> 971</span> <span class="keywordflow">if</span>(*length &lt; 2352 || data == NULL)</div>
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"> 972</span> {</div>
<div class="line"><a id="l00973" name="l00973"></a><span class="lineno"> 973</span> *length = 2352;</div>
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno"> 974</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Buffer too small for sector, required %u bytes&quot;</span>, *length);</div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</span> </div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"> 976</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno"> 978</span> }</div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span> </div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</span> <span class="keywordflow">if</span>((ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a> == NULL || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a> == NULL) &amp;&amp;</div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</span> (ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a5ec94a7912a165e5e7cacbeb8b65cbdf">sector_suffix_ddt</a> == NULL || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad9e40dfb41ec80b902869354b052dd7d">sector_prefix_ddt</a> == NULL) &amp;&amp;</div>
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"> 982</span> (ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a> == NULL || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">sector_prefix_ddt2</a> == NULL))</div>
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"> 983</span> <span class="keywordflow">return</span> <a class="code hl_function" href="read_8c.html#a6feebf672750fc129fe2802ab738d563">aaruf_read_sector</a>(context, sector_address, negative, data, length, sector_status);</div>
<div class="line"><a id="l00984" name="l00984"></a><span class="lineno"> 984</span> </div>
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"> 985</span> bare_length = 0;</div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</span> query_status = <a class="code hl_function" href="read_8c.html#a6feebf672750fc129fe2802ab738d563">aaruf_read_sector</a>(context, sector_address, negative, NULL, &amp;bare_length, sector_status);</div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> </div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> <span class="keywordflow">if</span>(query_status != <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a> &amp;&amp; query_status != <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>)</div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> {</div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = %d&quot;</span>, query_status);</div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span> <span class="keywordflow">return</span> query_status;</div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span> }</div>
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span> </div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span> <span class="keywordflow">if</span>(bare_length == 0)</div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"> 995</span> {</div>
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid bare sector length (0)&quot;</span>);</div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span> </div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> }</div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span> </div>
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Allocating memory for bare data&quot;</span>);</div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> bare_data = (uint8_t *)malloc(bare_length);</div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> </div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span> <span class="keywordflow">if</span>(bare_data == NULL)</div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span> {</div>
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for bare data&quot;</span>);</div>
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span> </div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</a>;</div>
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> }</div>
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span> </div>
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> res = <a class="code hl_function" href="read_8c.html#a6feebf672750fc129fe2802ab738d563">aaruf_read_sector</a>(context, sector_address, negative, bare_data, &amp;bare_length, sector_status);</div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> </div>
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> <span class="keywordflow">if</span>(res != <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>)</div>
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> {</div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> free(bare_data);</div>
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> </div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = %d&quot;</span>, res);</div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> }</div>
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> </div>
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> trk_found = <span class="keyword">false</span>;</div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> </div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> <span class="keywordflow">for</span>(i = 0; i &lt; ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#adcda13fede7a22da60ef942981aef1b2">number_of_data_tracks</a>; i++)</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> <span class="keywordflow">if</span>(sector_address &gt;= ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a2656e1efffab41086f8c580896ea24a1">data_tracks</a>[i].<a class="code hl_variable" href="structTrackEntry.html#aa82e4a2aa2cfecee9891f117e9494cdf">start</a> &amp;&amp; sector_address &lt;= ctx-&gt;data_tracks[i].end)</div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> {</div>
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span> trk_found = <span class="keyword">true</span>;</div>
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> trk = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a2656e1efffab41086f8c580896ea24a1">data_tracks</a>[i];</div>
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> }</div>
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> </div>
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> <span class="keywordflow">if</span>(!trk_found)</div>
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> {</div>
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Track not found&quot;</span>);</div>
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> free(bare_data);</div>
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> </div>
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_TRACK_NOT_FOUND&quot;</span>);</div>
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a32b645da87003df886a5742d23f8ca19">AARUF_ERROR_TRACK_NOT_FOUND</a>;</div>
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> }</div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> </div>
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> <span class="keywordflow">switch</span>(trk.<a class="code hl_variable" href="structTrackEntry.html#ac8dd4cd45f2757b51a27385c7731dde4">type</a>)</div>
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> {</div>
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04ad3c111fe8a0e835609a6187d6e9d2e57">Audio</a>:</div>
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04aa9703801ac7bd790f6f980532e4224c0">Data</a>:</div>
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> memcpy(data, bare_data, bare_length);</div>
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> *length = bare_length;</div>
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> free(bare_data);</div>
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04aa2aea1fa4875ff43b28267ad736cec62">CdMode1</a>:</div>
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span> memcpy(data + 16, bare_data, 2048);</div>
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span> </div>
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">sector_prefix_ddt2</a> != NULL)</div>
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span> {</div>
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span> <span class="keyword">const</span> uint64_t prefix_ddt_entry = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">sector_prefix_ddt2</a>[corrected_sector_address];</div>
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span> <span class="keyword">const</span> uint32_t prefix_status = prefix_ddt_entry &gt;&gt; 60;</div>
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> <span class="keyword">const</span> uint64_t prefix_index = prefix_ddt_entry &amp; 0x0FFFFFFFFFFFFFFF;</div>
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span> </div>
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span> <span class="keywordflow">if</span>(prefix_status == <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a98ca0ee5ee0653575fc98b501a3387cf">SectorStatusMode1Correct</a>)</div>
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span> {</div>
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span> <a class="code hl_function" href="decls_8h.html#a73c3788f7376196abd596d6d846466b1">aaruf_ecc_cd_reconstruct_prefix</a>(data, trk.<a class="code hl_variable" href="structTrackEntry.html#ac8dd4cd45f2757b51a27385c7731dde4">type</a>, sector_address);</div>
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span> res = <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span> }</div>
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(prefix_status == <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a032ffcff283d253414768f0fa035af4d">SectorStatusNotDumped</a>)</div>
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span> res = <a class="code hl_define" href="errors_8h.html#ab629288e7ddaf4dd8419621e6963e2cf">AARUF_STATUS_SECTOR_NOT_DUMPED</a>;</div>
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> memcpy(data, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a> + prefix_index * 16, 16);</div>
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span> }</div>
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a> != NULL)</div>
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span> memcpy(data, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a> + corrected_sector_address * 16, 16);</div>
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad9e40dfb41ec80b902869354b052dd7d">sector_prefix_ddt</a> != NULL)</div>
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span> {</div>
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span> <span class="keywordflow">if</span>((ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad9e40dfb41ec80b902869354b052dd7d">sector_prefix_ddt</a>[corrected_sector_address] &amp; <a class="code hl_define" href="consts_8h.html#aa64757ba31a320f675fca1062111180f">CD_XFIX_MASK</a>) == <a class="code hl_enumvalue" href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7a1b85919d51f4333b17766b19a7c7372d">Correct</a>)</div>
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span> {</div>
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span> <a class="code hl_function" href="decls_8h.html#a73c3788f7376196abd596d6d846466b1">aaruf_ecc_cd_reconstruct_prefix</a>(data, trk.<a class="code hl_variable" href="structTrackEntry.html#ac8dd4cd45f2757b51a27385c7731dde4">type</a>, sector_address);</div>
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span> res = <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span> }</div>
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>((ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad9e40dfb41ec80b902869354b052dd7d">sector_prefix_ddt</a>[corrected_sector_address] &amp; <a class="code hl_define" href="consts_8h.html#aa64757ba31a320f675fca1062111180f">CD_XFIX_MASK</a>) == <a class="code hl_enumvalue" href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7ab3fac5cd103786d64f7ee67bcb9ac458">NotDumped</a>)</div>
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span> res = <a class="code hl_define" href="errors_8h.html#ab629288e7ddaf4dd8419621e6963e2cf">AARUF_STATUS_SECTOR_NOT_DUMPED</a>;</div>
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span> memcpy(data,</div>
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a1d021776e9101370c7e6ed00c8049be1">sector_prefix_corrected</a> +</div>
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span> ((ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad9e40dfb41ec80b902869354b052dd7d">sector_prefix_ddt</a>[corrected_sector_address] &amp; <a class="code hl_define" href="consts_8h.html#a0b24c62ef1b78b72b9f4a42918f39e13">CD_DFIX_MASK</a>) - 1) * 16,</div>
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span> 16);</div>
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> }</div>
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span> {</div>
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_REACHED_UNREACHABLE_CODE&quot;</span>);</div>
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span> free(bare_data);</div>
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#afac13facfc59d6710c31daee0302e39d">AARUF_ERROR_REACHED_UNREACHABLE_CODE</a>;</div>
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span> }</div>
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span> </div>
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span> <span class="keywordflow">if</span>(res != <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>)</div>
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span> {</div>
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span> *length = 2352;</div>
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span> free(bare_data);</div>
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> }</div>
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span> </div>
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a> != NULL)</div>
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span> {</div>
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> <span class="keyword">const</span> uint64_t suffix_ddt_entry = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a>[corrected_sector_address];</div>
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span> <span class="keyword">const</span> uint64_t suffix_status = suffix_ddt_entry &gt;&gt; 60;</div>
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span> <span class="keyword">const</span> uint64_t suffix_index = suffix_ddt_entry &amp; 0x0FFFFFFFFFFFFFFF;</div>
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span> </div>
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span> <span class="keywordflow">if</span>(suffix_status == <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a98ca0ee5ee0653575fc98b501a3387cf">SectorStatusMode1Correct</a>)</div>
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> {</div>
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> <a class="code hl_function" href="decls_8h.html#a9c9e2440119b8d7e67cb2c40125bf295">aaruf_ecc_cd_reconstruct</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a510b72290e2bd50e02ef8a2387aa829d">ecc_cd_context</a>, data, trk.<a class="code hl_variable" href="structTrackEntry.html#ac8dd4cd45f2757b51a27385c7731dde4">type</a>);</div>
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> res = <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span> }</div>
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(suffix_status == <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a032ffcff283d253414768f0fa035af4d">SectorStatusNotDumped</a>)</div>
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> res = <a class="code hl_define" href="errors_8h.html#ab629288e7ddaf4dd8419621e6963e2cf">AARUF_STATUS_SECTOR_NOT_DUMPED</a>;</div>
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span> memcpy(data + 2064, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a> + suffix_index * 288, 288);</div>
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> }</div>
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a> != NULL)</div>
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> memcpy(data + 2064, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a> + corrected_sector_address * 288, 288);</div>
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a5ec94a7912a165e5e7cacbeb8b65cbdf">sector_suffix_ddt</a> != NULL)</div>
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span> {</div>
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span> <span class="keywordflow">if</span>((ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a5ec94a7912a165e5e7cacbeb8b65cbdf">sector_suffix_ddt</a>[corrected_sector_address] &amp; <a class="code hl_define" href="consts_8h.html#aa64757ba31a320f675fca1062111180f">CD_XFIX_MASK</a>) == <a class="code hl_enumvalue" href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7a1b85919d51f4333b17766b19a7c7372d">Correct</a>)</div>
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span> {</div>
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> <a class="code hl_function" href="decls_8h.html#a9c9e2440119b8d7e67cb2c40125bf295">aaruf_ecc_cd_reconstruct</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a510b72290e2bd50e02ef8a2387aa829d">ecc_cd_context</a>, data, trk.<a class="code hl_variable" href="structTrackEntry.html#ac8dd4cd45f2757b51a27385c7731dde4">type</a>);</div>
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span> res = <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span> }</div>
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>((ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a5ec94a7912a165e5e7cacbeb8b65cbdf">sector_suffix_ddt</a>[corrected_sector_address] &amp; <a class="code hl_define" href="consts_8h.html#aa64757ba31a320f675fca1062111180f">CD_XFIX_MASK</a>) == <a class="code hl_enumvalue" href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7ab3fac5cd103786d64f7ee67bcb9ac458">NotDumped</a>)</div>
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span> res = <a class="code hl_define" href="errors_8h.html#ab629288e7ddaf4dd8419621e6963e2cf">AARUF_STATUS_SECTOR_NOT_DUMPED</a>;</div>
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span> memcpy(data + 2064,</div>
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#adfcfa339aded095de2143ffff0931288">sector_suffix_corrected</a> +</div>
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> ((ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a5ec94a7912a165e5e7cacbeb8b65cbdf">sector_suffix_ddt</a>[corrected_sector_address] &amp; <a class="code hl_define" href="consts_8h.html#a0b24c62ef1b78b72b9f4a42918f39e13">CD_DFIX_MASK</a>) - 1) * 288,</div>
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span> 288);</div>
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> }</div>
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span> {</div>
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_REACHED_UNREACHABLE_CODE&quot;</span>);</div>
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> free(bare_data);</div>
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#afac13facfc59d6710c31daee0302e39d">AARUF_ERROR_REACHED_UNREACHABLE_CODE</a>;</div>
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span> }</div>
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> </div>
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span> *length = 2352;</div>
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> free(bare_data);</div>
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04aff99910681f4abb6ac45b08562b2797e">CdMode2Formless</a>:</div>
<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04af90c2d371aa1e99d911ec2173587186c">CdMode2Form1</a>:</div>
<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04ab68a4bd72f7e85f28dcb9c5a5441743a">CdMode2Form2</a>:</div>
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">sector_prefix_ddt2</a> != NULL)</div>
<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span> {</div>
<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span> <span class="keyword">const</span> uint64_t prefix_ddt_entry = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">sector_prefix_ddt2</a>[corrected_sector_address];</div>
<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span> <span class="keyword">const</span> uint64_t prefix_status = prefix_ddt_entry &gt;&gt; 60;</div>
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span> <span class="keyword">const</span> uint64_t prefix_index = prefix_ddt_entry &amp; 0x0FFFFFFFFFFFFFFF;</div>
<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span> </div>
<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span> <span class="keywordflow">if</span>(prefix_status == <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0af8e8f72cb68b416548d729560b23ff7d">SectorStatusMode2Form1Ok</a> || prefix_status == <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0aa651286b685968cf12dbf8949c7c209d">SectorStatusMode2Form2Ok</a>)</div>
<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span> {</div>
<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span> <a class="code hl_function" href="decls_8h.html#a73c3788f7376196abd596d6d846466b1">aaruf_ecc_cd_reconstruct_prefix</a>(data, trk.<a class="code hl_variable" href="structTrackEntry.html#ac8dd4cd45f2757b51a27385c7731dde4">type</a>, sector_address);</div>
<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</span> res = <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"> 1156</span> }</div>
<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"> 1157</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(prefix_status == <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a032ffcff283d253414768f0fa035af4d">SectorStatusNotDumped</a>)</div>
<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span> res = <a class="code hl_define" href="errors_8h.html#ab629288e7ddaf4dd8419621e6963e2cf">AARUF_STATUS_SECTOR_NOT_DUMPED</a>;</div>
<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span> memcpy(data, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a> + prefix_index * 16, 16);</div>
<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span> }</div>
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a> != NULL)</div>
<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span> memcpy(data, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a> + corrected_sector_address * 16, 16);</div>
<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad9e40dfb41ec80b902869354b052dd7d">sector_prefix_ddt</a> != NULL)</div>
<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span> {</div>
<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span> <span class="keywordflow">if</span>((ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad9e40dfb41ec80b902869354b052dd7d">sector_prefix_ddt</a>[corrected_sector_address] &amp; <a class="code hl_define" href="consts_8h.html#aa64757ba31a320f675fca1062111180f">CD_XFIX_MASK</a>) == <a class="code hl_enumvalue" href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7a1b85919d51f4333b17766b19a7c7372d">Correct</a>)</div>
<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span> {</div>
<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span> <a class="code hl_function" href="decls_8h.html#a73c3788f7376196abd596d6d846466b1">aaruf_ecc_cd_reconstruct_prefix</a>(data, trk.<a class="code hl_variable" href="structTrackEntry.html#ac8dd4cd45f2757b51a27385c7731dde4">type</a>, sector_address);</div>
<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"> 1169</span> res = <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"> 1170</span> }</div>
<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>((ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad9e40dfb41ec80b902869354b052dd7d">sector_prefix_ddt</a>[corrected_sector_address] &amp; <a class="code hl_define" href="consts_8h.html#aa64757ba31a320f675fca1062111180f">CD_XFIX_MASK</a>) == <a class="code hl_enumvalue" href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7ab3fac5cd103786d64f7ee67bcb9ac458">NotDumped</a>)</div>
<div class="line"><a id="l01172" name="l01172"></a><span class="lineno"> 1172</span> res = <a class="code hl_define" href="errors_8h.html#ab629288e7ddaf4dd8419621e6963e2cf">AARUF_STATUS_SECTOR_NOT_DUMPED</a>;</div>
<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"> 1173</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"> 1174</span> memcpy(data,</div>
<div class="line"><a id="l01175" name="l01175"></a><span class="lineno"> 1175</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a1d021776e9101370c7e6ed00c8049be1">sector_prefix_corrected</a> +</div>
<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"> 1176</span> ((ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad9e40dfb41ec80b902869354b052dd7d">sector_prefix_ddt</a>[corrected_sector_address] &amp; <a class="code hl_define" href="consts_8h.html#a0b24c62ef1b78b72b9f4a42918f39e13">CD_DFIX_MASK</a>) - 1) * 16,</div>
<div class="line"><a id="l01177" name="l01177"></a><span class="lineno"> 1177</span> 16);</div>
<div class="line"><a id="l01178" name="l01178"></a><span class="lineno"> 1178</span> }</div>
<div class="line"><a id="l01179" name="l01179"></a><span class="lineno"> 1179</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01180" name="l01180"></a><span class="lineno"> 1180</span> {</div>
<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"> 1181</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_REACHED_UNREACHABLE_CODE&quot;</span>);</div>
<div class="line"><a id="l01182" name="l01182"></a><span class="lineno"> 1182</span> free(bare_data);</div>
<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"> 1183</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#afac13facfc59d6710c31daee0302e39d">AARUF_ERROR_REACHED_UNREACHABLE_CODE</a>;</div>
<div class="line"><a id="l01184" name="l01184"></a><span class="lineno"> 1184</span> }</div>
<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"> 1185</span> </div>
<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</span> <span class="keywordflow">if</span>(res != <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>)</div>
<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"> 1187</span> {</div>
<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"> 1188</span> *length = 2352;</div>
<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span> free(bare_data);</div>
<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span> }</div>
<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span> </div>
<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac6734b2de73a4b6147aadc49bf3e96f8">mode2_subheaders</a> != NULL &amp;&amp; ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a> != NULL)</div>
<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span> {</div>
<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span> memcpy(data + 16, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac6734b2de73a4b6147aadc49bf3e96f8">mode2_subheaders</a> + corrected_sector_address * 8, 8);</div>
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span> <span class="keyword">const</span> uint64_t suffix_ddt_entry = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a>[corrected_sector_address];</div>
<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"> 1197</span> <span class="keyword">const</span> uint64_t suffix_status = suffix_ddt_entry &gt;&gt; 60;</div>
<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span> <span class="keyword">const</span> uint64_t suffix_index = suffix_ddt_entry &amp; 0x0FFFFFFFFFFFFFFF;</div>
<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span> </div>
<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span> <span class="keywordflow">if</span>(suffix_status == <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0af8e8f72cb68b416548d729560b23ff7d">SectorStatusMode2Form1Ok</a>)</div>
<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"> 1201</span> {</div>
<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"> 1202</span> memcpy(data + 24, bare_data, 2048);</div>
<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"> 1203</span> <a class="code hl_function" href="decls_8h.html#a9c9e2440119b8d7e67cb2c40125bf295">aaruf_ecc_cd_reconstruct</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a510b72290e2bd50e02ef8a2387aa829d">ecc_cd_context</a>, data, <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04af90c2d371aa1e99d911ec2173587186c">CdMode2Form1</a>);</div>
<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"> 1204</span> }</div>
<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"> 1205</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(suffix_status == <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0aa651286b685968cf12dbf8949c7c209d">SectorStatusMode2Form2Ok</a> ||</div>
<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"> 1206</span> suffix_status == <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a6a9daca7b82c2929eaf1b081ba7c7437">SectorStatusMode2Form2NoCrc</a>)</div>
<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"> 1207</span> {</div>
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</span> memcpy(data + 24, bare_data, 2324);</div>
<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span> <span class="keywordflow">if</span>(suffix_status == <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0aa651286b685968cf12dbf8949c7c209d">SectorStatusMode2Form2Ok</a>)</div>
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span> <a class="code hl_function" href="decls_8h.html#a9c9e2440119b8d7e67cb2c40125bf295">aaruf_ecc_cd_reconstruct</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a510b72290e2bd50e02ef8a2387aa829d">ecc_cd_context</a>, data, <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04ab68a4bd72f7e85f28dcb9c5a5441743a">CdMode2Form2</a>);</div>
<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span> }</div>
<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"> 1212</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(suffix_status == <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a032ffcff283d253414768f0fa035af4d">SectorStatusNotDumped</a>)</div>
<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span> res = <a class="code hl_define" href="errors_8h.html#ab629288e7ddaf4dd8419621e6963e2cf">AARUF_STATUS_SECTOR_NOT_DUMPED</a>;</div>
<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"> 1214</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span> <span class="comment">// Mode 2 where ECC failed</span></div>
<div class="line"><a id="l01216" name="l01216"></a><span class="lineno"> 1216</span> memcpy(data + 24, bare_data, 2328);</div>
<div class="line"><a id="l01217" name="l01217"></a><span class="lineno"> 1217</span> }</div>
<div class="line"><a id="l01218" name="l01218"></a><span class="lineno"> 1218</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac6734b2de73a4b6147aadc49bf3e96f8">mode2_subheaders</a> != NULL &amp;&amp; ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a5ec94a7912a165e5e7cacbeb8b65cbdf">sector_suffix_ddt</a> != NULL)</div>
<div class="line"><a id="l01219" name="l01219"></a><span class="lineno"> 1219</span> {</div>
<div class="line"><a id="l01220" name="l01220"></a><span class="lineno"> 1220</span> memcpy(data + 16, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac6734b2de73a4b6147aadc49bf3e96f8">mode2_subheaders</a> + corrected_sector_address * 8, 8);</div>
<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"> 1221</span> </div>
<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"> 1222</span> <span class="keywordflow">if</span>((ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a5ec94a7912a165e5e7cacbeb8b65cbdf">sector_suffix_ddt</a>[corrected_sector_address] &amp; <a class="code hl_define" href="consts_8h.html#aa64757ba31a320f675fca1062111180f">CD_XFIX_MASK</a>) == <a class="code hl_enumvalue" href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7aa0182bd12e0fed2c6f2ea368cc9a94a8">Mode2Form1Ok</a>)</div>
<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"> 1223</span> {</div>
<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span> memcpy(data + 24, bare_data, 2048);</div>
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"> 1225</span> <a class="code hl_function" href="decls_8h.html#a9c9e2440119b8d7e67cb2c40125bf295">aaruf_ecc_cd_reconstruct</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a510b72290e2bd50e02ef8a2387aa829d">ecc_cd_context</a>, data, <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04af90c2d371aa1e99d911ec2173587186c">CdMode2Form1</a>);</div>
<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span> }</div>
<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"> 1227</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>((ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a5ec94a7912a165e5e7cacbeb8b65cbdf">sector_suffix_ddt</a>[corrected_sector_address] &amp; <a class="code hl_define" href="consts_8h.html#aa64757ba31a320f675fca1062111180f">CD_XFIX_MASK</a>) == <a class="code hl_enumvalue" href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7a347d3d74e3c5f56a3e41eb82e59b952f">Mode2Form2Ok</a> ||</div>
<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"> 1228</span> (ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a5ec94a7912a165e5e7cacbeb8b65cbdf">sector_suffix_ddt</a>[corrected_sector_address] &amp; <a class="code hl_define" href="consts_8h.html#aa64757ba31a320f675fca1062111180f">CD_XFIX_MASK</a>) == <a class="code hl_enumvalue" href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7abe4c0f68addb6b935a63401cafcb8d28">Mode2Form2NoCrc</a>)</div>
<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span> {</div>
<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span> memcpy(data + 24, bare_data, 2324);</div>
<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span> <span class="keywordflow">if</span>((ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a5ec94a7912a165e5e7cacbeb8b65cbdf">sector_suffix_ddt</a>[corrected_sector_address] &amp; <a class="code hl_define" href="consts_8h.html#aa64757ba31a320f675fca1062111180f">CD_XFIX_MASK</a>) == <a class="code hl_enumvalue" href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7a347d3d74e3c5f56a3e41eb82e59b952f">Mode2Form2Ok</a>)</div>
<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span> <a class="code hl_function" href="decls_8h.html#a9c9e2440119b8d7e67cb2c40125bf295">aaruf_ecc_cd_reconstruct</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a510b72290e2bd50e02ef8a2387aa829d">ecc_cd_context</a>, data, <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04ab68a4bd72f7e85f28dcb9c5a5441743a">CdMode2Form2</a>);</div>
<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span> }</div>
<div class="line"><a id="l01234" name="l01234"></a><span class="lineno"> 1234</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>((ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a5ec94a7912a165e5e7cacbeb8b65cbdf">sector_suffix_ddt</a>[corrected_sector_address] &amp; <a class="code hl_define" href="consts_8h.html#aa64757ba31a320f675fca1062111180f">CD_XFIX_MASK</a>) == <a class="code hl_enumvalue" href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7ab3fac5cd103786d64f7ee67bcb9ac458">NotDumped</a>)</div>
<div class="line"><a id="l01235" name="l01235"></a><span class="lineno"> 1235</span> res = <a class="code hl_define" href="errors_8h.html#ab629288e7ddaf4dd8419621e6963e2cf">AARUF_STATUS_SECTOR_NOT_DUMPED</a>;</div>
<div class="line"><a id="l01236" name="l01236"></a><span class="lineno"> 1236</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01237" name="l01237"></a><span class="lineno"> 1237</span> <span class="comment">// Mode 2 where ECC failed</span></div>
<div class="line"><a id="l01238" name="l01238"></a><span class="lineno"> 1238</span> memcpy(data + 24, bare_data, 2328);</div>
<div class="line"><a id="l01239" name="l01239"></a><span class="lineno"> 1239</span> }</div>
<div class="line"><a id="l01240" name="l01240"></a><span class="lineno"> 1240</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac6734b2de73a4b6147aadc49bf3e96f8">mode2_subheaders</a> != NULL)</div>
<div class="line"><a id="l01241" name="l01241"></a><span class="lineno"> 1241</span> {</div>
<div class="line"><a id="l01242" name="l01242"></a><span class="lineno"> 1242</span> memcpy(data + 16, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac6734b2de73a4b6147aadc49bf3e96f8">mode2_subheaders</a> + corrected_sector_address * 8, 8);</div>
<div class="line"><a id="l01243" name="l01243"></a><span class="lineno"> 1243</span> memcpy(data + 24, bare_data, 2328);</div>
<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"> 1244</span> }</div>
<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"> 1246</span> memcpy(data + 16, bare_data, 2336);</div>
<div class="line"><a id="l01247" name="l01247"></a><span class="lineno"> 1247</span> </div>
<div class="line"><a id="l01248" name="l01248"></a><span class="lineno"> 1248</span> *length = 2352;</div>
<div class="line"><a id="l01249" name="l01249"></a><span class="lineno"> 1249</span> free(bare_data);</div>
<div class="line"><a id="l01250" name="l01250"></a><span class="lineno"> 1250</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l01251" name="l01251"></a><span class="lineno"> 1251</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l01252" name="l01252"></a><span class="lineno"> 1252</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid track type %d&quot;</span>, trk.<a class="code hl_variable" href="structTrackEntry.html#ac8dd4cd45f2757b51a27385c7731dde4">type</a>);</div>
<div class="line"><a id="l01253" name="l01253"></a><span class="lineno"> 1253</span> free(bare_data);</div>
<div class="line"><a id="l01254" name="l01254"></a><span class="lineno"> 1254</span> </div>
<div class="line"><a id="l01255" name="l01255"></a><span class="lineno"> 1255</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_INVALID_TRACK_FORMAT&quot;</span>);</div>
<div class="line"><a id="l01256" name="l01256"></a><span class="lineno"> 1256</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a604a2b6b7bf491f7e62a817b6c887f32">AARUF_ERROR_INVALID_TRACK_FORMAT</a>;</div>
<div class="line"><a id="l01257" name="l01257"></a><span class="lineno"> 1257</span> }</div>
<div class="line"><a id="l01258" name="l01258"></a><span class="lineno"> 1258</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466ad45ebea105994c5fe86200f36d9e6ccd">BlockMedia</a>:</div>
<div class="line"><a id="l01259" name="l01259"></a><span class="lineno"> 1259</span> <span class="keywordflow">switch</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>)</div>
<div class="line"><a id="l01260" name="l01260"></a><span class="lineno"> 1260</span> {</div>
<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"> 1261</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aac08b59f9e8ecf5e380092edddb0340ec">AppleFileWare</a>:</div>
<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"> 1262</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa0a8ba83da933d4ad284631784a991f19">AppleProfile</a>:</div>
<div class="line"><a id="l01263" name="l01263"></a><span class="lineno"> 1263</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa3d003ea60d3ecb7018a671e1302938a0">AppleSonySS</a>:</div>
<div class="line"><a id="l01264" name="l01264"></a><span class="lineno"> 1264</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aae809315e2cd79c3fd74d1604c38f3ae6">AppleSonyDS</a>:</div>
<div class="line"><a id="l01265" name="l01265"></a><span class="lineno"> 1265</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aacd42dba7780092d737e7d51a3819cb4b">AppleWidget</a>:</div>
<div class="line"><a id="l01266" name="l01266"></a><span class="lineno"> 1266</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aab933939a09397f9311004f3dd137226d">PriamDataTower</a>:</div>
<div class="line"><a id="l01267" name="l01267"></a><span class="lineno"> 1267</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> == NULL)</div>
<div class="line"><a id="l01268" name="l01268"></a><span class="lineno"> 1268</span> <span class="keywordflow">return</span> <a class="code hl_function" href="read_8c.html#a6feebf672750fc129fe2802ab738d563">aaruf_read_sector</a>(context, sector_address, negative, data, length, sector_status);</div>
<div class="line"><a id="l01269" name="l01269"></a><span class="lineno"> 1269</span> </div>
<div class="line"><a id="l01270" name="l01270"></a><span class="lineno"> 1270</span> <span class="keywordflow">switch</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>)</div>
<div class="line"><a id="l01271" name="l01271"></a><span class="lineno"> 1271</span> {</div>
<div class="line"><a id="l01272" name="l01272"></a><span class="lineno"> 1272</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aac08b59f9e8ecf5e380092edddb0340ec">AppleFileWare</a>:</div>
<div class="line"><a id="l01273" name="l01273"></a><span class="lineno"> 1273</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa0a8ba83da933d4ad284631784a991f19">AppleProfile</a>:</div>
<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"> 1274</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aacd42dba7780092d737e7d51a3819cb4b">AppleWidget</a>:</div>
<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"> 1275</span> tag_length = 20;</div>
<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa3d003ea60d3ecb7018a671e1302938a0">AppleSonySS</a>:</div>
<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aae809315e2cd79c3fd74d1604c38f3ae6">AppleSonyDS</a>:</div>
<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span> tag_length = 12;</div>
<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"> 1280</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"> 1281</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aab933939a09397f9311004f3dd137226d">PriamDataTower</a>:</div>
<div class="line"><a id="l01282" name="l01282"></a><span class="lineno"> 1282</span> tag_length = 24;</div>
<div class="line"><a id="l01283" name="l01283"></a><span class="lineno"> 1283</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01284" name="l01284"></a><span class="lineno"> 1284</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l01285" name="l01285"></a><span class="lineno"> 1285</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Unsupported media type %d&quot;</span>, ctx-&gt;imageInfo.MediaType);</div>
<div class="line"><a id="l01286" name="l01286"></a><span class="lineno"> 1286</span> </div>
<div class="line"><a id="l01287" name="l01287"></a><span class="lineno"> 1287</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01288" name="l01288"></a><span class="lineno"> 1288</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01289" name="l01289"></a><span class="lineno"> 1289</span> }</div>
<div class="line"><a id="l01290" name="l01290"></a><span class="lineno"> 1290</span> </div>
<div class="line"><a id="l01291" name="l01291"></a><span class="lineno"> 1291</span> bare_length = 512;</div>
<div class="line"><a id="l01292" name="l01292"></a><span class="lineno"> 1292</span> </div>
<div class="line"><a id="l01293" name="l01293"></a><span class="lineno"> 1293</span> <span class="keywordflow">if</span>(*length &lt; tag_length + bare_length || data == NULL)</div>
<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span> {</div>
<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span> *length = tag_length + bare_length;</div>
<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"> 1296</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Buffer too small for sector, required %u bytes&quot;</span>, *length);</div>
<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"> 1297</span> </div>
<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"> 1298</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"> 1300</span> }</div>
<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span> </div>
<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Allocating memory for bare data of size %u bytes&quot;</span>, bare_length);</div>
<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"> 1303</span> bare_data = malloc(bare_length);</div>
<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</span> </div>
<div class="line"><a id="l01305" name="l01305"></a><span class="lineno"> 1305</span> <span class="keywordflow">if</span>(bare_data == NULL)</div>
<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"> 1306</span> {</div>
<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for bare data&quot;</span>);</div>
<div class="line"><a id="l01308" name="l01308"></a><span class="lineno"> 1308</span> </div>
<div class="line"><a id="l01309" name="l01309"></a><span class="lineno"> 1309</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"> 1310</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</a>;</div>
<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"> 1311</span> }</div>
<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"> 1312</span> </div>
<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"> 1313</span> res = <a class="code hl_function" href="read_8c.html#a6feebf672750fc129fe2802ab738d563">aaruf_read_sector</a>(context, sector_address, negative, bare_data, &amp;bare_length, sector_status);</div>
<div class="line"><a id="l01314" name="l01314"></a><span class="lineno"> 1314</span> </div>
<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"> 1315</span> <span class="keywordflow">if</span>(res != <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>)</div>
<div class="line"><a id="l01316" name="l01316"></a><span class="lineno"> 1316</span> {</div>
<div class="line"><a id="l01317" name="l01317"></a><span class="lineno"> 1317</span> free(bare_data);</div>
<div class="line"><a id="l01318" name="l01318"></a><span class="lineno"> 1318</span> </div>
<div class="line"><a id="l01319" name="l01319"></a><span class="lineno"> 1319</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = %d&quot;</span>, res);</div>
<div class="line"><a id="l01320" name="l01320"></a><span class="lineno"> 1320</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l01321" name="l01321"></a><span class="lineno"> 1321</span> }</div>
<div class="line"><a id="l01322" name="l01322"></a><span class="lineno"> 1322</span> </div>
<div class="line"><a id="l01323" name="l01323"></a><span class="lineno"> 1323</span> <span class="keywordflow">if</span>(bare_length != 512)</div>
<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"> 1324</span> {</div>
<div class="line"><a id="l01325" name="l01325"></a><span class="lineno"> 1325</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Bare data length is %u, expected 512&quot;</span>, bare_length);</div>
<div class="line"><a id="l01326" name="l01326"></a><span class="lineno"> 1326</span> free(bare_data);</div>
<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"> 1327</span> </div>
<div class="line"><a id="l01328" name="l01328"></a><span class="lineno"> 1328</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01329" name="l01329"></a><span class="lineno"> 1329</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01330" name="l01330"></a><span class="lineno"> 1330</span> }</div>
<div class="line"><a id="l01331" name="l01331"></a><span class="lineno"> 1331</span> </div>
<div class="line"><a id="l01332" name="l01332"></a><span class="lineno"> 1332</span> memcpy(data + bare_length, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> + corrected_sector_address * tag_length,</div>
<div class="line"><a id="l01333" name="l01333"></a><span class="lineno"> 1333</span> tag_length);</div>
<div class="line"><a id="l01334" name="l01334"></a><span class="lineno"> 1334</span> memcpy(data, bare_data, bare_length);</div>
<div class="line"><a id="l01335" name="l01335"></a><span class="lineno"> 1335</span> *length = tag_length + bare_length;</div>
<div class="line"><a id="l01336" name="l01336"></a><span class="lineno"> 1336</span> </div>
<div class="line"><a id="l01337" name="l01337"></a><span class="lineno"> 1337</span> free(bare_data);</div>
<div class="line"><a id="l01338" name="l01338"></a><span class="lineno"> 1338</span> </div>
<div class="line"><a id="l01339" name="l01339"></a><span class="lineno"> 1339</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"> 1340</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"> 1341</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"> 1342</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect media type %d for long sector reading&quot;</span>, ctx-&gt;imageInfo.MediaType);</div>
<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"> 1343</span> </div>
<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"> 1344</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"> 1345</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span> }</div>
<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"> 1348</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect media type %d for long sector reading&quot;</span>, ctx-&gt;imageInfo.MediaType);</div>
<div class="line"><a id="l01349" name="l01349"></a><span class="lineno"> 1349</span> </div>
<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"> 1350</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_long() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01351" name="l01351"></a><span class="lineno"> 1351</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01352" name="l01352"></a><span class="lineno"> 1352</span> }</div>
<div class="line"><a id="l01353" name="l01353"></a><span class="lineno"> 1353</span>}</div>
</div>
<div class="line"><a id="l01354" name="l01354"></a><span class="lineno"> 1354</span></div>
<div class="foldopen" id="foldopen01474" data-start="{" data-end="}">
<div class="line"><a id="l01474" name="l01474"></a><span class="lineno"><a class="line" href="decls_8h.html#ae5a85524a6e27339c02c4a5791e0db57"> 1474</a></span><a class="code hl_define" href="decls_8h.html#a9001412c35f3c92d3a9320d27b0d97f9">AARU_EXPORT</a> int32_t <a class="code hl_define" href="decls_8h.html#a018e0da1c1f7e4f6187a982c0e40e056">AARU_CALL</a> <a class="code hl_function" href="read_8c.html#ac6c55f931eb4c113d19ff7c194fce65a">aaruf_read_sector_tag</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint64_t sector_address,</div>
<div class="line"><a id="l01475" name="l01475"></a><span class="lineno"> 1475</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> negative, uint8_t *buffer, uint32_t *length,</div>
<div class="line"><a id="l01476" name="l01476"></a><span class="lineno"> 1476</span> <span class="keyword">const</span> int32_t tag)</div>
<div class="line"><a id="l01477" name="l01477"></a><span class="lineno"> 1477</span>{</div>
<div class="line"><a id="l01478" name="l01478"></a><span class="lineno"> 1478</span> <span class="keyword">const</span> uint32_t initial_length = length == NULL ? 0U : *length;</div>
<div class="line"><a id="l01479" name="l01479"></a><span class="lineno"> 1479</span> </div>
<div class="line"><a id="l01480" name="l01480"></a><span class="lineno"> 1480</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_read_sector_tag(%p, %&quot;</span> PRIu64 <span class="stringliteral">&quot;, %d, %p, %u, %d)&quot;</span>, context, sector_address, negative, buffer,</div>
<div class="line"><a id="l01481" name="l01481"></a><span class="lineno"> 1481</span> initial_length, tag);</div>
<div class="line"><a id="l01482" name="l01482"></a><span class="lineno"> 1482</span> </div>
<div class="line"><a id="l01483" name="l01483"></a><span class="lineno"> 1483</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = NULL;</div>
<div class="line"><a id="l01484" name="l01484"></a><span class="lineno"> 1484</span> </div>
<div class="line"><a id="l01485" name="l01485"></a><span class="lineno"> 1485</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l01486" name="l01486"></a><span class="lineno"> 1486</span> {</div>
<div class="line"><a id="l01487" name="l01487"></a><span class="lineno"> 1487</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l01488" name="l01488"></a><span class="lineno"> 1488</span> </div>
<div class="line"><a id="l01489" name="l01489"></a><span class="lineno"> 1489</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01490" name="l01490"></a><span class="lineno"> 1490</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</a>;</div>
<div class="line"><a id="l01491" name="l01491"></a><span class="lineno"> 1491</span> }</div>
<div class="line"><a id="l01492" name="l01492"></a><span class="lineno"> 1492</span> </div>
<div class="line"><a id="l01493" name="l01493"></a><span class="lineno"> 1493</span> ctx = context;</div>
<div class="line"><a id="l01494" name="l01494"></a><span class="lineno"> 1494</span> </div>
<div class="line"><a id="l01495" name="l01495"></a><span class="lineno"> 1495</span> <span class="keywordflow">if</span>(length == NULL)</div>
<div class="line"><a id="l01496" name="l01496"></a><span class="lineno"> 1496</span> {</div>
<div class="line"><a id="l01497" name="l01497"></a><span class="lineno"> 1497</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid length pointer&quot;</span>);</div>
<div class="line"><a id="l01498" name="l01498"></a><span class="lineno"> 1498</span> </div>
<div class="line"><a id="l01499" name="l01499"></a><span class="lineno"> 1499</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01500" name="l01500"></a><span class="lineno"> 1500</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01501" name="l01501"></a><span class="lineno"> 1501</span> }</div>
<div class="line"><a id="l01502" name="l01502"></a><span class="lineno"> 1502</span> </div>
<div class="line"><a id="l01503" name="l01503"></a><span class="lineno"> 1503</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l01504" name="l01504"></a><span class="lineno"> 1504</span> <span class="keywordflow">if</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="l01505" name="l01505"></a><span class="lineno"> 1505</span> {</div>
<div class="line"><a id="l01506" name="l01506"></a><span class="lineno"> 1506</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l01507" name="l01507"></a><span class="lineno"> 1507</span> </div>
<div class="line"><a id="l01508" name="l01508"></a><span class="lineno"> 1508</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01509" name="l01509"></a><span class="lineno"> 1509</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</a>;</div>
<div class="line"><a id="l01510" name="l01510"></a><span class="lineno"> 1510</span> }</div>
<div class="line"><a id="l01511" name="l01511"></a><span class="lineno"> 1511</span> </div>
<div class="line"><a id="l01512" name="l01512"></a><span class="lineno"> 1512</span> <span class="keywordflow">if</span>(negative &amp;&amp; sector_address &gt; ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04c5fb367458a6e9dd0a50b39f6edec2">user_data_ddt_header</a>.<a class="code hl_variable" href="structDdtHeader2.html#aa4b1416ac0e0585f436513cacf9ebd74">negative</a> - 1)</div>
<div class="line"><a id="l01513" name="l01513"></a><span class="lineno"> 1513</span> {</div>
<div class="line"><a id="l01514" name="l01514"></a><span class="lineno"> 1514</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector address out of bounds&quot;</span>);</div>
<div class="line"><a id="l01515" name="l01515"></a><span class="lineno"> 1515</span> </div>
<div class="line"><a id="l01516" name="l01516"></a><span class="lineno"> 1516</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_SECTOR_OUT_OF_BOUNDS&quot;</span>);</div>
<div class="line"><a id="l01517" name="l01517"></a><span class="lineno"> 1517</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a3f6069602fee5f1264befab13708c0ef">AARUF_ERROR_SECTOR_OUT_OF_BOUNDS</a>;</div>
<div class="line"><a id="l01518" name="l01518"></a><span class="lineno"> 1518</span> }</div>
<div class="line"><a id="l01519" name="l01519"></a><span class="lineno"> 1519</span> </div>
<div class="line"><a id="l01520" name="l01520"></a><span class="lineno"> 1520</span> <span class="keywordflow">if</span>(!negative &amp;&amp; sector_address &gt; 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> + ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04c5fb367458a6e9dd0a50b39f6edec2">user_data_ddt_header</a>.<a class="code hl_variable" href="structDdtHeader2.html#a2bfa558d9d778ae6b86d52520e278b66">overflow</a> - 1)</div>
<div class="line"><a id="l01521" name="l01521"></a><span class="lineno"> 1521</span> {</div>
<div class="line"><a id="l01522" name="l01522"></a><span class="lineno"> 1522</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector address out of bounds&quot;</span>);</div>
<div class="line"><a id="l01523" name="l01523"></a><span class="lineno"> 1523</span> </div>
<div class="line"><a id="l01524" name="l01524"></a><span class="lineno"> 1524</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_SECTOR_OUT_OF_BOUNDS&quot;</span>);</div>
<div class="line"><a id="l01525" name="l01525"></a><span class="lineno"> 1525</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a3f6069602fee5f1264befab13708c0ef">AARUF_ERROR_SECTOR_OUT_OF_BOUNDS</a>;</div>
<div class="line"><a id="l01526" name="l01526"></a><span class="lineno"> 1526</span> }</div>
<div class="line"><a id="l01527" name="l01527"></a><span class="lineno"> 1527</span> </div>
<div class="line"><a id="l01528" name="l01528"></a><span class="lineno"> 1528</span> uint64_t corrected_sector_address = sector_address;</div>
<div class="line"><a id="l01529" name="l01529"></a><span class="lineno"> 1529</span> </div>
<div class="line"><a id="l01530" name="l01530"></a><span class="lineno"> 1530</span> <span class="comment">// Calculate positive or negative sector</span></div>
<div class="line"><a id="l01531" name="l01531"></a><span class="lineno"> 1531</span> <span class="keywordflow">if</span>(negative)</div>
<div class="line"><a id="l01532" name="l01532"></a><span class="lineno"> 1532</span> corrected_sector_address -= ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04c5fb367458a6e9dd0a50b39f6edec2">user_data_ddt_header</a>.<a class="code hl_variable" href="structDdtHeader2.html#aa4b1416ac0e0585f436513cacf9ebd74">negative</a>;</div>
<div class="line"><a id="l01533" name="l01533"></a><span class="lineno"> 1533</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01534" name="l01534"></a><span class="lineno"> 1534</span> corrected_sector_address += ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04c5fb367458a6e9dd0a50b39f6edec2">user_data_ddt_header</a>.<a class="code hl_variable" href="structDdtHeader2.html#aa4b1416ac0e0585f436513cacf9ebd74">negative</a>;</div>
<div class="line"><a id="l01535" name="l01535"></a><span class="lineno"> 1535</span> </div>
<div class="line"><a id="l01536" name="l01536"></a><span class="lineno"> 1536</span> <span class="keywordflow">switch</span>(tag)</div>
<div class="line"><a id="l01537" name="l01537"></a><span class="lineno"> 1537</span> {</div>
<div class="line"><a id="l01538" name="l01538"></a><span class="lineno"> 1538</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa4922f334e9f6fb030152d093be4bee7c">CdTrackFlags</a>:</div>
<div class="line"><a id="l01539" name="l01539"></a><span class="lineno"> 1539</span> <span class="keywordflow">if</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_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466aaf46f69508c3a90e5588c71f410a7f12">OpticalDisc</a>)</div>
<div class="line"><a id="l01540" name="l01540"></a><span class="lineno"> 1540</span> {</div>
<div class="line"><a id="l01541" name="l01541"></a><span class="lineno"> 1541</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid media type for tag&quot;</span>);</div>
<div class="line"><a id="l01542" name="l01542"></a><span class="lineno"> 1542</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01543" name="l01543"></a><span class="lineno"> 1543</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01544" name="l01544"></a><span class="lineno"> 1544</span> }</div>
<div class="line"><a id="l01545" name="l01545"></a><span class="lineno"> 1545</span> </div>
<div class="line"><a id="l01546" name="l01546"></a><span class="lineno"> 1546</span> <span class="keywordflow">if</span>(*length != 1 || buffer == NULL)</div>
<div class="line"><a id="l01547" name="l01547"></a><span class="lineno"> 1547</span> {</div>
<div class="line"><a id="l01548" name="l01548"></a><span class="lineno"> 1548</span> *length = 1;</div>
<div class="line"><a id="l01549" name="l01549"></a><span class="lineno"> 1549</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect tag size&quot;</span>);</div>
<div class="line"><a id="l01550" name="l01550"></a><span class="lineno"> 1550</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01551" name="l01551"></a><span class="lineno"> 1551</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01552" name="l01552"></a><span class="lineno"> 1552</span> }</div>
<div class="line"><a id="l01553" name="l01553"></a><span class="lineno"> 1553</span> </div>
<div class="line"><a id="l01554" name="l01554"></a><span class="lineno"> 1554</span> <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aff71b0229a1c4c78572cfdb0824e601e">tracks_header</a>.<a class="code hl_variable" href="structTracksHeader.html#a98df23dccacc04396f07f450a742527a">entries</a>; i++)</div>
<div class="line"><a id="l01555" name="l01555"></a><span class="lineno"> 1555</span> <span class="keywordflow">if</span>(sector_address &gt;= ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#adcabe3b59f532d036adf16b78faba58e">track_entries</a>[i].<a class="code hl_variable" href="structTrackEntry.html#aa82e4a2aa2cfecee9891f117e9494cdf">start</a> &amp;&amp; sector_address &lt;= ctx-&gt;track_entries[i].end)</div>
<div class="line"><a id="l01556" name="l01556"></a><span class="lineno"> 1556</span> {</div>
<div class="line"><a id="l01557" name="l01557"></a><span class="lineno"> 1557</span> buffer[0] = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#adcabe3b59f532d036adf16b78faba58e">track_entries</a>[i].<a class="code hl_variable" href="structTrackEntry.html#a7ae98d532f6dff50c2439b64d2cddb45">flags</a>;</div>
<div class="line"><a id="l01558" name="l01558"></a><span class="lineno"> 1558</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l01559" name="l01559"></a><span class="lineno"> 1559</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01560" name="l01560"></a><span class="lineno"> 1560</span> }</div>
<div class="line"><a id="l01561" name="l01561"></a><span class="lineno"> 1561</span> </div>
<div class="line"><a id="l01562" name="l01562"></a><span class="lineno"> 1562</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Track not found&quot;</span>);</div>
<div class="line"><a id="l01563" name="l01563"></a><span class="lineno"> 1563</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a32b645da87003df886a5742d23f8ca19">AARUF_ERROR_TRACK_NOT_FOUND</a>;</div>
<div class="line"><a id="l01564" name="l01564"></a><span class="lineno"> 1564</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa8e35806d5790cb5568b7535073d40179">CdTrackIsrc</a>:</div>
<div class="line"><a id="l01565" name="l01565"></a><span class="lineno"> 1565</span> <span class="keywordflow">if</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_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466aaf46f69508c3a90e5588c71f410a7f12">OpticalDisc</a>)</div>
<div class="line"><a id="l01566" name="l01566"></a><span class="lineno"> 1566</span> {</div>
<div class="line"><a id="l01567" name="l01567"></a><span class="lineno"> 1567</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid media type for tag&quot;</span>);</div>
<div class="line"><a id="l01568" name="l01568"></a><span class="lineno"> 1568</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01569" name="l01569"></a><span class="lineno"> 1569</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01570" name="l01570"></a><span class="lineno"> 1570</span> }</div>
<div class="line"><a id="l01571" name="l01571"></a><span class="lineno"> 1571</span> </div>
<div class="line"><a id="l01572" name="l01572"></a><span class="lineno"> 1572</span> <span class="keywordflow">if</span>(*length != 12 || buffer == NULL)</div>
<div class="line"><a id="l01573" name="l01573"></a><span class="lineno"> 1573</span> {</div>
<div class="line"><a id="l01574" name="l01574"></a><span class="lineno"> 1574</span> *length = 12;</div>
<div class="line"><a id="l01575" name="l01575"></a><span class="lineno"> 1575</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect tag size&quot;</span>);</div>
<div class="line"><a id="l01576" name="l01576"></a><span class="lineno"> 1576</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01577" name="l01577"></a><span class="lineno"> 1577</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01578" name="l01578"></a><span class="lineno"> 1578</span> }</div>
<div class="line"><a id="l01579" name="l01579"></a><span class="lineno"> 1579</span> </div>
<div class="line"><a id="l01580" name="l01580"></a><span class="lineno"> 1580</span> <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aff71b0229a1c4c78572cfdb0824e601e">tracks_header</a>.<a class="code hl_variable" href="structTracksHeader.html#a98df23dccacc04396f07f450a742527a">entries</a>; i++)</div>
<div class="line"><a id="l01581" name="l01581"></a><span class="lineno"> 1581</span> <span class="keywordflow">if</span>(sector_address &gt;= ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#adcabe3b59f532d036adf16b78faba58e">track_entries</a>[i].<a class="code hl_variable" href="structTrackEntry.html#aa82e4a2aa2cfecee9891f117e9494cdf">start</a> &amp;&amp; sector_address &lt;= ctx-&gt;track_entries[i].end)</div>
<div class="line"><a id="l01582" name="l01582"></a><span class="lineno"> 1582</span> {</div>
<div class="line"><a id="l01583" name="l01583"></a><span class="lineno"> 1583</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#adcabe3b59f532d036adf16b78faba58e">track_entries</a>[i].<a class="code hl_variable" href="structTrackEntry.html#acb023e4728c59964c83fe85474c512c8">isrc</a>, 12);</div>
<div class="line"><a id="l01584" name="l01584"></a><span class="lineno"> 1584</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l01585" name="l01585"></a><span class="lineno"> 1585</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01586" name="l01586"></a><span class="lineno"> 1586</span> }</div>
<div class="line"><a id="l01587" name="l01587"></a><span class="lineno"> 1587</span> </div>
<div class="line"><a id="l01588" name="l01588"></a><span class="lineno"> 1588</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Track not found&quot;</span>);</div>
<div class="line"><a id="l01589" name="l01589"></a><span class="lineno"> 1589</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a32b645da87003df886a5742d23f8ca19">AARUF_ERROR_TRACK_NOT_FOUND</a>;</div>
<div class="line"><a id="l01590" name="l01590"></a><span class="lineno"> 1590</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa73586ffdff3f35b8a05b7f8fd37fcee2">CdSectorSubchannelAaru</a>:</div>
<div class="line"><a id="l01591" name="l01591"></a><span class="lineno"> 1591</span> <span class="keywordflow">if</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_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466aaf46f69508c3a90e5588c71f410a7f12">OpticalDisc</a>)</div>
<div class="line"><a id="l01592" name="l01592"></a><span class="lineno"> 1592</span> {</div>
<div class="line"><a id="l01593" name="l01593"></a><span class="lineno"> 1593</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid media type for tag&quot;</span>);</div>
<div class="line"><a id="l01594" name="l01594"></a><span class="lineno"> 1594</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01595" name="l01595"></a><span class="lineno"> 1595</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01596" name="l01596"></a><span class="lineno"> 1596</span> }</div>
<div class="line"><a id="l01597" name="l01597"></a><span class="lineno"> 1597</span> </div>
<div class="line"><a id="l01598" name="l01598"></a><span class="lineno"> 1598</span> <span class="keywordflow">if</span>(*length != 96 || buffer == NULL)</div>
<div class="line"><a id="l01599" name="l01599"></a><span class="lineno"> 1599</span> {</div>
<div class="line"><a id="l01600" name="l01600"></a><span class="lineno"> 1600</span> *length = 96;</div>
<div class="line"><a id="l01601" name="l01601"></a><span class="lineno"> 1601</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect tag size&quot;</span>);</div>
<div class="line"><a id="l01602" name="l01602"></a><span class="lineno"> 1602</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01603" name="l01603"></a><span class="lineno"> 1603</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01604" name="l01604"></a><span class="lineno"> 1604</span> }</div>
<div class="line"><a id="l01605" name="l01605"></a><span class="lineno"> 1605</span> </div>
<div class="line"><a id="l01606" name="l01606"></a><span class="lineno"> 1606</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> == NULL)</div>
<div class="line"><a id="l01607" name="l01607"></a><span class="lineno"> 1607</span> {</div>
<div class="line"><a id="l01608" name="l01608"></a><span class="lineno"> 1608</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector tag not found&quot;</span>);</div>
<div class="line"><a id="l01609" name="l01609"></a><span class="lineno"> 1609</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_SECTOR_TAG_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l01610" name="l01610"></a><span class="lineno"> 1610</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#aa70d43d59e04b7147c14771c4821e670">AARUF_ERROR_SECTOR_TAG_NOT_PRESENT</a>;</div>
<div class="line"><a id="l01611" name="l01611"></a><span class="lineno"> 1611</span> }</div>
<div class="line"><a id="l01612" name="l01612"></a><span class="lineno"> 1612</span> </div>
<div class="line"><a id="l01613" name="l01613"></a><span class="lineno"> 1613</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> + corrected_sector_address * 96, 96);</div>
<div class="line"><a id="l01614" name="l01614"></a><span class="lineno"> 1614</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l01615" name="l01615"></a><span class="lineno"> 1615</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01616" name="l01616"></a><span class="lineno"> 1616</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa7165008ad58fcf7904dc3f6626064828">DvdCmi</a>:</div>
<div class="line"><a id="l01617" name="l01617"></a><span class="lineno"> 1617</span> <span class="keywordflow">if</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_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466aaf46f69508c3a90e5588c71f410a7f12">OpticalDisc</a>)</div>
<div class="line"><a id="l01618" name="l01618"></a><span class="lineno"> 1618</span> {</div>
<div class="line"><a id="l01619" name="l01619"></a><span class="lineno"> 1619</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid media type for tag&quot;</span>);</div>
<div class="line"><a id="l01620" name="l01620"></a><span class="lineno"> 1620</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01621" name="l01621"></a><span class="lineno"> 1621</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01622" name="l01622"></a><span class="lineno"> 1622</span> }</div>
<div class="line"><a id="l01623" name="l01623"></a><span class="lineno"> 1623</span> </div>
<div class="line"><a id="l01624" name="l01624"></a><span class="lineno"> 1624</span> <span class="keywordflow">if</span>(*length != 1 || buffer == NULL)</div>
<div class="line"><a id="l01625" name="l01625"></a><span class="lineno"> 1625</span> {</div>
<div class="line"><a id="l01626" name="l01626"></a><span class="lineno"> 1626</span> *length = 1;</div>
<div class="line"><a id="l01627" name="l01627"></a><span class="lineno"> 1627</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect tag size&quot;</span>);</div>
<div class="line"><a id="l01628" name="l01628"></a><span class="lineno"> 1628</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01629" name="l01629"></a><span class="lineno"> 1629</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01630" name="l01630"></a><span class="lineno"> 1630</span> }</div>
<div class="line"><a id="l01631" name="l01631"></a><span class="lineno"> 1631</span> </div>
<div class="line"><a id="l01632" name="l01632"></a><span class="lineno"> 1632</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a1614b9ffbd5e4661a2483eb3f68f8fd1">sector_cpr_mai</a> == NULL)</div>
<div class="line"><a id="l01633" name="l01633"></a><span class="lineno"> 1633</span> {</div>
<div class="line"><a id="l01634" name="l01634"></a><span class="lineno"> 1634</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector tag not found&quot;</span>);</div>
<div class="line"><a id="l01635" name="l01635"></a><span class="lineno"> 1635</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_SECTOR_TAG_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l01636" name="l01636"></a><span class="lineno"> 1636</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#aa70d43d59e04b7147c14771c4821e670">AARUF_ERROR_SECTOR_TAG_NOT_PRESENT</a>;</div>
<div class="line"><a id="l01637" name="l01637"></a><span class="lineno"> 1637</span> }</div>
<div class="line"><a id="l01638" name="l01638"></a><span class="lineno"> 1638</span> </div>
<div class="line"><a id="l01639" name="l01639"></a><span class="lineno"> 1639</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a1614b9ffbd5e4661a2483eb3f68f8fd1">sector_cpr_mai</a> + corrected_sector_address * 6, 1);</div>
<div class="line"><a id="l01640" name="l01640"></a><span class="lineno"> 1640</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l01641" name="l01641"></a><span class="lineno"> 1641</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01642" name="l01642"></a><span class="lineno"> 1642</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aaacdc97f5778a26551dae1e003fc5f769">DvdSectorInformation</a>:</div>
<div class="line"><a id="l01643" name="l01643"></a><span class="lineno"> 1643</span> <span class="keywordflow">if</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_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466aaf46f69508c3a90e5588c71f410a7f12">OpticalDisc</a>)</div>
<div class="line"><a id="l01644" name="l01644"></a><span class="lineno"> 1644</span> {</div>
<div class="line"><a id="l01645" name="l01645"></a><span class="lineno"> 1645</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid media type for tag&quot;</span>);</div>
<div class="line"><a id="l01646" name="l01646"></a><span class="lineno"> 1646</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01647" name="l01647"></a><span class="lineno"> 1647</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01648" name="l01648"></a><span class="lineno"> 1648</span> }</div>
<div class="line"><a id="l01649" name="l01649"></a><span class="lineno"> 1649</span> </div>
<div class="line"><a id="l01650" name="l01650"></a><span class="lineno"> 1650</span> <span class="keywordflow">if</span>(*length != 1 || buffer == NULL)</div>
<div class="line"><a id="l01651" name="l01651"></a><span class="lineno"> 1651</span> {</div>
<div class="line"><a id="l01652" name="l01652"></a><span class="lineno"> 1652</span> *length = 1;</div>
<div class="line"><a id="l01653" name="l01653"></a><span class="lineno"> 1653</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect tag size&quot;</span>);</div>
<div class="line"><a id="l01654" name="l01654"></a><span class="lineno"> 1654</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01655" name="l01655"></a><span class="lineno"> 1655</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01656" name="l01656"></a><span class="lineno"> 1656</span> }</div>
<div class="line"><a id="l01657" name="l01657"></a><span class="lineno"> 1657</span> </div>
<div class="line"><a id="l01658" name="l01658"></a><span class="lineno"> 1658</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#acc9cdfdd4be56c4f7016a37e218cee47">sector_id</a> == NULL)</div>
<div class="line"><a id="l01659" name="l01659"></a><span class="lineno"> 1659</span> {</div>
<div class="line"><a id="l01660" name="l01660"></a><span class="lineno"> 1660</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector tag not found&quot;</span>);</div>
<div class="line"><a id="l01661" name="l01661"></a><span class="lineno"> 1661</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_SECTOR_TAG_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l01662" name="l01662"></a><span class="lineno"> 1662</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#aa70d43d59e04b7147c14771c4821e670">AARUF_ERROR_SECTOR_TAG_NOT_PRESENT</a>;</div>
<div class="line"><a id="l01663" name="l01663"></a><span class="lineno"> 1663</span> }</div>
<div class="line"><a id="l01664" name="l01664"></a><span class="lineno"> 1664</span> </div>
<div class="line"><a id="l01665" name="l01665"></a><span class="lineno"> 1665</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#acc9cdfdd4be56c4f7016a37e218cee47">sector_id</a> + corrected_sector_address * 4, 1);</div>
<div class="line"><a id="l01666" name="l01666"></a><span class="lineno"> 1666</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l01667" name="l01667"></a><span class="lineno"> 1667</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01668" name="l01668"></a><span class="lineno"> 1668</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa82265a5d640ce9474f8b357c54cc0440">DvdSectorNumber</a>:</div>
<div class="line"><a id="l01669" name="l01669"></a><span class="lineno"> 1669</span> <span class="keywordflow">if</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_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466aaf46f69508c3a90e5588c71f410a7f12">OpticalDisc</a>)</div>
<div class="line"><a id="l01670" name="l01670"></a><span class="lineno"> 1670</span> {</div>
<div class="line"><a id="l01671" name="l01671"></a><span class="lineno"> 1671</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid media type for tag&quot;</span>);</div>
<div class="line"><a id="l01672" name="l01672"></a><span class="lineno"> 1672</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01673" name="l01673"></a><span class="lineno"> 1673</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01674" name="l01674"></a><span class="lineno"> 1674</span> }</div>
<div class="line"><a id="l01675" name="l01675"></a><span class="lineno"> 1675</span> </div>
<div class="line"><a id="l01676" name="l01676"></a><span class="lineno"> 1676</span> <span class="keywordflow">if</span>(*length != 3 || buffer == NULL)</div>
<div class="line"><a id="l01677" name="l01677"></a><span class="lineno"> 1677</span> {</div>
<div class="line"><a id="l01678" name="l01678"></a><span class="lineno"> 1678</span> *length = 3;</div>
<div class="line"><a id="l01679" name="l01679"></a><span class="lineno"> 1679</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect tag size&quot;</span>);</div>
<div class="line"><a id="l01680" name="l01680"></a><span class="lineno"> 1680</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01681" name="l01681"></a><span class="lineno"> 1681</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01682" name="l01682"></a><span class="lineno"> 1682</span> }</div>
<div class="line"><a id="l01683" name="l01683"></a><span class="lineno"> 1683</span> </div>
<div class="line"><a id="l01684" name="l01684"></a><span class="lineno"> 1684</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#acc9cdfdd4be56c4f7016a37e218cee47">sector_id</a> == NULL)</div>
<div class="line"><a id="l01685" name="l01685"></a><span class="lineno"> 1685</span> {</div>
<div class="line"><a id="l01686" name="l01686"></a><span class="lineno"> 1686</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector tag not found&quot;</span>);</div>
<div class="line"><a id="l01687" name="l01687"></a><span class="lineno"> 1687</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_SECTOR_TAG_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l01688" name="l01688"></a><span class="lineno"> 1688</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#aa70d43d59e04b7147c14771c4821e670">AARUF_ERROR_SECTOR_TAG_NOT_PRESENT</a>;</div>
<div class="line"><a id="l01689" name="l01689"></a><span class="lineno"> 1689</span> }</div>
<div class="line"><a id="l01690" name="l01690"></a><span class="lineno"> 1690</span> </div>
<div class="line"><a id="l01691" name="l01691"></a><span class="lineno"> 1691</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#acc9cdfdd4be56c4f7016a37e218cee47">sector_id</a> + corrected_sector_address * 4 + 1, 3);</div>
<div class="line"><a id="l01692" name="l01692"></a><span class="lineno"> 1692</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l01693" name="l01693"></a><span class="lineno"> 1693</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01694" name="l01694"></a><span class="lineno"> 1694</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa16bbf88cdbeb1c4bfe44244de7d16c3f">DvdSectorIedAaru</a>:</div>
<div class="line"><a id="l01695" name="l01695"></a><span class="lineno"> 1695</span> <span class="keywordflow">if</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_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466aaf46f69508c3a90e5588c71f410a7f12">OpticalDisc</a>)</div>
<div class="line"><a id="l01696" name="l01696"></a><span class="lineno"> 1696</span> {</div>
<div class="line"><a id="l01697" name="l01697"></a><span class="lineno"> 1697</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid media type for tag&quot;</span>);</div>
<div class="line"><a id="l01698" name="l01698"></a><span class="lineno"> 1698</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01699" name="l01699"></a><span class="lineno"> 1699</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01700" name="l01700"></a><span class="lineno"> 1700</span> }</div>
<div class="line"><a id="l01701" name="l01701"></a><span class="lineno"> 1701</span> </div>
<div class="line"><a id="l01702" name="l01702"></a><span class="lineno"> 1702</span> <span class="keywordflow">if</span>(*length != 2 || buffer == NULL)</div>
<div class="line"><a id="l01703" name="l01703"></a><span class="lineno"> 1703</span> {</div>
<div class="line"><a id="l01704" name="l01704"></a><span class="lineno"> 1704</span> *length = 2;</div>
<div class="line"><a id="l01705" name="l01705"></a><span class="lineno"> 1705</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect tag size&quot;</span>);</div>
<div class="line"><a id="l01706" name="l01706"></a><span class="lineno"> 1706</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01707" name="l01707"></a><span class="lineno"> 1707</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01708" name="l01708"></a><span class="lineno"> 1708</span> }</div>
<div class="line"><a id="l01709" name="l01709"></a><span class="lineno"> 1709</span> </div>
<div class="line"><a id="l01710" name="l01710"></a><span class="lineno"> 1710</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3bfc3fceaaf015830913fd7efa794e5a">sector_ied</a> == NULL)</div>
<div class="line"><a id="l01711" name="l01711"></a><span class="lineno"> 1711</span> {</div>
<div class="line"><a id="l01712" name="l01712"></a><span class="lineno"> 1712</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector tag not found&quot;</span>);</div>
<div class="line"><a id="l01713" name="l01713"></a><span class="lineno"> 1713</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_SECTOR_TAG_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l01714" name="l01714"></a><span class="lineno"> 1714</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#aa70d43d59e04b7147c14771c4821e670">AARUF_ERROR_SECTOR_TAG_NOT_PRESENT</a>;</div>
<div class="line"><a id="l01715" name="l01715"></a><span class="lineno"> 1715</span> }</div>
<div class="line"><a id="l01716" name="l01716"></a><span class="lineno"> 1716</span> </div>
<div class="line"><a id="l01717" name="l01717"></a><span class="lineno"> 1717</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3bfc3fceaaf015830913fd7efa794e5a">sector_ied</a> + corrected_sector_address * 2, 2);</div>
<div class="line"><a id="l01718" name="l01718"></a><span class="lineno"> 1718</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l01719" name="l01719"></a><span class="lineno"> 1719</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01720" name="l01720"></a><span class="lineno"> 1720</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa6d377a28e58b9da5452ab66e90ea4457">DvdSectorEdcAaru</a>:</div>
<div class="line"><a id="l01721" name="l01721"></a><span class="lineno"> 1721</span> <span class="keywordflow">if</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_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466aaf46f69508c3a90e5588c71f410a7f12">OpticalDisc</a>)</div>
<div class="line"><a id="l01722" name="l01722"></a><span class="lineno"> 1722</span> {</div>
<div class="line"><a id="l01723" name="l01723"></a><span class="lineno"> 1723</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid media type for tag&quot;</span>);</div>
<div class="line"><a id="l01724" name="l01724"></a><span class="lineno"> 1724</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01725" name="l01725"></a><span class="lineno"> 1725</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01726" name="l01726"></a><span class="lineno"> 1726</span> }</div>
<div class="line"><a id="l01727" name="l01727"></a><span class="lineno"> 1727</span> </div>
<div class="line"><a id="l01728" name="l01728"></a><span class="lineno"> 1728</span> <span class="keywordflow">if</span>(*length != 4 || buffer == NULL)</div>
<div class="line"><a id="l01729" name="l01729"></a><span class="lineno"> 1729</span> {</div>
<div class="line"><a id="l01730" name="l01730"></a><span class="lineno"> 1730</span> *length = 4;</div>
<div class="line"><a id="l01731" name="l01731"></a><span class="lineno"> 1731</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect tag size&quot;</span>);</div>
<div class="line"><a id="l01732" name="l01732"></a><span class="lineno"> 1732</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01733" name="l01733"></a><span class="lineno"> 1733</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01734" name="l01734"></a><span class="lineno"> 1734</span> }</div>
<div class="line"><a id="l01735" name="l01735"></a><span class="lineno"> 1735</span> </div>
<div class="line"><a id="l01736" name="l01736"></a><span class="lineno"> 1736</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4dc244e21a520e90abd961c38eb6d9ae">sector_edc</a> == NULL)</div>
<div class="line"><a id="l01737" name="l01737"></a><span class="lineno"> 1737</span> {</div>
<div class="line"><a id="l01738" name="l01738"></a><span class="lineno"> 1738</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector tag not found&quot;</span>);</div>
<div class="line"><a id="l01739" name="l01739"></a><span class="lineno"> 1739</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_SECTOR_TAG_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l01740" name="l01740"></a><span class="lineno"> 1740</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#aa70d43d59e04b7147c14771c4821e670">AARUF_ERROR_SECTOR_TAG_NOT_PRESENT</a>;</div>
<div class="line"><a id="l01741" name="l01741"></a><span class="lineno"> 1741</span> }</div>
<div class="line"><a id="l01742" name="l01742"></a><span class="lineno"> 1742</span> </div>
<div class="line"><a id="l01743" name="l01743"></a><span class="lineno"> 1743</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4dc244e21a520e90abd961c38eb6d9ae">sector_edc</a> + corrected_sector_address * 4, 4);</div>
<div class="line"><a id="l01744" name="l01744"></a><span class="lineno"> 1744</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l01745" name="l01745"></a><span class="lineno"> 1745</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01746" name="l01746"></a><span class="lineno"> 1746</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aae54bf2b3574266925062218c892c42b2">DvdTitleKeyDecrypted</a>:</div>
<div class="line"><a id="l01747" name="l01747"></a><span class="lineno"> 1747</span> <span class="keywordflow">if</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_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466aaf46f69508c3a90e5588c71f410a7f12">OpticalDisc</a>)</div>
<div class="line"><a id="l01748" name="l01748"></a><span class="lineno"> 1748</span> {</div>
<div class="line"><a id="l01749" name="l01749"></a><span class="lineno"> 1749</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid media type for tag&quot;</span>);</div>
<div class="line"><a id="l01750" name="l01750"></a><span class="lineno"> 1750</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01751" name="l01751"></a><span class="lineno"> 1751</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01752" name="l01752"></a><span class="lineno"> 1752</span> }</div>
<div class="line"><a id="l01753" name="l01753"></a><span class="lineno"> 1753</span> </div>
<div class="line"><a id="l01754" name="l01754"></a><span class="lineno"> 1754</span> <span class="keywordflow">if</span>(*length != 5 || buffer == NULL)</div>
<div class="line"><a id="l01755" name="l01755"></a><span class="lineno"> 1755</span> {</div>
<div class="line"><a id="l01756" name="l01756"></a><span class="lineno"> 1756</span> *length = 5;</div>
<div class="line"><a id="l01757" name="l01757"></a><span class="lineno"> 1757</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect tag size&quot;</span>);</div>
<div class="line"><a id="l01758" name="l01758"></a><span class="lineno"> 1758</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01759" name="l01759"></a><span class="lineno"> 1759</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01760" name="l01760"></a><span class="lineno"> 1760</span> }</div>
<div class="line"><a id="l01761" name="l01761"></a><span class="lineno"> 1761</span> </div>
<div class="line"><a id="l01762" name="l01762"></a><span class="lineno"> 1762</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aa943f49c5e77c98bc4cddc9d0c2ae284">sector_decrypted_title_key</a> == NULL)</div>
<div class="line"><a id="l01763" name="l01763"></a><span class="lineno"> 1763</span> {</div>
<div class="line"><a id="l01764" name="l01764"></a><span class="lineno"> 1764</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector tag not found&quot;</span>);</div>
<div class="line"><a id="l01765" name="l01765"></a><span class="lineno"> 1765</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_SECTOR_TAG_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l01766" name="l01766"></a><span class="lineno"> 1766</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#aa70d43d59e04b7147c14771c4821e670">AARUF_ERROR_SECTOR_TAG_NOT_PRESENT</a>;</div>
<div class="line"><a id="l01767" name="l01767"></a><span class="lineno"> 1767</span> }</div>
<div class="line"><a id="l01768" name="l01768"></a><span class="lineno"> 1768</span> </div>
<div class="line"><a id="l01769" name="l01769"></a><span class="lineno"> 1769</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aa943f49c5e77c98bc4cddc9d0c2ae284">sector_decrypted_title_key</a> + corrected_sector_address * 5, 5);</div>
<div class="line"><a id="l01770" name="l01770"></a><span class="lineno"> 1770</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l01771" name="l01771"></a><span class="lineno"> 1771</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01772" name="l01772"></a><span class="lineno"> 1772</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aaef910c709ff1ccc00e20d853ea02907a">AppleSonyTagAaru</a>:</div>
<div class="line"><a id="l01773" name="l01773"></a><span class="lineno"> 1773</span> <span class="keywordflow">if</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_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466ad45ebea105994c5fe86200f36d9e6ccd">BlockMedia</a>)</div>
<div class="line"><a id="l01774" name="l01774"></a><span class="lineno"> 1774</span> {</div>
<div class="line"><a id="l01775" name="l01775"></a><span class="lineno"> 1775</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid media type for tag&quot;</span>);</div>
<div class="line"><a id="l01776" name="l01776"></a><span class="lineno"> 1776</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01777" name="l01777"></a><span class="lineno"> 1777</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01778" name="l01778"></a><span class="lineno"> 1778</span> }</div>
<div class="line"><a id="l01779" name="l01779"></a><span class="lineno"> 1779</span> </div>
<div class="line"><a id="l01780" name="l01780"></a><span class="lineno"> 1780</span> <span class="keywordflow">if</span>(*length != 12 || buffer == NULL)</div>
<div class="line"><a id="l01781" name="l01781"></a><span class="lineno"> 1781</span> {</div>
<div class="line"><a id="l01782" name="l01782"></a><span class="lineno"> 1782</span> *length = 12;</div>
<div class="line"><a id="l01783" name="l01783"></a><span class="lineno"> 1783</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect tag size&quot;</span>);</div>
<div class="line"><a id="l01784" name="l01784"></a><span class="lineno"> 1784</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01785" name="l01785"></a><span class="lineno"> 1785</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01786" name="l01786"></a><span class="lineno"> 1786</span> }</div>
<div class="line"><a id="l01787" name="l01787"></a><span class="lineno"> 1787</span> </div>
<div class="line"><a id="l01788" name="l01788"></a><span class="lineno"> 1788</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> == NULL)</div>
<div class="line"><a id="l01789" name="l01789"></a><span class="lineno"> 1789</span> {</div>
<div class="line"><a id="l01790" name="l01790"></a><span class="lineno"> 1790</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector tag not found&quot;</span>);</div>
<div class="line"><a id="l01791" name="l01791"></a><span class="lineno"> 1791</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_SECTOR_TAG_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l01792" name="l01792"></a><span class="lineno"> 1792</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#aa70d43d59e04b7147c14771c4821e670">AARUF_ERROR_SECTOR_TAG_NOT_PRESENT</a>;</div>
<div class="line"><a id="l01793" name="l01793"></a><span class="lineno"> 1793</span> }</div>
<div class="line"><a id="l01794" name="l01794"></a><span class="lineno"> 1794</span> </div>
<div class="line"><a id="l01795" name="l01795"></a><span class="lineno"> 1795</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> + corrected_sector_address * 12, 12);</div>
<div class="line"><a id="l01796" name="l01796"></a><span class="lineno"> 1796</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l01797" name="l01797"></a><span class="lineno"> 1797</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01798" name="l01798"></a><span class="lineno"> 1798</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aaaa6bb40f3b26ce3df172cd3a1020eeb9">AppleProfileTagAaru</a>:</div>
<div class="line"><a id="l01799" name="l01799"></a><span class="lineno"> 1799</span> <span class="keywordflow">if</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_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466ad45ebea105994c5fe86200f36d9e6ccd">BlockMedia</a>)</div>
<div class="line"><a id="l01800" name="l01800"></a><span class="lineno"> 1800</span> {</div>
<div class="line"><a id="l01801" name="l01801"></a><span class="lineno"> 1801</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid media type for tag&quot;</span>);</div>
<div class="line"><a id="l01802" name="l01802"></a><span class="lineno"> 1802</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01803" name="l01803"></a><span class="lineno"> 1803</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01804" name="l01804"></a><span class="lineno"> 1804</span> }</div>
<div class="line"><a id="l01805" name="l01805"></a><span class="lineno"> 1805</span> </div>
<div class="line"><a id="l01806" name="l01806"></a><span class="lineno"> 1806</span> <span class="keywordflow">if</span>(*length != 20 || buffer == NULL)</div>
<div class="line"><a id="l01807" name="l01807"></a><span class="lineno"> 1807</span> {</div>
<div class="line"><a id="l01808" name="l01808"></a><span class="lineno"> 1808</span> *length = 20;</div>
<div class="line"><a id="l01809" name="l01809"></a><span class="lineno"> 1809</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect tag size&quot;</span>);</div>
<div class="line"><a id="l01810" name="l01810"></a><span class="lineno"> 1810</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01811" name="l01811"></a><span class="lineno"> 1811</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01812" name="l01812"></a><span class="lineno"> 1812</span> }</div>
<div class="line"><a id="l01813" name="l01813"></a><span class="lineno"> 1813</span> </div>
<div class="line"><a id="l01814" name="l01814"></a><span class="lineno"> 1814</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> == NULL)</div>
<div class="line"><a id="l01815" name="l01815"></a><span class="lineno"> 1815</span> {</div>
<div class="line"><a id="l01816" name="l01816"></a><span class="lineno"> 1816</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector tag not found&quot;</span>);</div>
<div class="line"><a id="l01817" name="l01817"></a><span class="lineno"> 1817</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_SECTOR_TAG_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l01818" name="l01818"></a><span class="lineno"> 1818</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#aa70d43d59e04b7147c14771c4821e670">AARUF_ERROR_SECTOR_TAG_NOT_PRESENT</a>;</div>
<div class="line"><a id="l01819" name="l01819"></a><span class="lineno"> 1819</span> }</div>
<div class="line"><a id="l01820" name="l01820"></a><span class="lineno"> 1820</span> </div>
<div class="line"><a id="l01821" name="l01821"></a><span class="lineno"> 1821</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> + corrected_sector_address * 20, 20);</div>
<div class="line"><a id="l01822" name="l01822"></a><span class="lineno"> 1822</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l01823" name="l01823"></a><span class="lineno"> 1823</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01824" name="l01824"></a><span class="lineno"> 1824</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa9937ec92715558a3f5ce46c8700190ba">PriamDataTowerTagAaru</a>:</div>
<div class="line"><a id="l01825" name="l01825"></a><span class="lineno"> 1825</span> <span class="keywordflow">if</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_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466ad45ebea105994c5fe86200f36d9e6ccd">BlockMedia</a>)</div>
<div class="line"><a id="l01826" name="l01826"></a><span class="lineno"> 1826</span> {</div>
<div class="line"><a id="l01827" name="l01827"></a><span class="lineno"> 1827</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid media type for tag&quot;</span>);</div>
<div class="line"><a id="l01828" name="l01828"></a><span class="lineno"> 1828</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01829" name="l01829"></a><span class="lineno"> 1829</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a>;</div>
<div class="line"><a id="l01830" name="l01830"></a><span class="lineno"> 1830</span> }</div>
<div class="line"><a id="l01831" name="l01831"></a><span class="lineno"> 1831</span> </div>
<div class="line"><a id="l01832" name="l01832"></a><span class="lineno"> 1832</span> <span class="keywordflow">if</span>(*length != 24 || buffer == NULL)</div>
<div class="line"><a id="l01833" name="l01833"></a><span class="lineno"> 1833</span> {</div>
<div class="line"><a id="l01834" name="l01834"></a><span class="lineno"> 1834</span> *length = 24;</div>
<div class="line"><a id="l01835" name="l01835"></a><span class="lineno"> 1835</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect tag size&quot;</span>);</div>
<div class="line"><a id="l01836" name="l01836"></a><span class="lineno"> 1836</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01837" name="l01837"></a><span class="lineno"> 1837</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
<div class="line"><a id="l01838" name="l01838"></a><span class="lineno"> 1838</span> }</div>
<div class="line"><a id="l01839" name="l01839"></a><span class="lineno"> 1839</span> </div>
<div class="line"><a id="l01840" name="l01840"></a><span class="lineno"> 1840</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> == NULL)</div>
<div class="line"><a id="l01841" name="l01841"></a><span class="lineno"> 1841</span> {</div>
<div class="line"><a id="l01842" name="l01842"></a><span class="lineno"> 1842</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector tag not found&quot;</span>);</div>
<div class="line"><a id="l01843" name="l01843"></a><span class="lineno"> 1843</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_ERROR_SECTOR_TAG_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l01844" name="l01844"></a><span class="lineno"> 1844</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#aa70d43d59e04b7147c14771c4821e670">AARUF_ERROR_SECTOR_TAG_NOT_PRESENT</a>;</div>
<div class="line"><a id="l01845" name="l01845"></a><span class="lineno"> 1845</span> }</div>
<div class="line"><a id="l01846" name="l01846"></a><span class="lineno"> 1846</span> </div>
<div class="line"><a id="l01847" name="l01847"></a><span class="lineno"> 1847</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> + corrected_sector_address * 24, 24);</div>
<div class="line"><a id="l01848" name="l01848"></a><span class="lineno"> 1848</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_read_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l01849" name="l01849"></a><span class="lineno"> 1849</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01850" name="l01850"></a><span class="lineno"> 1850</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l01851" name="l01851"></a><span class="lineno"> 1851</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Do not know how to read sector tag %d&quot;</span>, tag);</div>
<div class="line"><a id="l01852" name="l01852"></a><span class="lineno"> 1852</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ad3340e78aca685a8ea4739fdfd04292f">AARUF_ERROR_INVALID_TAG</a>;</div>
<div class="line"><a id="l01853" name="l01853"></a><span class="lineno"> 1853</span> }</div>
<div class="line"><a id="l01854" name="l01854"></a><span class="lineno"> 1854</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="aconsts_8h_html_a0b24c62ef1b78b72b9f4a42918f39e13"><div class="ttname"><a href="consts_8h.html#a0b24c62ef1b78b72b9f4a42918f39e13">CD_DFIX_MASK</a></div><div class="ttdeci">#define CD_DFIX_MASK</div><div class="ttdoc">Mask for extracting positional index (lower 24 bits) in Compact Disc suffix/prefix deduplicated block...</div><div class="ttdef"><b>Definition</b> <a href="consts_8h_source.html#l00102">consts.h:102</a></div></div>
<div class="ttc" id="aconsts_8h_html_a25fd08252b97a0230d3efc899bddd240"><div class="ttname"><a href="consts_8h.html#a25fd08252b97a0230d3efc899bddd240">LZMA_PROPERTIES_LENGTH</a></div><div class="ttdeci">#define LZMA_PROPERTIES_LENGTH</div><div class="ttdoc">Size in bytes of the fixed LZMA properties header (lc/lp/pb + dictionary size).</div><div class="ttdef"><b>Definition</b> <a href="consts_8h_source.html#l00082">consts.h:82</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_aa64757ba31a320f675fca1062111180f"><div class="ttname"><a href="consts_8h.html#aa64757ba31a320f675fca1062111180f">CD_XFIX_MASK</a></div><div class="ttdeci">#define CD_XFIX_MASK</div><div class="ttdoc">Mask for extracting correction / fix flags in Compact Disc suffix/prefix DDT entries.</div><div class="ttdef"><b>Definition</b> <a href="consts_8h_source.html#l00100">consts.h:100</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_a12f3cbc43c2f57a11fbba32a71ba2704"><div class="ttname"><a href="decls_8h.html#a12f3cbc43c2f57a11fbba32a71ba2704">aaruf_lzma_decode_buffer</a></div><div class="ttdeci">int32_t aaruf_lzma_decode_buffer(uint8_t *dst_buffer, size_t *dst_size, const uint8_t *src_buffer, size_t *src_size, const uint8_t *props, size_t props_size)</div><div class="ttdoc">Decodes an LZMA-compressed buffer.</div><div class="ttdef"><b>Definition</b> <a href="lzma_8c_source.html#l00039">lzma.c:39</a></div></div>
<div class="ttc" id="adecls_8h_html_a73c3788f7376196abd596d6d846466b1"><div class="ttname"><a href="decls_8h.html#a73c3788f7376196abd596d6d846466b1">aaruf_ecc_cd_reconstruct_prefix</a></div><div class="ttdeci">void aaruf_ecc_cd_reconstruct_prefix(uint8_t *sector, uint8_t type, int64_t lba)</div><div class="ttdoc">Reconstructs the prefix (sync, address, mode) of a CD sector.</div><div class="ttdef"><b>Definition</b> <a href="ecc__cd_8c_source.html#l00392">ecc_cd.c:392</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_a9c9e2440119b8d7e67cb2c40125bf295"><div class="ttname"><a href="decls_8h.html#a9c9e2440119b8d7e67cb2c40125bf295">aaruf_ecc_cd_reconstruct</a></div><div class="ttdeci">void aaruf_ecc_cd_reconstruct(void *context, uint8_t *sector, uint8_t type)</div><div class="ttdoc">Reconstructs the EDC and ECC fields of a CD sector.</div><div class="ttdef"><b>Definition</b> <a href="ecc__cd_8c_source.html#l00459">ecc_cd.c:459</a></div></div>
<div class="ttc" id="adecls_8h_html_af0ff6ad1495d50a8fa0ce0005be69471"><div class="ttname"><a href="decls_8h.html#af0ff6ad1495d50a8fa0ce0005be69471">aaruf_flac_decode_redbook_buffer</a></div><div class="ttdeci">size_t aaruf_flac_decode_redbook_buffer(uint8_t *dst_buffer, size_t dst_size, const uint8_t *src_buffer, size_t src_size)</div><div class="ttdoc">Decodes a FLAC-compressed Red Book audio buffer.</div><div class="ttdef"><b>Definition</b> <a href="flac_8c_source.html#l00048">flac.c:48</a></div></div>
<div class="ttc" id="aenums_8h_html_a74e216af87b18a5fbf0204a52dd1bba0a032ffcff283d253414768f0fa035af4d"><div class="ttname"><a href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a032ffcff283d253414768f0fa035af4d">SectorStatusNotDumped</a></div><div class="ttdeci">@ SectorStatusNotDumped</div><div class="ttdoc">Sector(s) not yet acquired during image dumping.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00230">enums.h:230</a></div></div>
<div class="ttc" id="aenums_8h_html_a74e216af87b18a5fbf0204a52dd1bba0a6a9daca7b82c2929eaf1b081ba7c7437"><div class="ttname"><a href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a6a9daca7b82c2929eaf1b081ba7c7437">SectorStatusMode2Form2NoCrc</a></div><div class="ttdeci">@ SectorStatusMode2Form2NoCrc</div><div class="ttdoc">Suffix matches MODE 2 Form 2 but CRC empty/missing.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00236">enums.h:236</a></div></div>
<div class="ttc" id="aenums_8h_html_a74e216af87b18a5fbf0204a52dd1bba0a98ca0ee5ee0653575fc98b501a3387cf"><div class="ttname"><a href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a98ca0ee5ee0653575fc98b501a3387cf">SectorStatusMode1Correct</a></div><div class="ttdeci">@ SectorStatusMode1Correct</div><div class="ttdoc">Valid MODE 1 data with regenerable suffix/prefix.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00233">enums.h:233</a></div></div>
<div class="ttc" id="aenums_8h_html_a74e216af87b18a5fbf0204a52dd1bba0aa651286b685968cf12dbf8949c7c209d"><div class="ttname"><a href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0aa651286b685968cf12dbf8949c7c209d">SectorStatusMode2Form2Ok</a></div><div class="ttdeci">@ SectorStatusMode2Form2Ok</div><div class="ttdoc">Suffix matches MODE 2 Form 2 with valid CRC.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00235">enums.h:235</a></div></div>
<div class="ttc" id="aenums_8h_html_a74e216af87b18a5fbf0204a52dd1bba0af8e8f72cb68b416548d729560b23ff7d"><div class="ttname"><a href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0af8e8f72cb68b416548d729560b23ff7d">SectorStatusMode2Form1Ok</a></div><div class="ttdeci">@ SectorStatusMode2Form1Ok</div><div class="ttdoc">Suffix verified/regenerable for MODE 2 Form 1.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00234">enums.h:234</a></div></div>
<div class="ttc" id="aenums_8h_html_ab72dc399e3946b3c40a5ad8c8e3254b7a1b85919d51f4333b17766b19a7c7372d"><div class="ttname"><a href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7a1b85919d51f4333b17766b19a7c7372d">Correct</a></div><div class="ttdeci">@ Correct</div><div class="ttdoc">Sector(s) contain valid MODE 1 data with regenerable suffix/prefix.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00183">enums.h:183</a></div></div>
<div class="ttc" id="aenums_8h_html_ab72dc399e3946b3c40a5ad8c8e3254b7a347d3d74e3c5f56a3e41eb82e59b952f"><div class="ttname"><a href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7a347d3d74e3c5f56a3e41eb82e59b952f">Mode2Form2Ok</a></div><div class="ttdeci">@ Mode2Form2Ok</div><div class="ttdoc">Sector suffix valid for MODE 2 Form 2 with correct CRC.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00185">enums.h:185</a></div></div>
<div class="ttc" id="aenums_8h_html_ab72dc399e3946b3c40a5ad8c8e3254b7aa0182bd12e0fed2c6f2ea368cc9a94a8"><div class="ttname"><a href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7aa0182bd12e0fed2c6f2ea368cc9a94a8">Mode2Form1Ok</a></div><div class="ttdeci">@ Mode2Form1Ok</div><div class="ttdoc">Sector suffix valid for MODE 2 Form 1; regenerable.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00184">enums.h:184</a></div></div>
<div class="ttc" id="aenums_8h_html_ab72dc399e3946b3c40a5ad8c8e3254b7ab3fac5cd103786d64f7ee67bcb9ac458"><div class="ttname"><a href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7ab3fac5cd103786d64f7ee67bcb9ac458">NotDumped</a></div><div class="ttdeci">@ NotDumped</div><div class="ttdoc">Sector(s) have not yet been dumped.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00182">enums.h:182</a></div></div>
<div class="ttc" id="aenums_8h_html_ab72dc399e3946b3c40a5ad8c8e3254b7abe4c0f68addb6b935a63401cafcb8d28"><div class="ttname"><a href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7abe4c0f68addb6b935a63401cafcb8d28">Mode2Form2NoCrc</a></div><div class="ttdeci">@ Mode2Form2NoCrc</div><div class="ttdoc">Sector suffix valid for MODE 2 Form 2 but CRC absent/empty.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00186">enums.h:186</a></div></div>
<div class="ttc" id="aenums_8h_html_abaa37b51ab0a4cc3d5d1a0b4820c8466aaf46f69508c3a90e5588c71f410a7f12"><div class="ttname"><a href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466aaf46f69508c3a90e5588c71f410a7f12">OpticalDisc</a></div><div class="ttdeci">@ OpticalDisc</div><div class="ttdoc">Purely optical discs.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00218">enums.h:218</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="aenums_8h_html_ad80740dd555f7d3688d2c4d9f44d3b04aa2aea1fa4875ff43b28267ad736cec62"><div class="ttname"><a href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04aa2aea1fa4875ff43b28267ad736cec62">CdMode1</a></div><div class="ttdeci">@ CdMode1</div><div class="ttdoc">Compact Disc Mode 1 data track.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00197">enums.h:197</a></div></div>
<div class="ttc" id="aenums_8h_html_ad80740dd555f7d3688d2c4d9f44d3b04aa9703801ac7bd790f6f980532e4224c0"><div class="ttname"><a href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04aa9703801ac7bd790f6f980532e4224c0">Data</a></div><div class="ttdeci">@ Data</div><div class="ttdoc">Generic data track (not further specified).</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00196">enums.h:196</a></div></div>
<div class="ttc" id="aenums_8h_html_ad80740dd555f7d3688d2c4d9f44d3b04ab68a4bd72f7e85f28dcb9c5a5441743a"><div class="ttname"><a href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04ab68a4bd72f7e85f28dcb9c5a5441743a">CdMode2Form2</a></div><div class="ttdeci">@ CdMode2Form2</div><div class="ttdoc">Compact Disc Mode 2 Form 2 data track.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00200">enums.h:200</a></div></div>
<div class="ttc" id="aenums_8h_html_ad80740dd555f7d3688d2c4d9f44d3b04ad3c111fe8a0e835609a6187d6e9d2e57"><div class="ttname"><a href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04ad3c111fe8a0e835609a6187d6e9d2e57">Audio</a></div><div class="ttdeci">@ Audio</div><div class="ttdoc">Audio track.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00195">enums.h:195</a></div></div>
<div class="ttc" id="aenums_8h_html_ad80740dd555f7d3688d2c4d9f44d3b04af90c2d371aa1e99d911ec2173587186c"><div class="ttname"><a href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04af90c2d371aa1e99d911ec2173587186c">CdMode2Form1</a></div><div class="ttdeci">@ CdMode2Form1</div><div class="ttdoc">Compact Disc Mode 2 Form 1 data track.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00199">enums.h:199</a></div></div>
<div class="ttc" id="aenums_8h_html_ad80740dd555f7d3688d2c4d9f44d3b04aff99910681f4abb6ac45b08562b2797e"><div class="ttname"><a href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04aff99910681f4abb6ac45b08562b2797e">CdMode2Formless</a></div><div class="ttdeci">@ CdMode2Formless</div><div class="ttdoc">Compact Disc Mode 2 (formless) data track.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00198">enums.h:198</a></div></div>
<div class="ttc" id="aenums_8h_html_affec749ed88365143745313ae9168263a002db7938c70152bf9af1797cb87c32f"><div class="ttname"><a href="enums_8h.html#affec749ed88365143745313ae9168263a002db7938c70152bf9af1797cb87c32f">Lzma</a></div><div class="ttdeci">@ Lzma</div><div class="ttdoc">LZMA compression.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00034">enums.h:34</a></div></div>
<div class="ttc" id="aenums_8h_html_affec749ed88365143745313ae9168263ac9d3e887722f2bc482bcca9d41c512af"><div class="ttname"><a href="enums_8h.html#affec749ed88365143745313ae9168263ac9d3e887722f2bc482bcca9d41c512af">None</a></div><div class="ttdeci">@ None</div><div class="ttdoc">Not compressed.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00033">enums.h:33</a></div></div>
<div class="ttc" id="aenums_8h_html_affec749ed88365143745313ae9168263adce52e91e4d88a577ecf67cbe7beac31"><div class="ttname"><a href="enums_8h.html#affec749ed88365143745313ae9168263adce52e91e4d88a577ecf67cbe7beac31">Flac</a></div><div class="ttdeci">@ Flac</div><div class="ttdoc">FLAC compression.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00035">enums.h:35</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_a26707b86af4dd4f3bae7d57abd4345b0"><div class="ttname"><a href="errors_8h.html#a26707b86af4dd4f3bae7d57abd4345b0">AARUF_ERROR_INCORRECT_MEDIA_TYPE</a></div><div class="ttdeci">#define AARUF_ERROR_INCORRECT_MEDIA_TYPE</div><div class="ttdoc">Operation incompatible with image media type.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00051">errors.h:51</a></div></div>
<div class="ttc" id="aerrors_8h_html_a32b645da87003df886a5742d23f8ca19"><div class="ttname"><a href="errors_8h.html#a32b645da87003df886a5742d23f8ca19">AARUF_ERROR_TRACK_NOT_FOUND</a></div><div class="ttdeci">#define AARUF_ERROR_TRACK_NOT_FOUND</div><div class="ttdoc">Referenced track number not present.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00052">errors.h:52</a></div></div>
<div class="ttc" id="aerrors_8h_html_a3459a04771fe04f8f77bfa90563a4375"><div class="ttname"><a href="errors_8h.html#a3459a04771fe04f8f77bfa90563a4375">AARUF_ERROR_CANNOT_READ_HEADER</a></div><div class="ttdeci">#define AARUF_ERROR_CANNOT_READ_HEADER</div><div class="ttdoc">Failed to read container header.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00045">errors.h:45</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_a3f6069602fee5f1264befab13708c0ef"><div class="ttname"><a href="errors_8h.html#a3f6069602fee5f1264befab13708c0ef">AARUF_ERROR_SECTOR_OUT_OF_BOUNDS</a></div><div class="ttdeci">#define AARUF_ERROR_SECTOR_OUT_OF_BOUNDS</div><div class="ttdoc">Requested logical sector outside media bounds.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00044">errors.h:44</a></div></div>
<div class="ttc" id="aerrors_8h_html_a604a2b6b7bf491f7e62a817b6c887f32"><div class="ttname"><a href="errors_8h.html#a604a2b6b7bf491f7e62a817b6c887f32">AARUF_ERROR_INVALID_TRACK_FORMAT</a></div><div class="ttdeci">#define AARUF_ERROR_INVALID_TRACK_FORMAT</div><div class="ttdoc">Track metadata internally inconsistent or malformed.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00054">errors.h:54</a></div></div>
<div class="ttc" id="aerrors_8h_html_a67753dacbd0ffdd397e563a8a5ecd271"><div class="ttname"><a href="errors_8h.html#a67753dacbd0ffdd397e563a8a5ecd271">AARUF_ERROR_CANNOT_READ_BLOCK</a></div><div class="ttdeci">#define AARUF_ERROR_CANNOT_READ_BLOCK</div><div class="ttdoc">Generic block read failure (seek/read error).</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00046">errors.h:46</a></div></div>
<div class="ttc" id="aerrors_8h_html_a8fc3ecb14777e72bebad62084b6caf16"><div class="ttname"><a href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a></div><div class="ttdeci">#define AARUF_ERROR_INCORRECT_DATA_SIZE</div><div class="ttdoc">Data size does not match expected size.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00065">errors.h:65</a></div></div>
<div class="ttc" id="aerrors_8h_html_aa70d43d59e04b7147c14771c4821e670"><div class="ttname"><a href="errors_8h.html#aa70d43d59e04b7147c14771c4821e670">AARUF_ERROR_SECTOR_TAG_NOT_PRESENT</a></div><div class="ttdeci">#define AARUF_ERROR_SECTOR_TAG_NOT_PRESENT</div><div class="ttdoc">Requested sector tag (e.g. subchannel/prefix) not stored.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00055">errors.h:55</a></div></div>
<div class="ttc" id="aerrors_8h_html_ab629288e7ddaf4dd8419621e6963e2cf"><div class="ttname"><a href="errors_8h.html#ab629288e7ddaf4dd8419621e6963e2cf">AARUF_STATUS_SECTOR_NOT_DUMPED</a></div><div class="ttdeci">#define AARUF_STATUS_SECTOR_NOT_DUMPED</div><div class="ttdoc">Sector not captured (gap / missing / intentionally skipped).</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00076">errors.h:76</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_ac9f4e38e8d5a1f940c9cd0c7f6788c37"><div class="ttname"><a href="errors_8h.html#ac9f4e38e8d5a1f940c9cd0c7f6788c37">AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK</a></div><div class="ttdeci">#define AARUF_ERROR_CANNOT_DECOMPRESS_BLOCK</div><div class="ttdoc">Decompression routine failed or size mismatch.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00056">errors.h:56</a></div></div>
<div class="ttc" id="aerrors_8h_html_ad3340e78aca685a8ea4739fdfd04292f"><div class="ttname"><a href="errors_8h.html#ad3340e78aca685a8ea4739fdfd04292f">AARUF_ERROR_INVALID_TAG</a></div><div class="ttdeci">#define AARUF_ERROR_INVALID_TAG</div><div class="ttdoc">Invalid or unsupported media or sector tag format.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00066">errors.h:66</a></div></div>
<div class="ttc" id="aerrors_8h_html_ad87e52bef1f48eebb49458a5f64f7016"><div class="ttname"><a href="errors_8h.html#ad87e52bef1f48eebb49458a5f64f7016">AARUF_ERROR_MEDIA_TAG_NOT_PRESENT</a></div><div class="ttdeci">#define AARUF_ERROR_MEDIA_TAG_NOT_PRESENT</div><div class="ttdoc">Requested media tag absent.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00050">errors.h:50</a></div></div>
<div class="ttc" id="aerrors_8h_html_ae7eea5936a22100db46aac3e4312cdae"><div class="ttname"><a href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a></div><div class="ttdeci">#define AARUF_ERROR_BUFFER_TOO_SMALL</div><div class="ttdoc">Caller-supplied buffer insufficient for data.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00049">errors.h:49</a></div></div>
<div class="ttc" id="aerrors_8h_html_aec106e533b79916d14e4d48a3d95e8c8"><div class="ttname"><a href="errors_8h.html#aec106e533b79916d14e4d48a3d95e8c8">AARUF_ERROR_UNSUPPORTED_COMPRESSION</a></div><div class="ttdeci">#define AARUF_ERROR_UNSUPPORTED_COMPRESSION</div><div class="ttdoc">Block marked with unsupported compression algorithm.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00047">errors.h:47</a></div></div>
<div class="ttc" id="aerrors_8h_html_afac13facfc59d6710c31daee0302e39d"><div class="ttname"><a href="errors_8h.html#afac13facfc59d6710c31daee0302e39d">AARUF_ERROR_REACHED_UNREACHABLE_CODE</a></div><div class="ttdeci">#define AARUF_ERROR_REACHED_UNREACHABLE_CODE</div><div class="ttdoc">Internal logic assertion hit unexpected path.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00053">errors.h:53</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aa0a8ba83da933d4ad284631784a991f19"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa0a8ba83da933d4ad284631784a991f19">AppleProfile</a></div><div class="ttdeci">@ AppleProfile</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00698">aaru.h:698</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aa3d003ea60d3ecb7018a671e1302938a0"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa3d003ea60d3ecb7018a671e1302938a0">AppleSonySS</a></div><div class="ttdeci">@ AppleSonySS</div><div class="ttdoc">3.5&quot;, SS, DD, 80 tracks, 8 to 12 spt, 512 bytes/sector, GCR</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00247">aaru.h:247</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aa44d41093d0d9a56fa5e9fa317c4d795a"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa44d41093d0d9a56fa5e9fa317c4d795a">DVDPRWDL</a></div><div class="ttdeci">@ DVDPRWDL</div><div class="ttdoc">DVD+RW DL.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00141">aaru.h:141</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aa4cfa242859c1a136a740718d0440de9a"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa4cfa242859c1a136a740718d0440de9a">DVDRW</a></div><div class="ttdeci">@ DVDRW</div><div class="ttdoc">DVD-RW.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00138">aaru.h:138</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aa502cfc3a14e97fdb99a2856c2f230e19"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa502cfc3a14e97fdb99a2856c2f230e19">DVDRWDL</a></div><div class="ttdeci">@ DVDRWDL</div><div class="ttdoc">DVD-RW DL.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00145">aaru.h:145</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aa6903c0dd79d234b9379daaaa97e2c0fe"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa6903c0dd79d234b9379daaaa97e2c0fe">SACD</a></div><div class="ttdeci">@ SACD</div><div class="ttdoc">Super Audio CD (Scarlet Book)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00121">aaru.h:121</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aa6a04ebe8862d4f729e9dad48bfe92b99"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa6a04ebe8862d4f729e9dad48bfe92b99">DVDPRDL</a></div><div class="ttdeci">@ DVDPRDL</div><div class="ttdoc">DVD+R DL.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00143">aaru.h:143</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aa711ac65a3b3a2d5392d2efee1616bcd7"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa711ac65a3b3a2d5392d2efee1616bcd7">DVDR</a></div><div class="ttdeci">@ DVDR</div><div class="ttdoc">DVD-R.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00137">aaru.h:137</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aa727f071d5dd887fd6645e112cfcab197"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa727f071d5dd887fd6645e112cfcab197">PS3DVD</a></div><div class="ttdeci">@ PS3DVD</div><div class="ttdoc">Sony PlayStation 3 game DVD.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00206">aaru.h:206</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aa8dccd9aa3702e0112d3c4d6f3388820e"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa8dccd9aa3702e0112d3c4d6f3388820e">PS2DVD</a></div><div class="ttdeci">@ PS2DVD</div><div class="ttdoc">Sony PlayStation 2 game DVD.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00205">aaru.h:205</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aab933939a09397f9311004f3dd137226d"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aab933939a09397f9311004f3dd137226d">PriamDataTower</a></div><div class="ttdeci">@ PriamDataTower</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00701">aaru.h:701</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aac08b59f9e8ecf5e380092edddb0340ec"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aac08b59f9e8ecf5e380092edddb0340ec">AppleFileWare</a></div><div class="ttdeci">@ AppleFileWare</div><div class="ttdoc">5.25&quot;, DS, ?D, ?? tracks, ?? spt, 512 bytes/sector, GCR, opposite side heads, aka Twiggy</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00249">aaru.h:249</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aac3c8ca46e314f36e5398a97e85b7a3d1"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aac3c8ca46e314f36e5398a97e85b7a3d1">DVDPR</a></div><div class="ttdeci">@ DVDPR</div><div class="ttdoc">DVD+R.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00139">aaru.h:139</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aacd42dba7780092d737e7d51a3819cb4b"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aacd42dba7780092d737e7d51a3819cb4b">AppleWidget</a></div><div class="ttdeci">@ AppleWidget</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00699">aaru.h:699</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aad5de19f38ea842de6d5edc2baa586160"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aad5de19f38ea842de6d5edc2baa586160">DVDPRW</a></div><div class="ttdeci">@ DVDPRW</div><div class="ttdoc">DVD+RW.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00140">aaru.h:140</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aad730786bd592903cc42ad7f5a5847171"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aad730786bd592903cc42ad7f5a5847171">Nuon</a></div><div class="ttdeci">@ Nuon</div><div class="ttdoc">Nuon (DVD based videogame console)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00238">aaru.h:238</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aadf89869853533586979db286065899af"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aadf89869853533586979db286065899af">DVDDownload</a></div><div class="ttdeci">@ DVDDownload</div><div class="ttdoc">DVD-Download.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00146">aaru.h:146</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aadff93972faa98cafc01f4fbb464680a2"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aadff93972faa98cafc01f4fbb464680a2">DVDRDL</a></div><div class="ttdeci">@ DVDRDL</div><div class="ttdoc">DVD-R DL.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00142">aaru.h:142</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aae809315e2cd79c3fd74d1604c38f3ae6"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aae809315e2cd79c3fd74d1604c38f3ae6">AppleSonyDS</a></div><div class="ttdeci">@ AppleSonyDS</div><div class="ttdoc">3.5&quot;, DS, DD, 80 tracks, 8 to 12 spt, 512 bytes/sector, GCR</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00248">aaru.h:248</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aaf254215c04f84a87eef3702782ba7662"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aaf254215c04f84a87eef3702782ba7662">DVDROM</a></div><div class="ttdeci">@ DVDROM</div><div class="ttdoc">DVD-ROM (applies to DVD Video and DVD Audio)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00136">aaru.h:136</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aaff04a947594e116dd0adf854660ff00a"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aaff04a947594e116dd0adf854660ff00a">DVDRAM</a></div><div class="ttdeci">@ DVDRAM</div><div class="ttdoc">DVD-RAM.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00144">aaru.h:144</a></div></div>
<div class="ttc" id="agroup__SectorTags_html_ggaf863e81d172ce7a216d8687a8a23293aa16bbf88cdbeb1c4bfe44244de7d16c3f"><div class="ttname"><a href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa16bbf88cdbeb1c4bfe44244de7d16c3f">DvdSectorIedAaru</a></div><div class="ttdeci">@ DvdSectorIedAaru</div><div class="ttdoc">DVD sector ID error detection, 2 bytes.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00914">aaru.h:914</a></div></div>
<div class="ttc" id="agroup__SectorTags_html_ggaf863e81d172ce7a216d8687a8a23293aa4922f334e9f6fb030152d093be4bee7c"><div class="ttname"><a href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa4922f334e9f6fb030152d093be4bee7c">CdTrackFlags</a></div><div class="ttdeci">@ CdTrackFlags</div><div class="ttdoc">Track flags (audio/data, copy permitted, pre-emphasis)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00907">aaru.h:907</a></div></div>
<div class="ttc" id="agroup__SectorTags_html_ggaf863e81d172ce7a216d8687a8a23293aa6d377a28e58b9da5452ab66e90ea4457"><div class="ttname"><a href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa6d377a28e58b9da5452ab66e90ea4457">DvdSectorEdcAaru</a></div><div class="ttdeci">@ DvdSectorEdcAaru</div><div class="ttdoc">DVD sector EDC, 4 bytes.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00915">aaru.h:915</a></div></div>
<div class="ttc" id="agroup__SectorTags_html_ggaf863e81d172ce7a216d8687a8a23293aa7165008ad58fcf7904dc3f6626064828"><div class="ttname"><a href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa7165008ad58fcf7904dc3f6626064828">DvdCmi</a></div><div class="ttdeci">@ DvdCmi</div><div class="ttdoc">DVD Copyright Management Information (CSS)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00908">aaru.h:908</a></div></div>
<div class="ttc" id="agroup__SectorTags_html_ggaf863e81d172ce7a216d8687a8a23293aa73586ffdff3f35b8a05b7f8fd37fcee2"><div class="ttname"><a href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa73586ffdff3f35b8a05b7f8fd37fcee2">CdSectorSubchannelAaru</a></div><div class="ttdeci">@ CdSectorSubchannelAaru</div><div class="ttdoc">96 raw subchannel bytes (P-W)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00904">aaru.h:904</a></div></div>
<div class="ttc" id="agroup__SectorTags_html_ggaf863e81d172ce7a216d8687a8a23293aa82265a5d640ce9474f8b357c54cc0440"><div class="ttname"><a href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa82265a5d640ce9474f8b357c54cc0440">DvdSectorNumber</a></div><div class="ttdeci">@ DvdSectorNumber</div><div class="ttdoc">DVD sector number, 3 bytes.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00913">aaru.h:913</a></div></div>
<div class="ttc" id="agroup__SectorTags_html_ggaf863e81d172ce7a216d8687a8a23293aa8e35806d5790cb5568b7535073d40179"><div class="ttname"><a href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa8e35806d5790cb5568b7535073d40179">CdTrackIsrc</a></div><div class="ttdeci">@ CdTrackIsrc</div><div class="ttdoc">Track ISRC (12 ASCII chars, no terminator)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00905">aaru.h:905</a></div></div>
<div class="ttc" id="agroup__SectorTags_html_ggaf863e81d172ce7a216d8687a8a23293aa9937ec92715558a3f5ce46c8700190ba"><div class="ttname"><a href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa9937ec92715558a3f5ce46c8700190ba">PriamDataTowerTagAaru</a></div><div class="ttdeci">@ PriamDataTowerTagAaru</div><div class="ttdoc">Priam DataTower sector tags, 24 bytes.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00917">aaru.h:917</a></div></div>
<div class="ttc" id="agroup__SectorTags_html_ggaf863e81d172ce7a216d8687a8a23293aaaa6bb40f3b26ce3df172cd3a1020eeb9"><div class="ttname"><a href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aaaa6bb40f3b26ce3df172cd3a1020eeb9">AppleProfileTagAaru</a></div><div class="ttdeci">@ AppleProfileTagAaru</div><div class="ttdoc">Apple&#39;s Profile sector tags, 20 bytes.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00916">aaru.h:916</a></div></div>
<div class="ttc" id="agroup__SectorTags_html_ggaf863e81d172ce7a216d8687a8a23293aaacdc97f5778a26551dae1e003fc5f769"><div class="ttname"><a href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aaacdc97f5778a26551dae1e003fc5f769">DvdSectorInformation</a></div><div class="ttdeci">@ DvdSectorInformation</div><div class="ttdoc">DVD sector information, 1 bytes.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00912">aaru.h:912</a></div></div>
<div class="ttc" id="agroup__SectorTags_html_ggaf863e81d172ce7a216d8687a8a23293aae54bf2b3574266925062218c892c42b2"><div class="ttname"><a href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aae54bf2b3574266925062218c892c42b2">DvdTitleKeyDecrypted</a></div><div class="ttdeci">@ DvdTitleKeyDecrypted</div><div class="ttdoc">Decrypted DVD sector title key, 5 bytes.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00911">aaru.h:911</a></div></div>
<div class="ttc" id="agroup__SectorTags_html_ggaf863e81d172ce7a216d8687a8a23293aaef910c709ff1ccc00e20d853ea02907a"><div class="ttname"><a href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aaef910c709ff1ccc00e20d853ea02907a">AppleSonyTagAaru</a></div><div class="ttdeci">@ AppleSonyTagAaru</div><div class="ttdoc">Apple&#39;s Sony sector tags, 12 bytes (address prolog + checksum)</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00896">aaru.h:896</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_a26e5fd58cdfd39948f1b724fafffcdc2"><div class="ttname"><a href="internal_8h.html#a26e5fd58cdfd39948f1b724fafffcdc2">decode_ddt_entry_v1</a></div><div class="ttdeci">int32_t decode_ddt_entry_v1(aaruformat_context *ctx, uint64_t sector_address, uint64_t *offset, uint64_t *block_offset, uint8_t *sector_status)</div><div class="ttdoc">Decodes a DDT v1 entry for a given sector address.</div><div class="ttdef"><b>Definition</b> <a href="ddt__v1_8c_source.html#l00405">ddt_v1.c:405</a></div></div>
<div class="ttc" id="ainternal_8h_html_a805d607b45bb8ad8a3e6b0bcfabe3265"><div class="ttname"><a href="internal_8h.html#a805d607b45bb8ad8a3e6b0bcfabe3265">decode_ddt_entry_v2</a></div><div class="ttdeci">int32_t decode_ddt_entry_v2(aaruformat_context *ctx, uint64_t sector_address, bool negative, uint64_t *offset, uint64_t *block_offset, uint8_t *sector_status)</div><div class="ttdoc">Decodes a DDT v2 entry for a given sector address.</div><div class="ttdef"><b>Definition</b> <a href="ddt__v2_8c_source.html#l00507">ddt_v2.c:507</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="alru_8h_html_a0735969939ca80db3fe439ed92b787bb"><div class="ttname"><a href="lru_8h.html#a0735969939ca80db3fe439ed92b787bb">add_to_cache_uint64</a></div><div class="ttdeci">void add_to_cache_uint64(struct CacheHeader *cache, uint64_t key, void *value)</div><div class="ttdoc">Adds a value to the cache with a uint64_t key, using string conversion.</div><div class="ttdef"><b>Definition</b> <a href="lru_8c_source.html#l00102">lru.c:102</a></div></div>
<div class="ttc" id="alru_8h_html_a8cb7ac8e057627210732ee61d2966e35"><div class="ttname"><a href="lru_8h.html#a8cb7ac8e057627210732ee61d2966e35">find_in_cache_uint64</a></div><div class="ttdeci">void * find_in_cache_uint64(struct CacheHeader *cache, uint64_t key)</div><div class="ttdoc">Finds a value in the cache by uint64_t key, using string conversion.</div><div class="ttdef"><b>Definition</b> <a href="lru_8c_source.html#l00088">lru.c:88</a></div></div>
<div class="ttc" id="aread_8c_html_a6feebf672750fc129fe2802ab738d563"><div class="ttname"><a href="read_8c.html#a6feebf672750fc129fe2802ab738d563">aaruf_read_sector</a></div><div class="ttdeci">int32_t aaruf_read_sector(void *context, const uint64_t sector_address, bool negative, uint8_t *data, uint32_t *length, uint8_t *sector_status)</div><div class="ttdoc">Reads a sector from the AaruFormat image.</div><div class="ttdef"><b>Definition</b> <a href="#l00253">read.c:253</a></div></div>
<div class="ttc" id="aread_8c_html_a7c8786fe6f2a1538bcb2362cfe21563c"><div class="ttname"><a href="read_8c.html#a7c8786fe6f2a1538bcb2362cfe21563c">aaruf_read_sector_long</a></div><div class="ttdeci">int32_t aaruf_read_sector_long(void *context, const uint64_t sector_address, bool negative, uint8_t *data, uint32_t *length, uint8_t *sector_status)</div><div class="ttdoc">Reads a complete sector with all metadata from the AaruFormat image.</div><div class="ttdef"><b>Definition</b> <a href="#l00826">read.c:826</a></div></div>
<div class="ttc" id="aread_8c_html_a84e3bc8f611af8e9fc77dac24788d53b"><div class="ttname"><a href="read_8c.html#a84e3bc8f611af8e9fc77dac24788d53b">aaruf_read_track_sector</a></div><div class="ttdeci">int32_t aaruf_read_track_sector(void *context, uint8_t *data, const uint64_t sector_address, uint32_t *length, const uint8_t track, uint8_t *sector_status)</div><div class="ttdoc">Reads a sector from a specific track in the AaruFormat image.</div><div class="ttdef"><b>Definition</b> <a href="#l00670">read.c:670</a></div></div>
<div class="ttc" id="aread_8c_html_aa8588f3b6c705666833c84e6cd4cfe62"><div class="ttname"><a href="read_8c.html#aa8588f3b6c705666833c84e6cd4cfe62">aaruf_read_media_tag</a></div><div class="ttdeci">int32_t aaruf_read_media_tag(void *context, uint8_t *data, const int32_t tag, uint32_t *length)</div><div class="ttdoc">Reads a media tag from the AaruFormat image.</div><div class="ttdef"><b>Definition</b> <a href="#l00085">read.c:85</a></div></div>
<div class="ttc" id="aread_8c_html_ac6c55f931eb4c113d19ff7c194fce65a"><div class="ttname"><a href="read_8c.html#ac6c55f931eb4c113d19ff7c194fce65a">aaruf_read_sector_tag</a></div><div class="ttdeci">int32_t aaruf_read_sector_tag(const void *context, const uint64_t sector_address, const bool negative, uint8_t *buffer, uint32_t *length, const int32_t tag)</div><div class="ttdoc">Reads a specific sector tag from the AaruFormat image.</div><div class="ttdef"><b>Definition</b> <a href="#l01474">read.c:1474</a></div></div>
<div class="ttc" id="astructBlockHeader_html"><div class="ttname"><a href="structBlockHeader.html">BlockHeader</a></div><div class="ttdoc">Header preceding the compressed data payload of a data block (BlockType::DataBlock).</div><div class="ttdef"><b>Definition</b> <a href="data_8h_source.html#l00070">data.h:71</a></div></div>
<div class="ttc" id="astructBlockHeader_html_a0ee87beb4362823260f70a87ac17379f"><div class="ttname"><a href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">BlockHeader::cmpLength</a></div><div class="ttdeci">uint32_t cmpLength</div><div class="ttdoc">Size in bytes of the compressed payload immediately following this header.</div><div class="ttdef"><b>Definition</b> <a href="data_8h_source.html#l00076">data.h:76</a></div></div>
<div class="ttc" id="astructBlockHeader_html_a1f9f3204a10090709b28d0df4bb547e5"><div class="ttname"><a href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">BlockHeader::length</a></div><div class="ttdeci">uint32_t length</div><div class="ttdoc">Size in bytes of the uncompressed payload resulting after decompression.</div><div class="ttdef"><b>Definition</b> <a href="data_8h_source.html#l00077">data.h:77</a></div></div>
<div class="ttc" id="astructBlockHeader_html_a5bd50f95c8c1f91e5013a1a154690beb"><div class="ttname"><a href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb">BlockHeader::sectorSize</a></div><div class="ttdeci">uint32_t sectorSize</div><div class="ttdoc">Size in bytes of each logical sector represented in this block.</div><div class="ttdef"><b>Definition</b> <a href="data_8h_source.html#l00075">data.h:75</a></div></div>
<div class="ttc" id="astructBlockHeader_html_ad68963422fd2a5f6d0e0be751cbef559"><div class="ttname"><a href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">BlockHeader::compression</a></div><div class="ttdeci">uint16_t compression</div><div class="ttdoc">Compression algorithm used (value from CompressionType).</div><div class="ttdef"><b>Definition</b> <a href="data_8h_source.html#l00074">data.h:74</a></div></div>
<div class="ttc" id="astructDdtHeader2_html_a2bfa558d9d778ae6b86d52520e278b66"><div class="ttname"><a href="structDdtHeader2.html#a2bfa558d9d778ae6b86d52520e278b66">DdtHeader2::overflow</a></div><div class="ttdeci">uint16_t overflow</div><div class="ttdoc">Trailing dumped sectors beyond user area (overflow range), still mapped with entries.</div><div class="ttdef"><b>Definition</b> <a href="ddt_8h_source.html#l00151">ddt.h:151</a></div></div>
<div class="ttc" id="astructDdtHeader2_html_aa4b1416ac0e0585f436513cacf9ebd74"><div class="ttname"><a href="structDdtHeader2.html#aa4b1416ac0e0585f436513cacf9ebd74">DdtHeader2::negative</a></div><div class="ttdeci">uint16_t negative</div><div class="ttdoc">Leading negative LBA count; added to external L to build internal index.</div><div class="ttdef"><b>Definition</b> <a href="ddt_8h_source.html#l00149">ddt.h:149</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_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="astructTrackEntry_html"><div class="ttname"><a href="structTrackEntry.html">TrackEntry</a></div><div class="ttdoc">Single optical disc track descriptor (sequence, type, LBAs, session, ISRC, flags).</div><div class="ttdef"><b>Definition</b> <a href="optical_8h_source.html#l00071">optical.h:72</a></div></div>
<div class="ttc" id="astructTrackEntry_html_a7ae98d532f6dff50c2439b64d2cddb45"><div class="ttname"><a href="structTrackEntry.html#a7ae98d532f6dff50c2439b64d2cddb45">TrackEntry::flags</a></div><div class="ttdeci">uint8_t flags</div><div class="ttdoc">Control / attribute bitfield (see file documentation for suggested bit mapping).</div><div class="ttdef"><b>Definition</b> <a href="optical_8h_source.html#l00080">optical.h:80</a></div></div>
<div class="ttc" id="astructTrackEntry_html_aa6464108b61ee648a5aa8e6ffcc9a59a"><div class="ttname"><a href="structTrackEntry.html#aa6464108b61ee648a5aa8e6ffcc9a59a">TrackEntry::sequence</a></div><div class="ttdeci">uint8_t sequence</div><div class="ttdoc">Track number (1..99 typical for CD audio/data). 0 may indicate placeholder/non-standard.</div><div class="ttdef"><b>Definition</b> <a href="optical_8h_source.html#l00073">optical.h:73</a></div></div>
<div class="ttc" id="astructTrackEntry_html_aa82e4a2aa2cfecee9891f117e9494cdf"><div class="ttname"><a href="structTrackEntry.html#aa82e4a2aa2cfecee9891f117e9494cdf">TrackEntry::start</a></div><div class="ttdeci">int64_t start</div><div class="ttdoc">Inclusive starting LBA of the track.</div><div class="ttdef"><b>Definition</b> <a href="optical_8h_source.html#l00075">optical.h:75</a></div></div>
<div class="ttc" id="astructTrackEntry_html_ac8dd4cd45f2757b51a27385c7731dde4"><div class="ttname"><a href="structTrackEntry.html#ac8dd4cd45f2757b51a27385c7731dde4">TrackEntry::type</a></div><div class="ttdeci">uint8_t type</div><div class="ttdoc">Track type (value from TrackType).</div><div class="ttdef"><b>Definition</b> <a href="optical_8h_source.html#l00074">optical.h:74</a></div></div>
<div class="ttc" id="astructTrackEntry_html_acb023e4728c59964c83fe85474c512c8"><div class="ttname"><a href="structTrackEntry.html#acb023e4728c59964c83fe85474c512c8">TrackEntry::isrc</a></div><div class="ttdeci">uint8_t isrc[13]</div><div class="ttdoc">ISRC raw 13-byte code (no null terminator). All zeros if not present.</div><div class="ttdef"><b>Definition</b> <a href="optical_8h_source.html#l00079">optical.h:79</a></div></div>
<div class="ttc" id="astructTracksHeader_html_a98df23dccacc04396f07f450a742527a"><div class="ttname"><a href="structTracksHeader.html#a98df23dccacc04396f07f450a742527a">TracksHeader::entries</a></div><div class="ttdeci">uint16_t entries</div><div class="ttdoc">Number of TrackEntry records following this header.</div><div class="ttdef"><b>Definition</b> <a href="optical_8h_source.html#l00064">optical.h:64</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_a04c5fb367458a6e9dd0a50b39f6edec2"><div class="ttname"><a href="structaaruformat__context.html#a04c5fb367458a6e9dd0a50b39f6edec2">aaruformat_context::user_data_ddt_header</a></div><div class="ttdeci">DdtHeader2 user_data_ddt_header</div><div class="ttdoc">Active user data DDT v2 header (primary table meta).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00189">context.h:189</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a1614b9ffbd5e4661a2483eb3f68f8fd1"><div class="ttname"><a href="structaaruformat__context.html#a1614b9ffbd5e4661a2483eb3f68f8fd1">aaruformat_context::sector_cpr_mai</a></div><div class="ttdeci">uint8_t * sector_cpr_mai</div><div class="ttdoc">DVD sector CPR_MAI (6 bytes) if present.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00207">context.h:207</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a1d021776e9101370c7e6ed00c8049be1"><div class="ttname"><a href="structaaruformat__context.html#a1d021776e9101370c7e6ed00c8049be1">aaruformat_context::sector_prefix_corrected</a></div><div class="ttdeci">uint8_t * sector_prefix_corrected</div><div class="ttdoc">Corrected variant (post error correction) if stored.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00200">context.h:200</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a2656e1efffab41086f8c580896ea24a1"><div class="ttname"><a href="structaaruformat__context.html#a2656e1efffab41086f8c580896ea24a1">aaruformat_context::data_tracks</a></div><div class="ttdeci">TrackEntry * data_tracks</div><div class="ttdoc">Filtered list of data tracks (subset of trackEntries).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00243">context.h:243</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_a3bfc3fceaaf015830913fd7efa794e5a"><div class="ttname"><a href="structaaruformat__context.html#a3bfc3fceaaf015830913fd7efa794e5a">aaruformat_context::sector_ied</a></div><div class="ttdeci">uint8_t * sector_ied</div><div class="ttdoc">DVD sector IED (2 bytes) if present.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00206">context.h:206</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a413a99e4e86b7121adca2cfce8f02d63"><div class="ttname"><a href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">aaruformat_context::sector_prefix</a></div><div class="ttdeci">uint8_t * sector_prefix</div><div class="ttdoc">Raw per-sector prefix (e.g., sync+header) uncorrected.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00199">context.h:199</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a46d0ccdc69758165c0468afbd05b9ffe"><div class="ttname"><a href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">aaruformat_context::sector_suffix_ddt2</a></div><div class="ttdeci">uint64_t * sector_suffix_ddt2</div><div class="ttdoc">CD sector suffix DDT V2.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00186">context.h:186</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a4dc244e21a520e90abd961c38eb6d9ae"><div class="ttname"><a href="structaaruformat__context.html#a4dc244e21a520e90abd961c38eb6d9ae">aaruformat_context::sector_edc</a></div><div class="ttdeci">uint8_t * sector_edc</div><div class="ttdoc">DVD sector EDC (4 bytes) if present.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00208">context.h:208</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_a5ec94a7912a165e5e7cacbeb8b65cbdf"><div class="ttname"><a href="structaaruformat__context.html#a5ec94a7912a165e5e7cacbeb8b65cbdf">aaruformat_context::sector_suffix_ddt</a></div><div class="ttdeci">uint32_t * sector_suffix_ddt</div><div class="ttdoc">Legacy CD sector suffix DDT.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00184">context.h:184</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a64870438f8f560a0b9973dedb3dd7e0e"><div class="ttname"><a href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">aaruformat_context::sector_suffix</a></div><div class="ttdeci">uint8_t * sector_suffix</div><div class="ttdoc">Raw per-sector suffix (EDC/ECC) uncorrected.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00201">context.h:201</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a7c284949fdbfecfddeac2ba6687213b0"><div class="ttname"><a href="structaaruformat__context.html#a7c284949fdbfecfddeac2ba6687213b0">aaruformat_context::ddt_version</a></div><div class="ttdeci">int ddt_version</div><div class="ttdoc">DDT version in use (1=legacy, 2=v2 hierarchical).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00194">context.h:194</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_a8317a42c16f1a140053f01808929f43f"><div class="ttname"><a href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">aaruformat_context::sector_prefix_ddt2</a></div><div class="ttdeci">uint64_t * sector_prefix_ddt2</div><div class="ttdoc">CD sector prefix DDT V2.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00185">context.h:185</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a8b769e9fb9467aa11d4a2936cf5cf5ed"><div class="ttname"><a href="structaaruformat__context.html#a8b769e9fb9467aa11d4a2936cf5cf5ed">aaruformat_context::mediaTags</a></div><div class="ttdeci">mediaTagEntry * mediaTags</div><div class="ttdoc">Hash table of extra media tags (uthash root).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00264">context.h:264</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_aa943f49c5e77c98bc4cddc9d0c2ae284"><div class="ttname"><a href="structaaruformat__context.html#aa943f49c5e77c98bc4cddc9d0c2ae284">aaruformat_context::sector_decrypted_title_key</a></div><div class="ttdeci">uint8_t * sector_decrypted_title_key</div><div class="ttdoc">DVD decrypted title key (5 bytes) if present.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00209">context.h:209</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_aaf16c9ee5b05bac1ef44d29abef6134a"><div class="ttname"><a href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">aaruformat_context::sector_subchannel</a></div><div class="ttdeci">uint8_t * sector_subchannel</div><div class="ttdoc">Raw 96-byte subchannel (if captured).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00203">context.h:203</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_ac6734b2de73a4b6147aadc49bf3e96f8"><div class="ttname"><a href="structaaruformat__context.html#ac6734b2de73a4b6147aadc49bf3e96f8">aaruformat_context::mode2_subheaders</a></div><div class="ttdeci">uint8_t * mode2_subheaders</div><div class="ttdoc">MODE2 Form1/Form2 8-byte subheaders (concatenated).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00204">context.h:204</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_acc9cdfdd4be56c4f7016a37e218cee47"><div class="ttname"><a href="structaaruformat__context.html#acc9cdfdd4be56c4f7016a37e218cee47">aaruformat_context::sector_id</a></div><div class="ttdeci">uint8_t * sector_id</div><div class="ttdoc">DVD sector ID (4 bytes) if present.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00205">context.h:205</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_ad9e40dfb41ec80b902869354b052dd7d"><div class="ttname"><a href="structaaruformat__context.html#ad9e40dfb41ec80b902869354b052dd7d">aaruformat_context::sector_prefix_ddt</a></div><div class="ttdeci">uint32_t * sector_prefix_ddt</div><div class="ttdoc">Legacy CD sector prefix DDT (deprecated by *2).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00183">context.h:183</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_adcabe3b59f532d036adf16b78faba58e"><div class="ttname"><a href="structaaruformat__context.html#adcabe3b59f532d036adf16b78faba58e">aaruformat_context::track_entries</a></div><div class="ttdeci">TrackEntry * track_entries</div><div class="ttdoc">Full track list (tracksHeader.entries elements).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00242">context.h:242</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_adcda13fede7a22da60ef942981aef1b2"><div class="ttname"><a href="structaaruformat__context.html#adcda13fede7a22da60ef942981aef1b2">aaruformat_context::number_of_data_tracks</a></div><div class="ttdeci">uint8_t number_of_data_tracks</div><div class="ttdoc">Count of tracks considered &quot;data&quot; (sequence 1..99 heuristics).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00245">context.h:245</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_adfcfa339aded095de2143ffff0931288"><div class="ttname"><a href="structaaruformat__context.html#adfcfa339aded095de2143ffff0931288">aaruformat_context::sector_suffix_corrected</a></div><div class="ttdeci">uint8_t * sector_suffix_corrected</div><div class="ttdoc">Corrected suffix if stored separately.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00202">context.h:202</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_aff71b0229a1c4c78572cfdb0824e601e"><div class="ttname"><a href="structaaruformat__context.html#aff71b0229a1c4c78572cfdb0824e601e">aaruformat_context::tracks_header</a></div><div class="ttdeci">TracksHeader tracks_header</div><div class="ttdoc">Tracks header (optical) if present.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00244">context.h:244</a></div></div>
<div class="ttc" id="astructmediaTagEntry_html"><div class="ttname"><a href="structmediaTagEntry.html">mediaTagEntry</a></div><div class="ttdoc">Hash table entry for an arbitrary media tag (e.g., proprietary drive/medium descriptor).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00118">context.h:119</a></div></div>
<div class="ttc" id="astructmediaTagEntry_html_a334fc65b37efdfb624e804e98c398927"><div class="ttname"><a href="structmediaTagEntry.html#a334fc65b37efdfb624e804e98c398927">mediaTagEntry::data</a></div><div class="ttdeci">uint8_t * data</div><div class="ttdoc">Tag data blob (opaque to library core); length bytes long.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00120">context.h:120</a></div></div>
<div class="ttc" id="astructmediaTagEntry_html_aa96c6684fd98145d0089d72957d2afa7"><div class="ttname"><a href="structmediaTagEntry.html#aa96c6684fd98145d0089d72957d2afa7">mediaTagEntry::length</a></div><div class="ttdeci">uint32_t length</div><div class="ttdoc">Length in bytes of data.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00122">context.h:122</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="read_8c.html">read.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>