Files
libaaruformat/docs/html/write_8c_source.html

1889 lines
435 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/write.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('write_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">write.c</div></div>
</div><!--header-->
<div class="contents">
<a href="write_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><span class="preprocessor">#include &lt;errno.h&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &quot;<a class="code" href="aaruformat_8h.html">aaruformat.h</a>&quot;</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include &quot;<a class="code" href="internal_8h.html">internal.h</a>&quot;</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include &quot;<a class="code" href="log_8h.html">log.h</a>&quot;</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include &quot;<a class="code" href="lisa__tag_8h.html">structs/lisa_tag.h</a>&quot;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#include &quot;xxhash.h&quot;</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span></div>
<div class="foldopen" id="foldopen00098" data-start="{" data-end="}">
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="decls_8h.html#a4b8cd2bb5fd9e2c670a0a13695c6f9e3"> 98</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="write_8c.html#a4b8cd2bb5fd9e2c670a0a13695c6f9e3">aaruf_write_sector</a>(<span class="keywordtype">void</span> *context, uint64_t sector_address, <span class="keywordtype">bool</span> negative,</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">const</span> uint8_t *data, uint8_t sector_status, uint32_t length)</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span>{</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_write_sector(%p, %&quot;</span> PRIu64 <span class="stringliteral">&quot;, %d, %p, %u, %u)&quot;</span>, context, sector_address, negative, data,</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> sector_status, length);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">if</span>(context == NULL)</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> <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="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</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="l00111" name="l00111"></a><span class="lineno"> 111</span> }</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</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="l00117" name="l00117"></a><span class="lineno"> 117</span> {</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</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="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</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="l00122" name="l00122"></a><span class="lineno"> 122</span> }</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">if</span>(!ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a6f61f9ea20f4e3b791a0d6388dd43651">is_writing</a>)</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> {</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Trying to write a read-only image&quot;</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1df49eaa19eaa14891b6aaab966a9bc6">AARUF_READ_ONLY</a>;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> }</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</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="l00134" name="l00134"></a><span class="lineno"> 134</span> {</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</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="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_SECTOR_OUT_OF_BOUNDS&quot;</span>);</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</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="l00139" name="l00139"></a><span class="lineno"> 139</span> }</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <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="l00142" name="l00142"></a><span class="lineno"> 142</span> {</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Sector address out of bounds&quot;</span>);</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_SECTOR_OUT_OF_BOUNDS&quot;</span>);</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</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="l00147" name="l00147"></a><span class="lineno"> 147</span> }</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keywordflow">if</span>(!ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a551d4fb5a3213106d01d369e98bdf3c8">rewinded</a>)</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> {</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordflow">if</span>(sector_address &lt;= ctx-&gt;last_written_block)</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> {</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Rewinded&quot;</span>);</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a551d4fb5a3213106d01d369e98bdf3c8">rewinded</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// Disable MD5 calculation</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a95770f959cae3b6b34e2b1ae592a7136">calculating_md5</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a95770f959cae3b6b34e2b1ae592a7136">calculating_md5</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="comment">// Disable SHA1 calculation</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4e4c12388d90a11cf14266d1215ce13e">calculating_sha1</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4e4c12388d90a11cf14266d1215ce13e">calculating_sha1</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="comment">// Disable SHA256 calculation</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a2e2c23ecc1d15087ef46e2591c47194a">calculating_sha256</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a2e2c23ecc1d15087ef46e2591c47194a">calculating_sha256</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="comment">// Disable SpamSum calculation</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a865120510888fac8bb3597b57d515ba7">calculating_spamsum</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a865120510888fac8bb3597b57d515ba7">calculating_spamsum</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="comment">// Disable BLAKE3 calculation</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8be6dd9da00d771d24c7a6295f1c1d02">calculating_blake3</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8be6dd9da00d771d24c7a6295f1c1d02">calculating_blake3</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> }</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a1387f95c2da152594f29c5c276e5dbc5">last_written_block</a> = sector_address;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> }</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="comment">// Calculate MD5 on-the-fly if requested and sector is within user sectors (not negative or overflow)</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a95770f959cae3b6b34e2b1ae592a7136">calculating_md5</a> &amp;&amp; !negative &amp;&amp; sector_address &lt;= ctx-&gt;image_info.Sectors &amp;&amp; !ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ae867f128af265e78c6ef2da6baa9069a">writing_long</a>)</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <a class="code hl_function" href="decls_8h.html#a6e19e853bea5db901de83fa2fa29055c">aaruf_md5_update</a>(&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3c44b0cbcfb4586ce666dcd97a3dd85a">md5_context</a>, data, length);</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="comment">// Calculate SHA1 on-the-fly if requested and sector is within user sectors (not negative or overflow)</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4e4c12388d90a11cf14266d1215ce13e">calculating_sha1</a> &amp;&amp; !negative &amp;&amp; sector_address &lt;= ctx-&gt;image_info.Sectors &amp;&amp; !ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ae867f128af265e78c6ef2da6baa9069a">writing_long</a>)</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <a class="code hl_function" href="decls_8h.html#abead53c8e55f1f99900fdae16d9da70f">aaruf_sha1_update</a>(&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad1e28bac5a6c9bfdb8d18793686fc755">sha1_context</a>, data, length);</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="comment">// Calculate SHA256 on-the-fly if requested and sector is within user sectors (not negative or overflow)</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a2e2c23ecc1d15087ef46e2591c47194a">calculating_sha256</a> &amp;&amp; !negative &amp;&amp; sector_address &lt;= ctx-&gt;image_info.Sectors &amp;&amp; !ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ae867f128af265e78c6ef2da6baa9069a">writing_long</a>)</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <a class="code hl_function" href="decls_8h.html#ab5f178e5ec94596e44a3fdb001d4a5f8">aaruf_sha256_update</a>(&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a21dffad51cfb58f5f71f7babee2aaceb">sha256_context</a>, data, length);</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="comment">// Calculate SpamSum on-the-fly if requested and sector is within user sectors (not negative or overflow)</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a865120510888fac8bb3597b57d515ba7">calculating_spamsum</a> &amp;&amp; !negative &amp;&amp; sector_address &lt;= ctx-&gt;image_info.Sectors &amp;&amp; !ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ae867f128af265e78c6ef2da6baa9069a">writing_long</a>)</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <a class="code hl_function" href="decls_8h.html#a5a9767f3b860752b493aa7bee9d39a8d">aaruf_spamsum_update</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a729b87257c0b5d1e9abf1af133a4b0f3">spamsum_context</a>, data, length);</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="comment">// Calculate BLAKE3 on-the-fly if requested and sector is within user sectors (not negative or overflow)</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8be6dd9da00d771d24c7a6295f1c1d02">calculating_blake3</a> &amp;&amp; !negative &amp;&amp; sector_address &lt;= ctx-&gt;image_info.Sectors &amp;&amp; !ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ae867f128af265e78c6ef2da6baa9069a">writing_long</a>)</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> blake3_hasher_update(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8b89a7e0e6369dad38e23dabaf4b49a4">blake3_context</a>, data, length);</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> </div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="comment">// Close current block first</span></div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a80b7de958916f11cc61ef6871a376a92">writing_buffer</a> != NULL &amp;&amp;</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// When sector size changes or block reaches maximum size</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> (ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb">sectorSize</a> != length ||</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a6711c6fceb17675a6ff3023845a9728a">current_block_offset</a> == 1 &lt;&lt; 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#ad9a2beb3a79bc6c239ba04fe341e0cde">dataShift</a>))</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> {</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Closing current block before writing new data&quot;</span>);</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordtype">int</span> error = <a class="code hl_function" href="write_8c.html#a2402812f5e04ba16765208c0b70fa6c5">aaruf_close_current_block</a>(ctx);</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> </div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="keywordflow">if</span>(error != <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>)</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> {</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Error closing current block: %d&quot;</span>, error);</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> </div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = %d&quot;</span>, error);</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keywordflow">return</span> error;</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> }</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> }</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> </div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> uint64_t ddt_entry = 0;</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keywordtype">bool</span> ddt_ok;</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a0d4e1977913ce67e85bced41c58e5dd2">deduplicate</a>)</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> {</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="comment">// Calculate 64-bit XXH3 hash of the sector</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Hashing sector data for deduplication&quot;</span>);</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> uint64_t hash = XXH3_64bits(data, length);</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> </div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="comment">// Check if the hash is already in the map</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keywordtype">bool</span> existing = <a class="code hl_function" href="hash__map_8h.html#a0719b4ee8aaa73765678b6b1db733fcd">lookup_map</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a18bee1dd72fd1ca4957ff6ddfebce343">sector_hash_map</a>, hash, &amp;ddt_entry);</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Block does %s exist in deduplication map&quot;</span>, existing ? <span class="stringliteral">&quot;already&quot;</span> : <span class="stringliteral">&quot;not yet&quot;</span>);</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> ddt_ok = <a class="code hl_function" href="internal_8h.html#a1906cbcaef9f44b8ac4360beb70a0120">set_ddt_entry_v2</a>(ctx, sector_address, negative, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a6711c6fceb17675a6ff3023845a9728a">current_block_offset</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a939b702f75e80062bc635add4c3ab142">next_block_position</a>,</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> sector_status, &amp;ddt_entry);</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordflow">if</span>(!ddt_ok)</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> {</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_CANNOT_SET_DDT_ENTRY&quot;</span>);</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a9c9c207061d0957b1cf76c1a79296a36">AARUF_ERROR_CANNOT_SET_DDT_ENTRY</a>;</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> }</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keywordflow">if</span>(existing)</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> {</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Sector exists, so not writing to image&quot;</span>);</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</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="l00231" name="l00231"></a><span class="lineno"> 231</span> }</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> </div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Inserting sector hash into deduplication map, proceeding to write into image as normal&quot;</span>);</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <a class="code hl_function" href="hash__map_8h.html#a56a11edd19b5362f1dd719a11c06f892">insert_map</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a18bee1dd72fd1ca4957ff6ddfebce343">sector_hash_map</a>, hash, ddt_entry);</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> }</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> ddt_ok = <a class="code hl_function" href="internal_8h.html#a1906cbcaef9f44b8ac4360beb70a0120">set_ddt_entry_v2</a>(ctx, sector_address, negative, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a6711c6fceb17675a6ff3023845a9728a">current_block_offset</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a939b702f75e80062bc635add4c3ab142">next_block_position</a>,</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> sector_status, &amp;ddt_entry);</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> </div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keywordflow">if</span>(!ddt_ok)</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> {</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_CANNOT_SET_DDT_ENTRY&quot;</span>);</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a9c9c207061d0957b1cf76c1a79296a36">AARUF_ERROR_CANNOT_SET_DDT_ENTRY</a>;</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> }</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> </div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="comment">// No block set</span></div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aab497e0a30c0001b2ca181467973927c">writing_buffer_position</a> == 0)</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> {</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Creating new writing block&quot;</span>);</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a3b03f118fb2dc3dcef3f87a82238e358">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a5a0811c5ee97536aef900cecb8787713">DataBlock</a>;</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ac31ad48f3362a43175c94ec2e30662ad">type</a> = <a class="code hl_enumvalue" href="enums_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6a73bb26133ccd01972725933b00ec3a06">UserData</a>;</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb">sectorSize</a> = length;</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> </div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="comment">// We need to save the track type for later compression</span></div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</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> &amp;&amp; ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#adcabe3b59f532d036adf16b78faba58e">track_entries</a> != NULL)</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> {</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="keyword">const</span> <a class="code hl_struct" href="structTrackEntry.html">TrackEntry</a> *track = NULL;</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</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="l00259" name="l00259"></a><span class="lineno"> 259</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="l00260" name="l00260"></a><span class="lineno"> 260</span> {</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> track = &amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#adcabe3b59f532d036adf16b78faba58e">track_entries</a>[i];</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> }</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> </div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keywordflow">if</span>(track != NULL)</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> {</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ae59a9524ceefd02ae46529097137a9fc">current_track_type</a> = track-&gt;<a class="code hl_variable" href="structTrackEntry.html#ac8dd4cd45f2757b51a27385c7731dde4">type</a>;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> </div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <span class="keywordflow">if</span>(track-&gt;<a class="code hl_variable" href="structTrackEntry.html#aa6464108b61ee648a5aa8e6ffcc9a59a">sequence</a> == 0 &amp;&amp; track-&gt;<a class="code hl_variable" href="structTrackEntry.html#aa82e4a2aa2cfecee9891f117e9494cdf">start</a> == 0 &amp;&amp; track-&gt;<a class="code hl_variable" href="structTrackEntry.html#a7c545a1a4aa3547eacac09b3652034dd">end</a> == 0) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ae59a9524ceefd02ae46529097137a9fc">current_track_type</a> = <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04aa9703801ac7bd790f6f980532e4224c0">Data</a>;</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> }</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ae59a9524ceefd02ae46529097137a9fc">current_track_type</a> = <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04aa9703801ac7bd790f6f980532e4224c0">Data</a>;</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> </div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ae59a9524ceefd02ae46529097137a9fc">current_track_type</a> == <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04ad3c111fe8a0e835609a6187d6e9d2e57">Audio</a> &amp;&amp;</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="comment">// JaguarCD stores data in audio tracks. FLAC is too inefficient, we need to use LZMA as data.</span></div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa8a082102c8bb98196eaad3fbd8131a86">JaguarCD</a> &amp;&amp; track-&gt;<a class="code hl_variable" href="structTrackEntry.html#a74f57f3c7758ff4e156b2cceff461242">session</a> &gt; 1 ||</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="comment">// VideoNow stores video in audio tracks, and LZMA works better too.</span></div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#a76611d5087e0a9fd4d329fac7c9ec3f3">MediaType</a> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa953a27e6a4a41c6d9b9bd0d18feeb12c">VideoNow</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa301beaee119622d402dcfb85a214953b">VideoNowColor</a> ||</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa9685c678a93fbc28a9b4dbfee8759405">VideoNowXp</a>))</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ae59a9524ceefd02ae46529097137a9fc">current_track_type</a> = <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04aa9703801ac7bd790f6f980532e4224c0">Data</a>;</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> </div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a130daf19dbed426f1c4c6f82691bc054">compression_enabled</a>)</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> {</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ae59a9524ceefd02ae46529097137a9fc">current_track_type</a> == <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04ad3c111fe8a0e835609a6187d6e9d2e57">Audio</a>)</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">compression</a> = <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263adce52e91e4d88a577ecf67cbe7beac31">Flac</a>;</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">compression</a> = <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263a002db7938c70152bf9af1797cb87c32f">Lzma</a>;</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> }</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">compression</a> = <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263ac9d3e887722f2bc482bcca9d41c512af">None</a>;</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> }</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">else</span></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> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ae59a9524ceefd02ae46529097137a9fc">current_track_type</a> = <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04aa9703801ac7bd790f6f980532e4224c0">Data</a>;</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a130daf19dbed426f1c4c6f82691bc054">compression_enabled</a>)</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">compression</a> = <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263a002db7938c70152bf9af1797cb87c32f">Lzma</a>;</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">compression</a> = <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263ac9d3e887722f2bc482bcca9d41c512af">None</a>;</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> </div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> uint32_t max_buffer_size = (1 &lt;&lt; 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#ad9a2beb3a79bc6c239ba04fe341e0cde">dataShift</a>) * ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb">sectorSize</a> * 2;</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Setting max buffer size to %u bytes&quot;</span>, max_buffer_size);</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;Allocating memory for writing buffer&quot;</span>);</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a80b7de958916f11cc61ef6871a376a92">writing_buffer</a> = (uint8_t *)calloc(1, max_buffer_size);</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a80b7de958916f11cc61ef6871a376a92">writing_buffer</a> == NULL)</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> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory&quot;</span>);</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#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</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="l00312" name="l00312"></a><span class="lineno"> 312</span> }</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> }</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Copying data to writing buffer at position %zu&quot;</span>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aab497e0a30c0001b2ca181467973927c">writing_buffer_position</a>);</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a80b7de958916f11cc61ef6871a376a92">writing_buffer</a> + ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aab497e0a30c0001b2ca181467973927c">writing_buffer_position</a>, data, length);</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Advancing writing buffer position to %zu&quot;</span>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aab497e0a30c0001b2ca181467973927c">writing_buffer_position</a> + length);</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aab497e0a30c0001b2ca181467973927c">writing_buffer_position</a> += length;</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Advancing current block offset to %zu&quot;</span>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a6711c6fceb17675a6ff3023845a9728a">current_block_offset</a> + 1);</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a6711c6fceb17675a6ff3023845a9728a">current_block_offset</a>++;</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> </div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</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="l00324" name="l00324"></a><span class="lineno"> 324</span>}</div>
</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span></div>
<div class="foldopen" id="foldopen00532" data-start="{" data-end="}">
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"><a class="line" href="decls_8h.html#a69ca66242c0becf7640b3d1cc8da8f9c"> 532</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="write_8c.html#a69ca66242c0becf7640b3d1cc8da8f9c">aaruf_write_sector_long</a>(<span class="keywordtype">void</span> *context, uint64_t sector_address, <span class="keywordtype">bool</span> negative,</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> <span class="keyword">const</span> uint8_t *data, uint8_t sector_status, uint32_t length)</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#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_write_sector_long(%p, %&quot;</span> PRIu64 <span class="stringliteral">&quot;, %d, %p, %u, %u)&quot;</span>, context, sector_address, negative, data,</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> sector_status, length);</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> </div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> <span class="keywordflow">if</span>(context == NULL)</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#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> </div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</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="l00545" name="l00545"></a><span class="lineno"> 545</span> }</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> </div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> </div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</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="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#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> </div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</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="l00556" name="l00556"></a><span class="lineno"> 556</span> }</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> </div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> <span class="keywordflow">if</span>(!ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a6f61f9ea20f4e3b791a0d6388dd43651">is_writing</a>)</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> {</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Trying to write a read-only image&quot;</span>);</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1df49eaa19eaa14891b6aaab966a9bc6">AARUF_READ_ONLY</a>;</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> }</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> </div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</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="l00568" name="l00568"></a><span class="lineno"> 568</span> {</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</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="l00570" name="l00570"></a><span class="lineno"> 570</span> </div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_SECTOR_OUT_OF_BOUNDS&quot;</span>);</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</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="l00573" name="l00573"></a><span class="lineno"> 573</span> }</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> </div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</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="l00576" name="l00576"></a><span class="lineno"> 576</span> {</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</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="l00578" name="l00578"></a><span class="lineno"> 578</span> </div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_SECTOR_OUT_OF_BOUNDS&quot;</span>);</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</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="l00581" name="l00581"></a><span class="lineno"> 581</span> }</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> </div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</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="l00584" name="l00584"></a><span class="lineno"> 584</span> {</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466aaf46f69508c3a90e5588c71f410a7f12">OpticalDisc</a>:</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> <a class="code hl_struct" href="structTrackEntry.html">TrackEntry</a> track = {0};</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> </div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</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="l00590" name="l00590"></a><span class="lineno"> 590</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="l00591" name="l00591"></a><span class="lineno"> 591</span> {</div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> track = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#adcabe3b59f532d036adf16b78faba58e">track_entries</a>[i];</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> }</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> </div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> <span class="keywordflow">if</span>(track.<a class="code hl_variable" href="structTrackEntry.html#aa6464108b61ee648a5aa8e6ffcc9a59a">sequence</a> == 0 &amp;&amp; track.<a class="code hl_variable" href="structTrackEntry.html#aa82e4a2aa2cfecee9891f117e9494cdf">start</a> == 0 &amp;&amp; track.<a class="code hl_variable" href="structTrackEntry.html#a7c545a1a4aa3547eacac09b3652034dd">end</a> == 0) track.<a class="code hl_variable" href="structTrackEntry.html#ac8dd4cd45f2757b51a27385c7731dde4">type</a> = <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04aa9703801ac7bd790f6f980532e4224c0">Data</a>;</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> </div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> uint64_t corrected_sector_address = sector_address;</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> </div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> <span class="comment">// Calculate positive or negative sector</span></div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <span class="keywordflow">if</span>(negative)</div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</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="l00603" name="l00603"></a><span class="lineno"> 603</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</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="l00605" name="l00605"></a><span class="lineno"> 605</span> </div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> uint64_t total_sectors =</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> 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> + 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>;</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> </div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> <span class="comment">// DVD long sector</span></div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> <span class="keywordflow">if</span>(length == 2064 &amp;&amp; (ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#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="l00611" name="l00611"></a><span class="lineno"> 611</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="l00612" name="l00612"></a><span class="lineno"> 612</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="l00613" name="l00613"></a><span class="lineno"> 613</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="l00614" name="l00614"></a><span class="lineno"> 614</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="l00615" name="l00615"></a><span class="lineno"> 615</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="l00616" name="l00616"></a><span class="lineno"> 616</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="l00617" name="l00617"></a><span class="lineno"> 617</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="l00618" name="l00618"></a><span class="lineno"> 618</span> {</div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</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#acc9cdfdd4be56c4f7016a37e218cee47">sector_id</a> = calloc(1, 4 * total_sectors);</div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <span class="keywordflow">if</span>(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#a3bfc3fceaaf015830913fd7efa794e5a">sector_ied</a> = calloc(1, 2 * total_sectors);</div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a1614b9ffbd5e4661a2483eb3f68f8fd1">sector_cpr_mai</a> == NULL) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a1614b9ffbd5e4661a2483eb3f68f8fd1">sector_cpr_mai</a> = calloc(1, 6 * total_sectors);</div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4dc244e21a520e90abd961c38eb6d9ae">sector_edc</a> == NULL) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4dc244e21a520e90abd961c38eb6d9ae">sector_edc</a> = calloc(1, 4 * total_sectors);</div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> </div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#acc9cdfdd4be56c4f7016a37e218cee47">sector_id</a> + corrected_sector_address * 4, data, 4);</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3bfc3fceaaf015830913fd7efa794e5a">sector_ied</a> + corrected_sector_address * 2, data + 4, 2);</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a1614b9ffbd5e4661a2483eb3f68f8fd1">sector_cpr_mai</a> + corrected_sector_address * 6, data + 6, 6);</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4dc244e21a520e90abd961c38eb6d9ae">sector_edc</a> + corrected_sector_address * 4, data + 2060, 4);</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> </div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> <span class="keywordflow">return</span> <a class="code hl_function" href="write_8c.html#a4b8cd2bb5fd9e2c670a0a13695c6f9e3">aaruf_write_sector</a>(context, sector_address, negative, data + 12, sector_status, 2048);</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> }</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> </div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> <span class="keywordflow">if</span>(length != 2352)</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> {</div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect sector size&quot;</span>);</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</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="l00637" name="l00637"></a><span class="lineno"> 637</span> }</div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> </div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ae867f128af265e78c6ef2da6baa9069a">writing_long</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> </div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> <span class="keywordflow">if</span>(!ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a551d4fb5a3213106d01d369e98bdf3c8">rewinded</a>)</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> {</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> <span class="keywordflow">if</span>(sector_address &lt;= ctx-&gt;last_written_block)</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> {</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Rewinded&quot;</span>);</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a551d4fb5a3213106d01d369e98bdf3c8">rewinded</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> </div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <span class="comment">// Disable MD5 calculation</span></div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a95770f959cae3b6b34e2b1ae592a7136">calculating_md5</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a95770f959cae3b6b34e2b1ae592a7136">calculating_md5</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> <span class="comment">// Disable SHA1 calculation</span></div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4e4c12388d90a11cf14266d1215ce13e">calculating_sha1</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4e4c12388d90a11cf14266d1215ce13e">calculating_sha1</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> <span class="comment">// Disable SHA256 calculation</span></div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a2e2c23ecc1d15087ef46e2591c47194a">calculating_sha256</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a2e2c23ecc1d15087ef46e2591c47194a">calculating_sha256</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> <span class="comment">// Disable SpamSum calculation</span></div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a865120510888fac8bb3597b57d515ba7">calculating_spamsum</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a865120510888fac8bb3597b57d515ba7">calculating_spamsum</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> <span class="comment">// Disable BLAKE3 calculation</span></div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8be6dd9da00d771d24c7a6295f1c1d02">calculating_blake3</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8be6dd9da00d771d24c7a6295f1c1d02">calculating_blake3</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> }</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a1387f95c2da152594f29c5c276e5dbc5">last_written_block</a> = sector_address;</div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> }</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> </div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> <span class="comment">// Calculate MD5 on-the-fly if requested and sector is within user sectors (not negative or overflow)</span></div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a95770f959cae3b6b34e2b1ae592a7136">calculating_md5</a> &amp;&amp; !negative &amp;&amp; sector_address &lt;= ctx-&gt;image_info.Sectors)</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> <a class="code hl_function" href="decls_8h.html#a6e19e853bea5db901de83fa2fa29055c">aaruf_md5_update</a>(&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3c44b0cbcfb4586ce666dcd97a3dd85a">md5_context</a>, data, length);</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> <span class="comment">// Calculate SHA1 on-the-fly if requested and sector is within user sectors (not negative or overflow)</span></div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4e4c12388d90a11cf14266d1215ce13e">calculating_sha1</a> &amp;&amp; !negative &amp;&amp; sector_address &lt;= ctx-&gt;image_info.Sectors)</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> <a class="code hl_function" href="decls_8h.html#abead53c8e55f1f99900fdae16d9da70f">aaruf_sha1_update</a>(&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ad1e28bac5a6c9bfdb8d18793686fc755">sha1_context</a>, data, length);</div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> <span class="comment">// Calculate SHA256 on-the-fly if requested and sector is within user sectors (not negative or overflow)</span></div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a2e2c23ecc1d15087ef46e2591c47194a">calculating_sha256</a> &amp;&amp; !negative &amp;&amp; sector_address &lt;= ctx-&gt;image_info.Sectors)</div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <a class="code hl_function" href="decls_8h.html#ab5f178e5ec94596e44a3fdb001d4a5f8">aaruf_sha256_update</a>(&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a21dffad51cfb58f5f71f7babee2aaceb">sha256_context</a>, data, length);</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> <span class="comment">// Calculate SpamSum on-the-fly if requested and sector is within user sectors (not negative or overflow)</span></div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a865120510888fac8bb3597b57d515ba7">calculating_spamsum</a> &amp;&amp; !negative &amp;&amp; sector_address &lt;= ctx-&gt;image_info.Sectors)</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <a class="code hl_function" href="decls_8h.html#a5a9767f3b860752b493aa7bee9d39a8d">aaruf_spamsum_update</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a729b87257c0b5d1e9abf1af133a4b0f3">spamsum_context</a>, data, length);</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> <span class="comment">// Calculate BLAKE3 on-the-fly if requested and sector is within user sectors (not negative or overflow)</span></div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8be6dd9da00d771d24c7a6295f1c1d02">calculating_blake3</a> &amp;&amp; !negative &amp;&amp; sector_address &lt;= ctx-&gt;image_info.Sectors)</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> blake3_hasher_update(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8b89a7e0e6369dad38e23dabaf4b49a4">blake3_context</a>, data, length);</div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> </div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> <span class="keywordtype">bool</span> prefix_correct;</div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> </div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> <span class="comment">// Split raw cd sector data in prefix (sync, header), user data and suffix (edc, ecc p, ecc q)</span></div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> <span class="keywordflow">switch</span>(track.<a class="code hl_variable" href="structTrackEntry.html#ac8dd4cd45f2757b51a27385c7731dde4">type</a>)</div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span> {</div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04ad3c111fe8a0e835609a6187d6e9d2e57">Audio</a>:</div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04aa9703801ac7bd790f6f980532e4224c0">Data</a>:</div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> <span class="keywordflow">return</span> <a class="code hl_function" href="write_8c.html#a4b8cd2bb5fd9e2c670a0a13695c6f9e3">aaruf_write_sector</a>(context, sector_address, negative, data, sector_status, length);</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04aa2aea1fa4875ff43b28267ad736cec62">CdMode1</a>:</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> </div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> <span class="comment">// If we do not have a DDT V2 for sector prefix, create one</span></div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</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="l00691" name="l00691"></a><span class="lineno"> 691</span> {</div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">sector_prefix_ddt2</a> =</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> calloc(1, <span class="keyword">sizeof</span>(uint64_t) * (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> + 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> +</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> 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>));</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="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="l00697" name="l00697"></a><span class="lineno"> 697</span> {</div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for CD sector prefix DDT&quot;</span>);</div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span> </div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</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="l00702" name="l00702"></a><span class="lineno"> 702</span> }</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="comment">// If we do not have a DDT V2 for sector suffix, create one</span></div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</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="l00707" name="l00707"></a><span class="lineno"> 707</span> {</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a> =</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span> calloc(1, <span class="keyword">sizeof</span>(uint64_t) * (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> + 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> +</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> 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>));</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> <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="l00713" name="l00713"></a><span class="lineno"> 713</span> {</div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for CD sector prefix DDT&quot;</span>);</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> </div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</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="l00718" name="l00718"></a><span class="lineno"> 718</span> }</div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> }</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> </div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</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="l00722" name="l00722"></a><span class="lineno"> 722</span> {</div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8a241de4e05e4bd18ce6b425099ba855">sector_prefix_length</a> = 16 * (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> + 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> +</div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> 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>);</div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a> = malloc(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8a241de4e05e4bd18ce6b425099ba855">sector_prefix_length</a>);</div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> </div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</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="l00728" name="l00728"></a><span class="lineno"> 728</span> {</div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for CD sector prefix buffer&quot;</span>);</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> </div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</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="l00733" name="l00733"></a><span class="lineno"> 733</span> }</div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> }</div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> </div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</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="l00737" name="l00737"></a><span class="lineno"> 737</span> {</div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a12497927c4c5d82f44307d0e8fff0960">sector_suffix_length</a> =</div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span> 288 * (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> + 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> +</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> 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>);</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a> = malloc(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a12497927c4c5d82f44307d0e8fff0960">sector_suffix_length</a>);</div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span> </div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</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="l00744" name="l00744"></a><span class="lineno"> 744</span> {</div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for CD sector suffix buffer&quot;</span>);</div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> </div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"> 748</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="l00749" name="l00749"></a><span class="lineno"> 749</span> }</div>
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span> }</div>
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> </div>
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span> <span class="keywordtype">bool</span> empty = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> </div>
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"> 754</span> <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; length; i++)</div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> <span class="keywordflow">if</span>(data[i] != 0)</div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> {</div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> empty = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> }</div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> </div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> <span class="keywordflow">if</span>(empty)</div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> {</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">sector_prefix_ddt2</a>[corrected_sector_address] = <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a032ffcff283d253414768f0fa035af4d">SectorStatusNotDumped</a>;</div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a>[corrected_sector_address] = <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a032ffcff283d253414768f0fa035af4d">SectorStatusNotDumped</a>;</div>
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> <span class="keywordflow">return</span> <a class="code hl_function" href="write_8c.html#a4b8cd2bb5fd9e2c670a0a13695c6f9e3">aaruf_write_sector</a>(context, sector_address, negative, data + 16, <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a032ffcff283d253414768f0fa035af4d">SectorStatusNotDumped</a>,</div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> 2048);</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> }</div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> </div>
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> prefix_correct = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> </div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> <span class="keywordflow">if</span>(data[0x00] != 0x00 || data[0x01] != 0xFF || data[0x02] != 0xFF || data[0x03] != 0xFF ||</div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> data[0x04] != 0xFF || data[0x05] != 0xFF || data[0x06] != 0xFF || data[0x07] != 0xFF ||</div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> data[0x08] != 0xFF || data[0x09] != 0xFF || data[0x0A] != 0xFF || data[0x0B] != 0x00 ||</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> data[0x0F] != 0x01)</div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> prefix_correct = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> </div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> <span class="keywordflow">if</span>(prefix_correct)</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> {</div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> <span class="keyword">const</span> <span class="keywordtype">int</span> minute = (data[0x0C] &gt;&gt; 4) * 10 + (data[0x0C] &amp; 0x0F);</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> <span class="keyword">const</span> <span class="keywordtype">int</span> second = (data[0x0D] &gt;&gt; 4) * 10 + (data[0x0D] &amp; 0x0F);</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span> <span class="keyword">const</span> <span class="keywordtype">int</span> frame = (data[0x0E] &gt;&gt; 4) * 10 + (data[0x0E] &amp; 0x0F);</div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> <span class="keyword">const</span> <span class="keywordtype">int</span> stored_lba = minute * 60 * 75 + second * 75 + frame - 150;</div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> prefix_correct = stored_lba == sector_address;</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> }</div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span> </div>
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span> <span class="keywordflow">if</span>(prefix_correct)</div>
<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"> 787</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">sector_prefix_ddt2</a>[corrected_sector_address] = (uint64_t)<a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a98ca0ee5ee0653575fc98b501a3387cf">SectorStatusMode1Correct</a> &lt;&lt; 60;</div>
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> {</div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> <span class="comment">// Copy CD prefix from data buffer to prefix buffer</span></div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a> + ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a74672215c728bb14ad860c96969a56dc">sector_prefix_offset</a>, data, 16);</div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"> 792</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">sector_prefix_ddt2</a>[corrected_sector_address] = (uint64_t)(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a74672215c728bb14ad860c96969a56dc">sector_prefix_offset</a> / 16);</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">sector_prefix_ddt2</a>[corrected_sector_address] |= (uint64_t)<a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0ab92ec5c02efb2acf7fe8a6312fe30c80">SectorStatusErrored</a> &lt;&lt; 60;</div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a74672215c728bb14ad860c96969a56dc">sector_prefix_offset</a> += 16;</div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span> </div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span> <span class="comment">// Grow prefix buffer if needed</span></div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a74672215c728bb14ad860c96969a56dc">sector_prefix_offset</a> &gt;= ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8a241de4e05e4bd18ce6b425099ba855">sector_prefix_length</a>)</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span> {</div>
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8a241de4e05e4bd18ce6b425099ba855">sector_prefix_length</a> *= 2;</div>
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a> = realloc(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8a241de4e05e4bd18ce6b425099ba855">sector_prefix_length</a>);</div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span> </div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</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="l00803" name="l00803"></a><span class="lineno"> 803</span> {</div>
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for CD sector prefix buffer&quot;</span>);</div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> </div>
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00807" name="l00807"></a><span class="lineno"> 807</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="l00808" name="l00808"></a><span class="lineno"> 808</span> }</div>
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span> }</div>
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> }</div>
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span> </div>
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> suffix_correct = <a class="code hl_function" href="decls_8h.html#afbc09e16b1a654de04706e07c3212ecb">aaruf_ecc_cd_is_suffix_correct</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a510b72290e2bd50e02ef8a2387aa829d">ecc_cd_context</a>, data);</div>
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span> </div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> <span class="keywordflow">if</span>(suffix_correct)</div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a>[corrected_sector_address] = (uint64_t)<a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a98ca0ee5ee0653575fc98b501a3387cf">SectorStatusMode1Correct</a> &lt;&lt; 60;</div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span> {</div>
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span> <span class="comment">// Copy CD suffix from data buffer to suffix buffer</span></div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a> + ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9bb3ead5fcb320a1a1b883a9eb1217d8">sector_suffix_offset</a>, data + 2064, 288);</div>
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a>[corrected_sector_address] = (uint64_t)(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9bb3ead5fcb320a1a1b883a9eb1217d8">sector_suffix_offset</a> / 288);</div>
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a>[corrected_sector_address] |= (uint64_t)<a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0ab92ec5c02efb2acf7fe8a6312fe30c80">SectorStatusErrored</a> &lt;&lt; 60;</div>
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9bb3ead5fcb320a1a1b883a9eb1217d8">sector_suffix_offset</a> += 288;</div>
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> </div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span> <span class="comment">// Grow suffix buffer if needed</span></div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9bb3ead5fcb320a1a1b883a9eb1217d8">sector_suffix_offset</a> &gt;= ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a12497927c4c5d82f44307d0e8fff0960">sector_suffix_length</a>)</div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span> {</div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a12497927c4c5d82f44307d0e8fff0960">sector_suffix_length</a> *= 2;</div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a> = realloc(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a12497927c4c5d82f44307d0e8fff0960">sector_suffix_length</a>);</div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> </div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</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="l00831" name="l00831"></a><span class="lineno"> 831</span> {</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for CD sector suffix buffer&quot;</span>);</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</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="l00836" name="l00836"></a><span class="lineno"> 836</span> }</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> }</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span> }</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> </div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> <span class="keywordflow">return</span> <a class="code hl_function" href="write_8c.html#a4b8cd2bb5fd9e2c670a0a13695c6f9e3">aaruf_write_sector</a>(context, sector_address, negative, data + 16, <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a98ca0ee5ee0653575fc98b501a3387cf">SectorStatusMode1Correct</a>,</div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span> 2048);</div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04af90c2d371aa1e99d911ec2173587186c">CdMode2Form1</a>:</div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04ab68a4bd72f7e85f28dcb9c5a5441743a">CdMode2Form2</a>:</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#ad80740dd555f7d3688d2c4d9f44d3b04aff99910681f4abb6ac45b08562b2797e">CdMode2Formless</a>:</div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> <span class="comment">// If we do not have a DDT V2 for sector prefix, create one</span></div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</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="l00847" name="l00847"></a><span class="lineno"> 847</span> {</div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">sector_prefix_ddt2</a> =</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> calloc(1, <span class="keyword">sizeof</span>(uint64_t) * (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> + 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> +</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> 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>));</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> <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="l00853" name="l00853"></a><span class="lineno"> 853</span> {</div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for CD sector prefix DDT&quot;</span>);</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#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</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="l00858" name="l00858"></a><span class="lineno"> 858</span> }</div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> }</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> <span class="comment">// If we do not have a DDT V2 for sector suffix, create one</span></div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</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="l00863" name="l00863"></a><span class="lineno"> 863</span> {</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a> =</div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> calloc(1, <span class="keyword">sizeof</span>(uint64_t) * (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> + 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> +</div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span> 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>));</div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> </div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</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="l00869" name="l00869"></a><span class="lineno"> 869</span> {</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for CD sector prefix DDT&quot;</span>);</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> </div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</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="l00874" name="l00874"></a><span class="lineno"> 874</span> }</div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> }</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> </div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</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="l00878" name="l00878"></a><span class="lineno"> 878</span> {</div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8a241de4e05e4bd18ce6b425099ba855">sector_prefix_length</a> = 16 * (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> + 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> +</div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> 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>);</div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a> = malloc(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8a241de4e05e4bd18ce6b425099ba855">sector_prefix_length</a>);</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> <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="l00884" name="l00884"></a><span class="lineno"> 884</span> {</div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for CD sector prefix buffer&quot;</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</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="l00889" name="l00889"></a><span class="lineno"> 889</span> }</div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span> }</div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> </div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</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="l00893" name="l00893"></a><span class="lineno"> 893</span> {</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a12497927c4c5d82f44307d0e8fff0960">sector_suffix_length</a> =</div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> 288 * (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> + 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> +</div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> 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>);</div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a> = malloc(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a12497927c4c5d82f44307d0e8fff0960">sector_suffix_length</a>);</div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> </div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</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="l00900" name="l00900"></a><span class="lineno"> 900</span> {</div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for CD sector suffix buffer&quot;</span>);</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> </div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</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="l00905" name="l00905"></a><span class="lineno"> 905</span> }</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> </div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> empty = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> </div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; length; i++)</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> <span class="keywordflow">if</span>(data[i] != 0)</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> empty = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span> <span class="keywordflow">break</span>;</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> </div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> <span class="keywordflow">if</span>(empty)</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> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">sector_prefix_ddt2</a>[corrected_sector_address] = <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a032ffcff283d253414768f0fa035af4d">SectorStatusNotDumped</a>;</div>
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno"> 920</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a>[corrected_sector_address] = <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a032ffcff283d253414768f0fa035af4d">SectorStatusNotDumped</a>;</div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span> <span class="keywordflow">return</span> <a class="code hl_function" href="write_8c.html#a4b8cd2bb5fd9e2c670a0a13695c6f9e3">aaruf_write_sector</a>(context, sector_address, negative, data + 16, <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a032ffcff283d253414768f0fa035af4d">SectorStatusNotDumped</a>,</div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"> 922</span> 2328);</div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> }</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> <span class="keyword">const</span> <span class="keywordtype">bool</span> form2 = (data[18] &amp; 0x20) == 0x20 || (data[22] &amp; 0x20) == 0x20;</div>
<div class="line"><a id="l00926" name="l00926"></a><span class="lineno"> 926</span> </div>
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"> 927</span> prefix_correct = <span class="keyword">true</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>(data[0x00] != 0x00 || data[0x01] != 0xFF || data[0x02] != 0xFF || data[0x03] != 0xFF ||</div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"> 930</span> data[0x04] != 0xFF || data[0x05] != 0xFF || data[0x06] != 0xFF || data[0x07] != 0xFF ||</div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"> 931</span> data[0x08] != 0xFF || data[0x09] != 0xFF || data[0x0A] != 0xFF || data[0x0B] != 0x00 ||</div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"> 932</span> data[0x0F] != 0x02)</div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"> 933</span> prefix_correct = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"> 934</span> </div>
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span> <span class="keywordflow">if</span>(prefix_correct)</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> <span class="keyword">const</span> <span class="keywordtype">int</span> minute = (data[0x0C] &gt;&gt; 4) * 10 + (data[0x0C] &amp; 0x0F);</div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span> <span class="keyword">const</span> <span class="keywordtype">int</span> second = (data[0x0D] &gt;&gt; 4) * 10 + (data[0x0D] &amp; 0x0F);</div>
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"> 939</span> <span class="keyword">const</span> <span class="keywordtype">int</span> frame = (data[0x0E] &gt;&gt; 4) * 10 + (data[0x0E] &amp; 0x0F);</div>
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"> 940</span> <span class="keyword">const</span> <span class="keywordtype">int</span> stored_lba = minute * 60 * 75 + second * 75 + frame - 150;</div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span> prefix_correct = stored_lba == sector_address;</div>
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</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> <span class="keywordflow">if</span>(prefix_correct)</div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span> 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="l00946" name="l00946"></a><span class="lineno"> 946</span> (uint64_t)(form2 ? <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0aa651286b685968cf12dbf8949c7c209d">SectorStatusMode2Form2Ok</a> : <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0af8e8f72cb68b416548d729560b23ff7d">SectorStatusMode2Form1Ok</a>) &lt;&lt; 60;</div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"> 947</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> {</div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span> <span class="comment">// Copy CD prefix from data buffer to prefix buffer</span></div>
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"> 950</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a> + ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a74672215c728bb14ad860c96969a56dc">sector_prefix_offset</a>, data, 16);</div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">sector_prefix_ddt2</a>[corrected_sector_address] = (uint32_t)(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a74672215c728bb14ad860c96969a56dc">sector_prefix_offset</a> / 16);</div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8317a42c16f1a140053f01808929f43f">sector_prefix_ddt2</a>[corrected_sector_address] |= (uint64_t)<a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0ab92ec5c02efb2acf7fe8a6312fe30c80">SectorStatusErrored</a> &lt;&lt; 60;</div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a74672215c728bb14ad860c96969a56dc">sector_prefix_offset</a> += 16;</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> <span class="comment">// Grow prefix buffer if needed</span></div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a74672215c728bb14ad860c96969a56dc">sector_prefix_offset</a> &gt;= ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8a241de4e05e4bd18ce6b425099ba855">sector_prefix_length</a>)</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> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8a241de4e05e4bd18ce6b425099ba855">sector_prefix_length</a> *= 2;</div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a> = realloc(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a413a99e4e86b7121adca2cfce8f02d63">sector_prefix</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8a241de4e05e4bd18ce6b425099ba855">sector_prefix_length</a>);</div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span> </div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</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="l00962" name="l00962"></a><span class="lineno"> 962</span> {</div>
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"> 963</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for CD sector prefix buffer&quot;</span>);</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</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="l00967" name="l00967"></a><span class="lineno"> 967</span> }</div>
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"> 968</span> }</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>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac6734b2de73a4b6147aadc49bf3e96f8">mode2_subheaders</a> == 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> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac6734b2de73a4b6147aadc49bf3e96f8">mode2_subheaders</a> =</div>
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno"> 974</span> calloc(1, 8 * (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> + 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> +</div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</span> 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>));</div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"> 976</span> </div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</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="l00978" name="l00978"></a><span class="lineno"> 978</span> {</div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for CD mode 2 subheader buffer&quot;</span>);</div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</span> </div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"> 982</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="l00983" name="l00983"></a><span class="lineno"> 983</span> }</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> </div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</span> <span class="keywordflow">if</span>(form2)</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="keyword">const</span> uint32_t computed_edc = <a class="code hl_function" href="decls_8h.html#a67c65c3f2ca5cdf1596c16fa35558df1">aaruf_edc_cd_compute</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a510b72290e2bd50e02ef8a2387aa829d">ecc_cd_context</a>, 0, data, 0x91C, 0x10);</div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> uint32_t edc = 0;</div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> memcpy(&amp;edc, data + 0x92C, <span class="keyword">sizeof</span>(edc));</div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> correct_edc = computed_edc == edc;</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> <span class="keywordflow">if</span>(correct_edc)</div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a>[corrected_sector_address] = (uint64_t)<a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0aa651286b685968cf12dbf8949c7c209d">SectorStatusMode2Form2Ok</a></div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"> 995</span> &lt;&lt; 60;</div>
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(edc == 0)</div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a>[corrected_sector_address] = (uint64_t)<a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a6a9daca7b82c2929eaf1b081ba7c7437">SectorStatusMode2Form2NoCrc</a></div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span> &lt;&lt; 60;</div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> <span class="keywordflow">else</span></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> <span class="comment">// Copy CD suffix from data buffer to suffix buffer</span></div>
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a> + ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9bb3ead5fcb320a1a1b883a9eb1217d8">sector_suffix_offset</a>, data + 2348, 4);</div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> 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="l01004" name="l01004"></a><span class="lineno"> 1004</span> (uint64_t)(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9bb3ead5fcb320a1a1b883a9eb1217d8">sector_suffix_offset</a> / 288);</div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a>[corrected_sector_address] |= (uint64_t)<a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0ab92ec5c02efb2acf7fe8a6312fe30c80">SectorStatusErrored</a> &lt;&lt; 60;</div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9bb3ead5fcb320a1a1b883a9eb1217d8">sector_suffix_offset</a> += 288;</div>
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> </div>
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span> <span class="comment">// Grow suffix buffer if needed</span></div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9bb3ead5fcb320a1a1b883a9eb1217d8">sector_suffix_offset</a> &gt;= ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a12497927c4c5d82f44307d0e8fff0960">sector_suffix_length</a>)</div>
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> {</div>
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a12497927c4c5d82f44307d0e8fff0960">sector_suffix_length</a> *= 2;</div>
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a> = realloc(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a12497927c4c5d82f44307d0e8fff0960">sector_suffix_length</a>);</div>
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> </div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</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="l01015" name="l01015"></a><span class="lineno"> 1015</span> {</div>
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for CD sector suffix buffer&quot;</span>);</div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> </div>
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</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="l01020" name="l01020"></a><span class="lineno"> 1020</span> }</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> </div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> <span class="comment">// Copy subheader from data buffer to subheader buffer</span></div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac6734b2de73a4b6147aadc49bf3e96f8">mode2_subheaders</a> + corrected_sector_address * 8, data + 0x10, 8);</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> <span class="keywordflow">return</span> <a class="code hl_function" href="write_8c.html#a4b8cd2bb5fd9e2c670a0a13695c6f9e3">aaruf_write_sector</a>(context, sector_address, negative, data + 24,</div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> edc == 0 ? <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0a6a9daca7b82c2929eaf1b081ba7c7437">SectorStatusMode2Form2NoCrc</a></div>
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span> : correct_edc ? <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0aa651286b685968cf12dbf8949c7c209d">SectorStatusMode2Form2Ok</a></div>
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> : <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0ab92ec5c02efb2acf7fe8a6312fe30c80">SectorStatusErrored</a>,</div>
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> 2324);</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="keyword">const</span> <span class="keywordtype">bool</span> correct_ecc = <a class="code hl_function" href="decls_8h.html#ab77ca170a2e8d2f0a2a7ea1a8a51690a">aaruf_ecc_cd_is_suffix_correct_mode2</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a510b72290e2bd50e02ef8a2387aa829d">ecc_cd_context</a>, data);</div>
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> <span class="keyword">const</span> uint32_t computed_edc = <a class="code hl_function" href="decls_8h.html#a67c65c3f2ca5cdf1596c16fa35558df1">aaruf_edc_cd_compute</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a510b72290e2bd50e02ef8a2387aa829d">ecc_cd_context</a>, 0, data, 0x808, 0x10);</div>
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> uint32_t edc = 0;</div>
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> memcpy(&amp;edc, data + 0x818, <span class="keyword">sizeof</span>(edc));</div>
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> correct_edc = computed_edc == edc;</div>
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> </div>
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> <span class="keywordflow">if</span>(correct_ecc &amp;&amp; correct_edc)</div>
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a>[corrected_sector_address] = (uint64_t)<a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0af8e8f72cb68b416548d729560b23ff7d">SectorStatusMode2Form1Ok</a> &lt;&lt; 60;</div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> {</div>
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> <span class="comment">// Copy CD suffix from data buffer to suffix buffer</span></div>
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a> + ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9bb3ead5fcb320a1a1b883a9eb1217d8">sector_suffix_offset</a>, data + 2072, 280);</div>
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a>[corrected_sector_address] = (uint64_t)(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9bb3ead5fcb320a1a1b883a9eb1217d8">sector_suffix_offset</a> / 288);</div>
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a46d0ccdc69758165c0468afbd05b9ffe">sector_suffix_ddt2</a>[corrected_sector_address] |= (uint64_t)<a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0ab92ec5c02efb2acf7fe8a6312fe30c80">SectorStatusErrored</a> &lt;&lt; 60;</div>
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9bb3ead5fcb320a1a1b883a9eb1217d8">sector_suffix_offset</a> += 288;</div>
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> </div>
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> <span class="comment">// Grow suffix buffer if needed</span></div>
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9bb3ead5fcb320a1a1b883a9eb1217d8">sector_suffix_offset</a> &gt;= ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a12497927c4c5d82f44307d0e8fff0960">sector_suffix_length</a>)</div>
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span> {</div>
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a12497927c4c5d82f44307d0e8fff0960">sector_suffix_length</a> *= 2;</div>
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a> = realloc(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a64870438f8f560a0b9973dedb3dd7e0e">sector_suffix</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a12497927c4c5d82f44307d0e8fff0960">sector_suffix_length</a>);</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="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="l01056" name="l01056"></a><span class="lineno"> 1056</span> {</div>
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for CD sector suffix buffer&quot;</span>);</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</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="l01061" name="l01061"></a><span class="lineno"> 1061</span> }</div>
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span> }</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> </div>
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span> <span class="comment">// Copy subheader from data buffer to subheader buffer</span></div>
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac6734b2de73a4b6147aadc49bf3e96f8">mode2_subheaders</a> + corrected_sector_address * 8, data + 0x10, 8);</div>
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> <span class="keywordflow">return</span> <a class="code hl_function" href="write_8c.html#a4b8cd2bb5fd9e2c670a0a13695c6f9e3">aaruf_write_sector</a>(</div>
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span> context, sector_address, negative, data + 24,</div>
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> correct_edc &amp;&amp; correct_ecc ? <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0af8e8f72cb68b416548d729560b23ff7d">SectorStatusMode2Form1Ok</a> : <a class="code hl_enumvalue" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0ab92ec5c02efb2acf7fe8a6312fe30c80">SectorStatusErrored</a>, 2048);</div>
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span> }</div>
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> </div>
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span> }</div>
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#abaa37b51ab0a4cc3d5d1a0b4820c8466ad45ebea105994c5fe86200f36d9e6ccd">BlockMedia</a>:</div>
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</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="l01076" name="l01076"></a><span class="lineno"> 1076</span> {</div>
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aac08b59f9e8ecf5e380092edddb0340ec">AppleFileWare</a>:</div>
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa0a8ba83da933d4ad284631784a991f19">AppleProfile</a>:</div>
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aae809315e2cd79c3fd74d1604c38f3ae6">AppleSonyDS</a>:</div>
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa3d003ea60d3ecb7018a671e1302938a0">AppleSonySS</a>:</div>
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aacd42dba7780092d737e7d51a3819cb4b">AppleWidget</a>:</div>
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aab933939a09397f9311004f3dd137226d">PriamDataTower</a>:</div>
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span> {</div>
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span> uint8_t *newTag;</div>
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> <span class="keywordtype">int</span> newTagSize = 0;</div>
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span> </div>
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span> <span class="keywordflow">switch</span>(length - 512)</div>
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span> {</div>
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span> <span class="comment">// Sony tag</span></div>
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span> <span class="keywordflow">case</span> 12:</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> <span class="keyword">const</span> <a class="code hl_struct" href="structsony__tag.html">sony_tag</a> decoded_sony_tag = <a class="code hl_function" href="lisa__tag_8h.html#aaea071654dab25283350e7e49d665f1b">bytes_to_sony_tag</a>(data + 512);</div>
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span> </div>
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa0a8ba83da933d4ad284631784a991f19">AppleProfile</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aac08b59f9e8ecf5e380092edddb0340ec">AppleFileWare</a>)</div>
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span> {</div>
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span> <span class="keyword">const</span> <a class="code hl_struct" href="structprofile__tag.html">profile_tag</a> decoded_profile_tag = <a class="code hl_function" href="lisa__tag_8h.html#a83055b16bdb8bda39e129bd908eeccee">sony_tag_to_profile</a>(decoded_sony_tag);</div>
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> newTag = <a class="code hl_function" href="lisa__tag_8h.html#a8072e3408e9c04743a3ba492d4bdd6fd">profile_tag_to_bytes</a>(decoded_profile_tag);</div>
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> newTagSize = 20;</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">else</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aab933939a09397f9311004f3dd137226d">PriamDataTower</a>)</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> <a class="code hl_struct" href="structpriam__tag.html">priam_tag</a> decoded_priam_tag = <a class="code hl_function" href="lisa__tag_8h.html#add0ff257dc9f464cc1c9cc91ca7fbb80">sony_tag_to_priam</a>(decoded_sony_tag);</div>
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span> newTag = <a class="code hl_function" href="lisa__tag_8h.html#a23a5645f30a45615c752f5fc4ac84c79">priam_tag_to_bytes</a>(decoded_priam_tag);</div>
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span> newTagSize = 24;</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">else</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aae809315e2cd79c3fd74d1604c38f3ae6">AppleSonyDS</a> ||</div>
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa3d003ea60d3ecb7018a671e1302938a0">AppleSonySS</a>)</div>
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> {</div>
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> newTag = malloc(12);</div>
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span> memcpy(newTag, data + 512, 12);</div>
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> newTagSize = 12;</div>
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> }</div>
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span> }</div>
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> <span class="comment">// Profile tag</span></div>
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> <span class="keywordflow">case</span> 20:</div>
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> {</div>
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span> <span class="keyword">const</span> <a class="code hl_struct" href="structprofile__tag.html">profile_tag</a> decoded_profile_tag = <a class="code hl_function" href="lisa__tag_8h.html#abb08e5fe62d9c765bc130d6095e20029">bytes_to_profile_tag</a>(data + 512);</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#ac970291b3449c04221827b9c2c18ac70">image_info</a>.<a class="code hl_variable" href="structImageInfo.html#a76611d5087e0a9fd4d329fac7c9ec3f3">MediaType</a> == <a class="code hl_enumvalue" href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa0a8ba83da933d4ad284631784a991f19">AppleProfile</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aac08b59f9e8ecf5e380092edddb0340ec">AppleFileWare</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> newTag = malloc(20);</div>
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span> memcpy(newTag, data + 512, 20);</div>
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span> newTagSize = 20;</div>
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span> }</div>
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span> <span class="keywordflow">else</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aab933939a09397f9311004f3dd137226d">PriamDataTower</a>)</div>
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span> {</div>
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span> <span class="keyword">const</span> <a class="code hl_struct" href="structpriam__tag.html">priam_tag</a> decoded_priam_tag = <a class="code hl_function" href="lisa__tag_8h.html#af75fdc8589272b20f3dbd74daa97a6a3">profile_tag_to_priam</a>(decoded_profile_tag);</div>
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> newTag = <a class="code hl_function" href="lisa__tag_8h.html#a23a5645f30a45615c752f5fc4ac84c79">priam_tag_to_bytes</a>(decoded_priam_tag);</div>
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> newTagSize = 24;</div>
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span> }</div>
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> <span class="keywordflow">else</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aae809315e2cd79c3fd74d1604c38f3ae6">AppleSonyDS</a> ||</div>
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa3d003ea60d3ecb7018a671e1302938a0">AppleSonySS</a>)</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> <span class="keyword">const</span> <a class="code hl_struct" href="structsony__tag.html">sony_tag</a> decoded_sony_tag = <a class="code hl_function" href="lisa__tag_8h.html#a4eab641ba44ca25b3c2c660814b10421">profile_tag_to_sony</a>(decoded_profile_tag);</div>
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> newTag = <a class="code hl_function" href="lisa__tag_8h.html#a5fe6bd8526b1d35a2d3a74e9bebd67f6">sony_tag_to_bytes</a>(decoded_sony_tag);</div>
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> newTagSize = 12;</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> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span> }</div>
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> <span class="comment">// Priam tag</span></div>
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span> <span class="keywordflow">case</span> 24:</div>
<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span> {</div>
<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span> <span class="keyword">const</span> <a class="code hl_struct" href="structpriam__tag.html">priam_tag</a> decoded_priam_tag = <a class="code hl_function" href="lisa__tag_8h.html#a37de4ed827409b7ffbae995ce49f87ce">bytes_to_priam_tag</a>(data + 512);</div>
<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa0a8ba83da933d4ad284631784a991f19">AppleProfile</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aac08b59f9e8ecf5e380092edddb0340ec">AppleFileWare</a>)</div>
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span> {</div>
<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span> <span class="keyword">const</span> <a class="code hl_struct" href="structprofile__tag.html">profile_tag</a> decoded_profile_tag = <a class="code hl_function" href="lisa__tag_8h.html#a7c7c7b1bb52a9ce59bacb52a22ffc7aa">priam_tag_to_profile</a>(decoded_priam_tag);</div>
<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span> newTag = <a class="code hl_function" href="lisa__tag_8h.html#a8072e3408e9c04743a3ba492d4bdd6fd">profile_tag_to_bytes</a>(decoded_profile_tag);</div>
<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span> newTagSize = 20;</div>
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span> }</div>
<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span> <span class="keywordflow">else</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aab933939a09397f9311004f3dd137226d">PriamDataTower</a>)</div>
<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span> {</div>
<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span> newTag = malloc(24);</div>
<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span> memcpy(newTag, data + 512, 24);</div>
<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</span> newTagSize = 24;</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>(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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aae809315e2cd79c3fd74d1604c38f3ae6">AppleSonyDS</a> ||</div>
<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</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#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa3d003ea60d3ecb7018a671e1302938a0">AppleSonySS</a>)</div>
<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span> {</div>
<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span> <span class="keyword">const</span> <a class="code hl_struct" href="structsony__tag.html">sony_tag</a> decoded_sony_tag = <a class="code hl_function" href="lisa__tag_8h.html#afa2fbcaf16b547222adb47e118ee9dcb">priam_tag_to_sony</a>(decoded_priam_tag);</div>
<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span> newTag = <a class="code hl_function" href="lisa__tag_8h.html#a5fe6bd8526b1d35a2d3a74e9bebd67f6">sony_tag_to_bytes</a>(decoded_sony_tag);</div>
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span> newTagSize = 12;</div>
<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span> }</div>
<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span> <span class="keywordflow">break</span>;</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">case</span> 0:</div>
<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span> newTagSize = 0;</div>
<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"> 1169</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"> 1170</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Incorrect sector size&quot;</span>);</div>
<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l01172" name="l01172"></a><span class="lineno"> 1172</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="l01173" name="l01173"></a><span class="lineno"> 1173</span> }</div>
<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"> 1174</span> </div>
<div class="line"><a id="l01175" name="l01175"></a><span class="lineno"> 1175</span> <span class="keywordflow">if</span>(newTagSize == 0)</div>
<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"> 1176</span> <span class="keywordflow">return</span> <a class="code hl_function" href="write_8c.html#a4b8cd2bb5fd9e2c670a0a13695c6f9e3">aaruf_write_sector</a>(context, sector_address, negative, data, sector_status, 512);</div>
<div class="line"><a id="l01177" name="l01177"></a><span class="lineno"> 1177</span> </div>
<div class="line"><a id="l01178" name="l01178"></a><span class="lineno"> 1178</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="l01179" name="l01179"></a><span class="lineno"> 1179</span> {</div>
<div class="line"><a id="l01180" name="l01180"></a><span class="lineno"> 1180</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> =</div>
<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"> 1181</span> calloc(1, newTagSize * (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>));</div>
<div class="line"><a id="l01182" name="l01182"></a><span class="lineno"> 1182</span> </div>
<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"> 1183</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="l01184" name="l01184"></a><span class="lineno"> 1184</span> {</div>
<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"> 1185</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for sector subchannel DDT&quot;</span>);</div>
<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</span> </div>
<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"> 1187</span> free(newTag);</div>
<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"> 1188</span> </div>
<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</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="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> </div>
<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> + sector_address * newTagSize, newTag, newTagSize);</div>
<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span> free(newTag);</div>
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span> </div>
<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"> 1197</span> <span class="keywordflow">return</span> <a class="code hl_function" href="write_8c.html#a4b8cd2bb5fd9e2c670a0a13695c6f9e3">aaruf_write_sector</a>(context, sector_address, negative, data, sector_status, 512);</div>
<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span> }</div>
<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</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="l01201" name="l01201"></a><span class="lineno"> 1201</span> }</div>
<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"> 1202</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"> 1203</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"> 1204</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="l01205" name="l01205"></a><span class="lineno"> 1205</span> }</div>
<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"> 1206</span> </div>
<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"> 1207</span> <span class="comment">// Fallback return when media type branch does not produce a value (satisfy non-void contract)</span></div>
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</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="l01209" name="l01209"></a><span class="lineno"> 1209</span>}</div>
</div>
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span></div>
<div class="foldopen" id="foldopen01393" data-start="{" data-end="}">
<div class="line"><a id="l01393" name="l01393"></a><span class="lineno"><a class="line" href="internal_8h.html#a2402812f5e04ba16765208c0b70fa6c5"> 1393</a></span>int32_t <a class="code hl_function" href="write_8c.html#a2402812f5e04ba16765208c0b70fa6c5">aaruf_close_current_block</a>(<a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx)</div>
<div class="line"><a id="l01394" name="l01394"></a><span class="lineno"> 1394</span>{</div>
<div class="line"><a id="l01395" name="l01395"></a><span class="lineno"> 1395</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l01396" name="l01396"></a><span class="lineno"> 1396</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>) <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="l01397" name="l01397"></a><span class="lineno"> 1397</span> </div>
<div class="line"><a id="l01398" name="l01398"></a><span class="lineno"> 1398</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l01399" name="l01399"></a><span class="lineno"> 1399</span> <span class="keywordflow">if</span>(!ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a6f61f9ea20f4e3b791a0d6388dd43651">is_writing</a>) <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1df49eaa19eaa14891b6aaab966a9bc6">AARUF_READ_ONLY</a>;</div>
<div class="line"><a id="l01400" name="l01400"></a><span class="lineno"> 1400</span> </div>
<div class="line"><a id="l01401" name="l01401"></a><span class="lineno"> 1401</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a> = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a6711c6fceb17675a6ff3023845a9728a">current_block_offset</a> * ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb">sectorSize</a>;</div>
<div class="line"><a id="l01402" name="l01402"></a><span class="lineno"> 1402</span> </div>
<div class="line"><a id="l01403" name="l01403"></a><span class="lineno"> 1403</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Initializing CRC64 context&quot;</span>);</div>
<div class="line"><a id="l01404" name="l01404"></a><span class="lineno"> 1404</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aae3f895815d8ace4d1eec6973f9b48c3">crc64_context</a> = <a class="code hl_function" href="decls_8h.html#a66567ca64e31a687d4982cb254b45196">aaruf_crc64_init</a>();</div>
<div class="line"><a id="l01405" name="l01405"></a><span class="lineno"> 1405</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Updating CRC64&quot;</span>);</div>
<div class="line"><a id="l01406" name="l01406"></a><span class="lineno"> 1406</span> <a class="code hl_function" href="decls_8h.html#a1fb4423a841ccd728e3ad0d028cbc9b4">aaruf_crc64_update</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aae3f895815d8ace4d1eec6973f9b48c3">crc64_context</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a80b7de958916f11cc61ef6871a376a92">writing_buffer</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>);</div>
<div class="line"><a id="l01407" name="l01407"></a><span class="lineno"> 1407</span> <a class="code hl_function" href="decls_8h.html#ae48cfb59c6585e9ffd4cd1a97044891f">aaruf_crc64_final</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aae3f895815d8ace4d1eec6973f9b48c3">crc64_context</a>, &amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ab4d9e3a871e0c7f12a881017dac4ca12">crc64</a>);</div>
<div class="line"><a id="l01408" name="l01408"></a><span class="lineno"> 1408</span> </div>
<div class="line"><a id="l01409" name="l01409"></a><span class="lineno"> 1409</span> uint8_t lzma_properties[<a class="code hl_define" href="consts_8h.html#a25fd08252b97a0230d3efc899bddd240">LZMA_PROPERTIES_LENGTH</a>] = {0};</div>
<div class="line"><a id="l01410" name="l01410"></a><span class="lineno"> 1410</span> uint8_t *cmp_buffer = NULL;</div>
<div class="line"><a id="l01411" name="l01411"></a><span class="lineno"> 1411</span> </div>
<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"> 1412</span> <span class="keywordflow">switch</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">compression</a>)</div>
<div class="line"><a id="l01413" name="l01413"></a><span class="lineno"> 1413</span> {</div>
<div class="line"><a id="l01414" name="l01414"></a><span class="lineno"> 1414</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263ac9d3e887722f2bc482bcca9d41c512af">None</a>:</div>
<div class="line"><a id="l01415" name="l01415"></a><span class="lineno"> 1415</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01416" name="l01416"></a><span class="lineno"> 1416</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263adce52e91e4d88a577ecf67cbe7beac31">Flac</a>:</div>
<div class="line"><a id="l01417" name="l01417"></a><span class="lineno"> 1417</span> cmp_buffer = malloc(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a> * 2);</div>
<div class="line"><a id="l01418" name="l01418"></a><span class="lineno"> 1418</span> <span class="keywordflow">if</span>(cmp_buffer == NULL)</div>
<div class="line"><a id="l01419" name="l01419"></a><span class="lineno"> 1419</span> {</div>
<div class="line"><a id="l01420" name="l01420"></a><span class="lineno"> 1420</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate buffer for compressed data&quot;</span>);</div>
<div class="line"><a id="l01421" name="l01421"></a><span class="lineno"> 1421</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="l01422" name="l01422"></a><span class="lineno"> 1422</span> }</div>
<div class="line"><a id="l01423" name="l01423"></a><span class="lineno"> 1423</span> <span class="keyword">const</span> uint32_t current_samples = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a6711c6fceb17675a6ff3023845a9728a">current_block_offset</a> * <a class="code hl_define" href="consts_8h.html#a44401191f17a7c09a05e57ff9e5cff24">SAMPLES_PER_SECTOR</a>;</div>
<div class="line"><a id="l01424" name="l01424"></a><span class="lineno"> 1424</span> uint32_t flac_block_size = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a6711c6fceb17675a6ff3023845a9728a">current_block_offset</a> * <a class="code hl_define" href="consts_8h.html#a44401191f17a7c09a05e57ff9e5cff24">SAMPLES_PER_SECTOR</a>;</div>
<div class="line"><a id="l01425" name="l01425"></a><span class="lineno"> 1425</span> </div>
<div class="line"><a id="l01426" name="l01426"></a><span class="lineno"> 1426</span> <span class="keywordflow">if</span>(flac_block_size &gt; <a class="code hl_define" href="consts_8h.html#a207a31e861ea8e3a4f5ef52c13b42b3d">MAX_FLAKE_BLOCK</a>) flac_block_size = <a class="code hl_define" href="consts_8h.html#a207a31e861ea8e3a4f5ef52c13b42b3d">MAX_FLAKE_BLOCK</a>;</div>
<div class="line"><a id="l01427" name="l01427"></a><span class="lineno"> 1427</span> <span class="keywordflow">if</span>(flac_block_size &lt; <a class="code hl_define" href="consts_8h.html#a3fd3617b4eb7e9548e0fd0ca8990e44a">MIN_FLAKE_BLOCK</a>) flac_block_size = <a class="code hl_define" href="consts_8h.html#a3fd3617b4eb7e9548e0fd0ca8990e44a">MIN_FLAKE_BLOCK</a>;</div>
<div class="line"><a id="l01428" name="l01428"></a><span class="lineno"> 1428</span> </div>
<div class="line"><a id="l01429" name="l01429"></a><span class="lineno"> 1429</span> <span class="keyword">const</span> <span class="keywordtype">long</span> remaining = current_samples % flac_block_size;</div>
<div class="line"><a id="l01430" name="l01430"></a><span class="lineno"> 1430</span> </div>
<div class="line"><a id="l01431" name="l01431"></a><span class="lineno"> 1431</span> <span class="comment">// Fill FLAC block</span></div>
<div class="line"><a id="l01432" name="l01432"></a><span class="lineno"> 1432</span> <span class="keywordflow">if</span>(remaining != 0)</div>
<div class="line"><a id="l01433" name="l01433"></a><span class="lineno"> 1433</span> <span class="keywordflow">for</span>(<span class="keywordtype">int</span> r = 0; r &lt; remaining * 4; r++) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a80b7de958916f11cc61ef6871a376a92">writing_buffer</a>[ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aab497e0a30c0001b2ca181467973927c">writing_buffer_position</a> + r] = 0;</div>
<div class="line"><a id="l01434" name="l01434"></a><span class="lineno"> 1434</span> </div>
<div class="line"><a id="l01435" name="l01435"></a><span class="lineno"> 1435</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a> = <a class="code hl_function" href="decls_8h.html#a102023fe64e4bd24cd6d4124f0d74e54">aaruf_flac_encode_redbook_buffer</a>(</div>
<div class="line"><a id="l01436" name="l01436"></a><span class="lineno"> 1436</span> cmp_buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a> * 2, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a80b7de958916f11cc61ef6871a376a92">writing_buffer</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>,</div>
<div class="line"><a id="l01437" name="l01437"></a><span class="lineno"> 1437</span> flac_block_size, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="stringliteral">&quot;hamming&quot;</span>, 12, 15, <span class="keyword">true</span>, <span class="keyword">false</span>, 0, 8, <span class="stringliteral">&quot;Aaru&quot;</span>, 4);</div>
<div class="line"><a id="l01438" name="l01438"></a><span class="lineno"> 1438</span> </div>
<div class="line"><a id="l01439" name="l01439"></a><span class="lineno"> 1439</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a> &gt;= ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>)</div>
<div class="line"><a id="l01440" name="l01440"></a><span class="lineno"> 1440</span> {</div>
<div class="line"><a id="l01441" name="l01441"></a><span class="lineno"> 1441</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">compression</a> = <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263ac9d3e887722f2bc482bcca9d41c512af">None</a>;</div>
<div class="line"><a id="l01442" name="l01442"></a><span class="lineno"> 1442</span> free(cmp_buffer);</div>
<div class="line"><a id="l01443" name="l01443"></a><span class="lineno"> 1443</span> }</div>
<div class="line"><a id="l01444" name="l01444"></a><span class="lineno"> 1444</span> </div>
<div class="line"><a id="l01445" name="l01445"></a><span class="lineno"> 1445</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01446" name="l01446"></a><span class="lineno"> 1446</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263a002db7938c70152bf9af1797cb87c32f">Lzma</a>:</div>
<div class="line"><a id="l01447" name="l01447"></a><span class="lineno"> 1447</span> cmp_buffer = malloc(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a> * 2);</div>
<div class="line"><a id="l01448" name="l01448"></a><span class="lineno"> 1448</span> <span class="keywordflow">if</span>(cmp_buffer == NULL)</div>
<div class="line"><a id="l01449" name="l01449"></a><span class="lineno"> 1449</span> {</div>
<div class="line"><a id="l01450" name="l01450"></a><span class="lineno"> 1450</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate buffer for compressed data&quot;</span>);</div>
<div class="line"><a id="l01451" name="l01451"></a><span class="lineno"> 1451</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="l01452" name="l01452"></a><span class="lineno"> 1452</span> }</div>
<div class="line"><a id="l01453" name="l01453"></a><span class="lineno"> 1453</span> </div>
<div class="line"><a id="l01454" name="l01454"></a><span class="lineno"> 1454</span> <span class="keywordtype">size_t</span> dst_size = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a> * 2;</div>
<div class="line"><a id="l01455" name="l01455"></a><span class="lineno"> 1455</span> <span class="keywordtype">size_t</span> props_size = <a class="code hl_define" href="consts_8h.html#a25fd08252b97a0230d3efc899bddd240">LZMA_PROPERTIES_LENGTH</a>;</div>
<div class="line"><a id="l01456" name="l01456"></a><span class="lineno"> 1456</span> <a class="code hl_function" href="decls_8h.html#a0e69fad529047d6fe9440b1fc66c3f85">aaruf_lzma_encode_buffer</a>(cmp_buffer, &amp;dst_size, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a80b7de958916f11cc61ef6871a376a92">writing_buffer</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>,</div>
<div class="line"><a id="l01457" name="l01457"></a><span class="lineno"> 1457</span> lzma_properties, &amp;props_size, 9, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#adc67f6a6ef1602648bb064d47eb1fe88">lzma_dict_size</a>, 4, 0, 2, 273, 8);</div>
<div class="line"><a id="l01458" name="l01458"></a><span class="lineno"> 1458</span> </div>
<div class="line"><a id="l01459" name="l01459"></a><span class="lineno"> 1459</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a> = (uint32_t)dst_size;</div>
<div class="line"><a id="l01460" name="l01460"></a><span class="lineno"> 1460</span> </div>
<div class="line"><a id="l01461" name="l01461"></a><span class="lineno"> 1461</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a> &gt;= ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>)</div>
<div class="line"><a id="l01462" name="l01462"></a><span class="lineno"> 1462</span> {</div>
<div class="line"><a id="l01463" name="l01463"></a><span class="lineno"> 1463</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">compression</a> = <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263ac9d3e887722f2bc482bcca9d41c512af">None</a>;</div>
<div class="line"><a id="l01464" name="l01464"></a><span class="lineno"> 1464</span> free(cmp_buffer);</div>
<div class="line"><a id="l01465" name="l01465"></a><span class="lineno"> 1465</span> }</div>
<div class="line"><a id="l01466" name="l01466"></a><span class="lineno"> 1466</span> </div>
<div class="line"><a id="l01467" name="l01467"></a><span class="lineno"> 1467</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01468" name="l01468"></a><span class="lineno"> 1468</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l01469" name="l01469"></a><span class="lineno"> 1469</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid compression type&quot;</span>);</div>
<div class="line"><a id="l01470" name="l01470"></a><span class="lineno"> 1470</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a0ebe2ffd752f049954b4125ee8840bb5">AARUF_ERROR_CANNOT_WRITE_BLOCK_DATA</a>;</div>
<div class="line"><a id="l01471" name="l01471"></a><span class="lineno"> 1471</span> }</div>
<div class="line"><a id="l01472" name="l01472"></a><span class="lineno"> 1472</span> </div>
<div class="line"><a id="l01473" name="l01473"></a><span class="lineno"> 1473</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">compression</a> == <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263ac9d3e887722f2bc482bcca9d41c512af">None</a>)</div>
<div class="line"><a id="l01474" name="l01474"></a><span class="lineno"> 1474</span> {</div>
<div class="line"><a id="l01475" name="l01475"></a><span class="lineno"> 1475</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a8ff40eae6c49f0d9b49825f75e1e2bf8">cmpCrc64</a> = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ab4d9e3a871e0c7f12a881017dac4ca12">crc64</a>;</div>
<div class="line"><a id="l01476" name="l01476"></a><span class="lineno"> 1476</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a> = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>;</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="keywordflow">else</span></div>
<div class="line"><a id="l01479" name="l01479"></a><span class="lineno"> 1479</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a8ff40eae6c49f0d9b49825f75e1e2bf8">cmpCrc64</a> = <a class="code hl_function" href="decls_8h.html#a0fee4834bf0747bcd933c4e754aa4692">aaruf_crc64_data</a>(cmp_buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a>);</div>
<div class="line"><a id="l01480" name="l01480"></a><span class="lineno"> 1480</span> </div>
<div class="line"><a id="l01481" name="l01481"></a><span class="lineno"> 1481</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">compression</a> == <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263a002db7938c70152bf9af1797cb87c32f">Lzma</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<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="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="comment">// Add to index</span></div>
<div class="line"><a id="l01484" name="l01484"></a><span class="lineno"> 1484</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Adding block to index&quot;</span>);</div>
<div class="line"><a id="l01485" name="l01485"></a><span class="lineno"> 1485</span> <a class="code hl_struct" href="structIndexEntry.html">IndexEntry</a> index_entry;</div>
<div class="line"><a id="l01486" name="l01486"></a><span class="lineno"> 1486</span> index_entry.<a class="code hl_variable" href="structIndexEntry.html#a4b5c7115ac83019c3f77c6f047e5f75e">blockType</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a5a0811c5ee97536aef900cecb8787713">DataBlock</a>;</div>
<div class="line"><a id="l01487" name="l01487"></a><span class="lineno"> 1487</span> index_entry.<a class="code hl_variable" href="structIndexEntry.html#ae5d35082a756e0388efbf5fabbe93d10">dataType</a> = <a class="code hl_enumvalue" href="enums_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6a73bb26133ccd01972725933b00ec3a06">UserData</a>;</div>
<div class="line"><a id="l01488" name="l01488"></a><span class="lineno"> 1488</span> index_entry.<a class="code hl_variable" href="structIndexEntry.html#a854951a64192d7e4cdcfa6dd6fd2b3ea">offset</a> = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a939b702f75e80062bc635add4c3ab142">next_block_position</a>;</div>
<div class="line"><a id="l01489" name="l01489"></a><span class="lineno"> 1489</span> </div>
<div class="line"><a id="l01490" name="l01490"></a><span class="lineno"> 1490</span> utarray_push_back(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab97a719a5b4186695b67143db7376152">index_entries</a>, &amp;index_entry);</div>
<div class="line"><a id="l01491" name="l01491"></a><span class="lineno"> 1491</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Block added to index at offset %&quot;</span> PRIu64, index_entry.<a class="code hl_variable" href="structIndexEntry.html#a854951a64192d7e4cdcfa6dd6fd2b3ea">offset</a>);</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> <span class="comment">// Write block header to file</span></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="comment">// Move to expected block position</span></div>
<div class="line"><a id="l01496" name="l01496"></a><span class="lineno"> 1496</span> fseek(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a939b702f75e80062bc635add4c3ab142">next_block_position</a>, SEEK_SET);</div>
<div class="line"><a id="l01497" name="l01497"></a><span class="lineno"> 1497</span> </div>
<div class="line"><a id="l01498" name="l01498"></a><span class="lineno"> 1498</span> <span class="comment">// Write block header</span></div>
<div class="line"><a id="l01499" name="l01499"></a><span class="lineno"> 1499</span> <span class="keywordflow">if</span>(fwrite(&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structBlockHeader.html">BlockHeader</a>), 1, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>) != 1)</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#af86dd78bcb33b547113460822ed96c3e">AARUF_ERROR_CANNOT_WRITE_BLOCK_HEADER</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> <span class="comment">// Write block data</span></div>
<div class="line"><a id="l01503" name="l01503"></a><span class="lineno"> 1503</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">compression</a> == <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263a002db7938c70152bf9af1797cb87c32f">Lzma</a> &amp;&amp;</div>
<div class="line"><a id="l01504" name="l01504"></a><span class="lineno"> 1504</span> fwrite(lzma_properties, <a class="code hl_define" href="consts_8h.html#a25fd08252b97a0230d3efc899bddd240">LZMA_PROPERTIES_LENGTH</a>, 1, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>) != 1)</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> free(cmp_buffer);</div>
<div class="line"><a id="l01507" name="l01507"></a><span class="lineno"> 1507</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a0ebe2ffd752f049954b4125ee8840bb5">AARUF_ERROR_CANNOT_WRITE_BLOCK_DATA</a>;</div>
<div class="line"><a id="l01508" name="l01508"></a><span class="lineno"> 1508</span> }</div>
<div class="line"><a id="l01509" name="l01509"></a><span class="lineno"> 1509</span> </div>
<div class="line"><a id="l01510" name="l01510"></a><span class="lineno"> 1510</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">compression</a> == <a class="code hl_enumvalue" href="enums_8h.html#affec749ed88365143745313ae9168263ac9d3e887722f2bc482bcca9d41c512af">None</a>)</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>(fwrite(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a80b7de958916f11cc61ef6871a376a92">writing_buffer</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">length</a>, 1, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>) != 1)</div>
<div class="line"><a id="l01513" name="l01513"></a><span class="lineno"> 1513</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a0ebe2ffd752f049954b4125ee8840bb5">AARUF_ERROR_CANNOT_WRITE_BLOCK_DATA</a>;</div>
<div class="line"><a id="l01514" name="l01514"></a><span class="lineno"> 1514</span> }</div>
<div class="line"><a id="l01515" name="l01515"></a><span class="lineno"> 1515</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01516" name="l01516"></a><span class="lineno"> 1516</span> {</div>
<div class="line"><a id="l01517" name="l01517"></a><span class="lineno"> 1517</span> <span class="keywordflow">if</span>(fwrite(cmp_buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a>, 1, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab516fae594bde4f76b75488d0a3ca3a8">imageStream</a>) != 1)</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> free(cmp_buffer);</div>
<div class="line"><a id="l01520" name="l01520"></a><span class="lineno"> 1520</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a0ebe2ffd752f049954b4125ee8840bb5">AARUF_ERROR_CANNOT_WRITE_BLOCK_DATA</a>;</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> </div>
<div class="line"><a id="l01523" name="l01523"></a><span class="lineno"> 1523</span> free(cmp_buffer);</div>
<div class="line"><a id="l01524" name="l01524"></a><span class="lineno"> 1524</span> }</div>
<div class="line"><a id="l01525" name="l01525"></a><span class="lineno"> 1525</span> </div>
<div class="line"><a id="l01526" name="l01526"></a><span class="lineno"> 1526</span> <span class="comment">// Update nextBlockPosition to point to the next available aligned position</span></div>
<div class="line"><a id="l01527" name="l01527"></a><span class="lineno"> 1527</span> <span class="keyword">const</span> uint64_t block_total_size = <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#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>.<a class="code hl_variable" href="structBlockHeader.html#a0ee87beb4362823260f70a87ac17379f">cmpLength</a>;</div>
<div class="line"><a id="l01528" name="l01528"></a><span class="lineno"> 1528</span> <span class="keyword">const</span> uint64_t alignment_mask = (1ULL &lt;&lt; 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#aa67b097c3a20f926ede495d27152f1c0">blockAlignmentShift</a>) - 1;</div>
<div class="line"><a id="l01529" name="l01529"></a><span class="lineno"> 1529</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a939b702f75e80062bc635add4c3ab142">next_block_position</a> = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a939b702f75e80062bc635add4c3ab142">next_block_position</a> + block_total_size + alignment_mask &amp; ~alignment_mask;</div>
<div class="line"><a id="l01530" name="l01530"></a><span class="lineno"> 1530</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Updated nextBlockPosition to %&quot;</span> PRIu64, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a939b702f75e80062bc635add4c3ab142">next_block_position</a>);</div>
<div class="line"><a id="l01531" name="l01531"></a><span class="lineno"> 1531</span> </div>
<div class="line"><a id="l01532" name="l01532"></a><span class="lineno"> 1532</span> <span class="comment">// Clear values</span></div>
<div class="line"><a id="l01533" name="l01533"></a><span class="lineno"> 1533</span> free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a80b7de958916f11cc61ef6871a376a92">writing_buffer</a>);</div>
<div class="line"><a id="l01534" name="l01534"></a><span class="lineno"> 1534</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a80b7de958916f11cc61ef6871a376a92">writing_buffer</a> = NULL;</div>
<div class="line"><a id="l01535" name="l01535"></a><span class="lineno"> 1535</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a6711c6fceb17675a6ff3023845a9728a">current_block_offset</a> = 0;</div>
<div class="line"><a id="l01536" name="l01536"></a><span class="lineno"> 1536</span> memset(&amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">current_block_header</a>, 0, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structBlockHeader.html">BlockHeader</a>));</div>
<div class="line"><a id="l01537" name="l01537"></a><span class="lineno"> 1537</span> <a class="code hl_function" href="decls_8h.html#a4943569a8623eb2e3e0adc276c433097">aaruf_crc64_free</a>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aae3f895815d8ace4d1eec6973f9b48c3">crc64_context</a>);</div>
<div class="line"><a id="l01538" name="l01538"></a><span class="lineno"> 1538</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aab497e0a30c0001b2ca181467973927c">writing_buffer_position</a> = 0;</div>
<div class="line"><a id="l01539" name="l01539"></a><span class="lineno"> 1539</span> </div>
<div class="line"><a id="l01540" name="l01540"></a><span class="lineno"> 1540</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="l01541" name="l01541"></a><span class="lineno"> 1541</span>}</div>
</div>
<div class="line"><a id="l01542" name="l01542"></a><span class="lineno"> 1542</span></div>
<div class="foldopen" id="foldopen01790" data-start="{" data-end="}">
<div class="line"><a id="l01790" name="l01790"></a><span class="lineno"><a class="line" href="decls_8h.html#aa041a789fbae70c1e1ec3e38f1ab369d"> 1790</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="write_8c.html#a35c5d9f10c59a1efe8f625963c9e91ba">aaruf_write_media_tag</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> int32_t type,</div>
<div class="line"><a id="l01791" name="l01791"></a><span class="lineno"> 1791</span> <span class="keyword">const</span> uint32_t length)</div>
<div class="line"><a id="l01792" name="l01792"></a><span class="lineno"> 1792</span>{</div>
<div class="line"><a id="l01793" name="l01793"></a><span class="lineno"> 1793</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_write_media_tag(%p, %p, %d, %d)&quot;</span>, context, data, type, length);</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> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l01796" name="l01796"></a><span class="lineno"> 1796</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l01797" name="l01797"></a><span class="lineno"> 1797</span> {</div>
<div class="line"><a id="l01798" name="l01798"></a><span class="lineno"> 1798</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="l01799" name="l01799"></a><span class="lineno"> 1799</span> </div>
<div class="line"><a id="l01800" name="l01800"></a><span class="lineno"> 1800</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_media_tag() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01801" name="l01801"></a><span class="lineno"> 1801</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="l01802" name="l01802"></a><span class="lineno"> 1802</span> }</div>
<div class="line"><a id="l01803" name="l01803"></a><span class="lineno"> 1803</span> </div>
<div class="line"><a id="l01804" name="l01804"></a><span class="lineno"> 1804</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</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="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l01807" name="l01807"></a><span class="lineno"> 1807</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="l01808" name="l01808"></a><span class="lineno"> 1808</span> {</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;Invalid context&quot;</span>);</div>
<div class="line"><a id="l01810" name="l01810"></a><span class="lineno"> 1810</span> </div>
<div class="line"><a id="l01811" name="l01811"></a><span class="lineno"> 1811</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_media_tag() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01812" name="l01812"></a><span class="lineno"> 1812</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="l01813" name="l01813"></a><span class="lineno"> 1813</span> }</div>
<div class="line"><a id="l01814" name="l01814"></a><span class="lineno"> 1814</span> </div>
<div class="line"><a id="l01815" name="l01815"></a><span class="lineno"> 1815</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l01816" name="l01816"></a><span class="lineno"> 1816</span> <span class="keywordflow">if</span>(!ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a6f61f9ea20f4e3b791a0d6388dd43651">is_writing</a>)</div>
<div class="line"><a id="l01817" name="l01817"></a><span class="lineno"> 1817</span> {</div>
<div class="line"><a id="l01818" name="l01818"></a><span class="lineno"> 1818</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Trying to write a read-only image&quot;</span>);</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_media_tag() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l01821" name="l01821"></a><span class="lineno"> 1821</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1df49eaa19eaa14891b6aaab966a9bc6">AARUF_READ_ONLY</a>;</div>
<div class="line"><a id="l01822" name="l01822"></a><span class="lineno"> 1822</span> }</div>
<div class="line"><a id="l01823" name="l01823"></a><span class="lineno"> 1823</span> </div>
<div class="line"><a id="l01824" name="l01824"></a><span class="lineno"> 1824</span> <span class="keywordflow">if</span>(data == NULL || length == 0)</div>
<div class="line"><a id="l01825" name="l01825"></a><span class="lineno"> 1825</span> {</div>
<div class="line"><a id="l01826" name="l01826"></a><span class="lineno"> 1826</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid data or length&quot;</span>);</div>
<div class="line"><a id="l01827" name="l01827"></a><span class="lineno"> 1827</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="l01828" name="l01828"></a><span class="lineno"> 1828</span> }</div>
<div class="line"><a id="l01829" name="l01829"></a><span class="lineno"> 1829</span> </div>
<div class="line"><a id="l01830" name="l01830"></a><span class="lineno"> 1830</span> uint8_t *new_data = malloc(length);</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>(new_data == 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> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for media tag&quot;</span>);</div>
<div class="line"><a id="l01835" name="l01835"></a><span class="lineno"> 1835</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="l01836" name="l01836"></a><span class="lineno"> 1836</span> }</div>
<div class="line"><a id="l01837" name="l01837"></a><span class="lineno"> 1837</span> memcpy(new_data, data, length);</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> <a class="code hl_struct" href="structmediaTagEntry.html">mediaTagEntry</a> *media_tag = malloc(<span class="keyword">sizeof</span>(<a class="code hl_struct" href="structmediaTagEntry.html">mediaTagEntry</a>));</div>
<div class="line"><a id="l01840" name="l01840"></a><span class="lineno"> 1840</span> <a class="code hl_struct" href="structmediaTagEntry.html">mediaTagEntry</a> *old_media_tag = 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> <span class="keywordflow">if</span>(media_tag == NULL)</div>
<div class="line"><a id="l01843" name="l01843"></a><span class="lineno"> 1843</span> {</div>
<div class="line"><a id="l01844" name="l01844"></a><span class="lineno"> 1844</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Cannot allocate memory for media tag entry.&quot;</span>);</div>
<div class="line"><a id="l01845" name="l01845"></a><span class="lineno"> 1845</span> free(new_data);</div>
<div class="line"><a id="l01846" name="l01846"></a><span class="lineno"> 1846</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="l01847" name="l01847"></a><span class="lineno"> 1847</span> }</div>
<div class="line"><a id="l01848" name="l01848"></a><span class="lineno"> 1848</span> </div>
<div class="line"><a id="l01849" name="l01849"></a><span class="lineno"> 1849</span> memset(media_tag, 0, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structmediaTagEntry.html">mediaTagEntry</a>));</div>
<div class="line"><a id="l01850" name="l01850"></a><span class="lineno"> 1850</span> </div>
<div class="line"><a id="l01851" name="l01851"></a><span class="lineno"> 1851</span> media_tag-&gt;<a class="code hl_variable" href="structmediaTagEntry.html#a95bf0de1de367f90491367921069c9e2">type</a> = type;</div>
<div class="line"><a id="l01852" name="l01852"></a><span class="lineno"> 1852</span> media_tag-&gt;<a class="code hl_variable" href="structmediaTagEntry.html#a334fc65b37efdfb624e804e98c398927">data</a> = new_data;</div>
<div class="line"><a id="l01853" name="l01853"></a><span class="lineno"> 1853</span> media_tag-&gt;<a class="code hl_variable" href="structmediaTagEntry.html#aa96c6684fd98145d0089d72957d2afa7">length</a> = length;</div>
<div class="line"><a id="l01854" name="l01854"></a><span class="lineno"> 1854</span> </div>
<div class="line"><a id="l01855" name="l01855"></a><span class="lineno"> 1855</span> HASH_REPLACE_INT(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a8b769e9fb9467aa11d4a2936cf5cf5ed">mediaTags</a>, type, media_tag, old_media_tag);</div>
<div class="line"><a id="l01856" name="l01856"></a><span class="lineno"> 1856</span> </div>
<div class="line"><a id="l01857" name="l01857"></a><span class="lineno"> 1857</span> <span class="keywordflow">if</span>(old_media_tag != NULL)</div>
<div class="line"><a id="l01858" name="l01858"></a><span class="lineno"> 1858</span> {</div>
<div class="line"><a id="l01859" name="l01859"></a><span class="lineno"> 1859</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Replaced media tag with type %d&quot;</span>, old_media_tag-&gt;<a class="code hl_variable" href="structmediaTagEntry.html#a95bf0de1de367f90491367921069c9e2">type</a>);</div>
<div class="line"><a id="l01860" name="l01860"></a><span class="lineno"> 1860</span> free(old_media_tag-&gt;<a class="code hl_variable" href="structmediaTagEntry.html#a334fc65b37efdfb624e804e98c398927">data</a>);</div>
<div class="line"><a id="l01861" name="l01861"></a><span class="lineno"> 1861</span> free(old_media_tag);</div>
<div class="line"><a id="l01862" name="l01862"></a><span class="lineno"> 1862</span> old_media_tag = NULL;</div>
<div class="line"><a id="l01863" name="l01863"></a><span class="lineno"> 1863</span> }</div>
<div class="line"><a id="l01864" name="l01864"></a><span class="lineno"> 1864</span> </div>
<div class="line"><a id="l01865" name="l01865"></a><span class="lineno"> 1865</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_media_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l01866" name="l01866"></a><span class="lineno"> 1866</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="l01867" name="l01867"></a><span class="lineno"> 1867</span>}</div>
</div>
<div class="line"><a id="l01868" name="l01868"></a><span class="lineno"> 1868</span></div>
<div class="foldopen" id="foldopen02059" data-start="{" data-end="}">
<div class="line"><a id="l02059" name="l02059"></a><span class="lineno"><a class="line" href="decls_8h.html#a6a8994cd006711347fb03cec465eafa6"> 2059</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="write_8c.html#a2dc7f13b0cd44153f1456d3ed4c15a0c">aaruf_write_sector_tag</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint64_t sector_address, <span class="keyword">const</span> <span class="keywordtype">bool</span> negative,</div>
<div class="line"><a id="l02060" name="l02060"></a><span class="lineno"> 2060</span> <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> <span class="keywordtype">size_t</span> length, <span class="keyword">const</span> int32_t tag)</div>
<div class="line"><a id="l02061" name="l02061"></a><span class="lineno"> 2061</span>{</div>
<div class="line"><a id="l02062" name="l02062"></a><span class="lineno"> 2062</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_write_sector_tag(%p, %&quot;</span> PRIu64 <span class="stringliteral">&quot;, %d, %p, %zu, %d)&quot;</span>, context, sector_address, negative, data,</div>
<div class="line"><a id="l02063" name="l02063"></a><span class="lineno"> 2063</span> length, tag);</div>
<div class="line"><a id="l02064" name="l02064"></a><span class="lineno"> 2064</span> </div>
<div class="line"><a id="l02065" name="l02065"></a><span class="lineno"> 2065</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l02066" name="l02066"></a><span class="lineno"> 2066</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l02067" name="l02067"></a><span class="lineno"> 2067</span> {</div>
<div class="line"><a id="l02068" name="l02068"></a><span class="lineno"> 2068</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="l02069" name="l02069"></a><span class="lineno"> 2069</span> </div>
<div class="line"><a id="l02070" name="l02070"></a><span class="lineno"> 2070</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02071" name="l02071"></a><span class="lineno"> 2071</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="l02072" name="l02072"></a><span class="lineno"> 2072</span> }</div>
<div class="line"><a id="l02073" name="l02073"></a><span class="lineno"> 2073</span> </div>
<div class="line"><a id="l02074" name="l02074"></a><span class="lineno"> 2074</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l02075" name="l02075"></a><span class="lineno"> 2075</span> </div>
<div class="line"><a id="l02076" name="l02076"></a><span class="lineno"> 2076</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l02077" name="l02077"></a><span class="lineno"> 2077</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="l02078" name="l02078"></a><span class="lineno"> 2078</span> {</div>
<div class="line"><a id="l02079" name="l02079"></a><span class="lineno"> 2079</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="l02080" name="l02080"></a><span class="lineno"> 2080</span> </div>
<div class="line"><a id="l02081" name="l02081"></a><span class="lineno"> 2081</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02082" name="l02082"></a><span class="lineno"> 2082</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="l02083" name="l02083"></a><span class="lineno"> 2083</span> }</div>
<div class="line"><a id="l02084" name="l02084"></a><span class="lineno"> 2084</span> </div>
<div class="line"><a id="l02085" name="l02085"></a><span class="lineno"> 2085</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l02086" name="l02086"></a><span class="lineno"> 2086</span> <span class="keywordflow">if</span>(!ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a6f61f9ea20f4e3b791a0d6388dd43651">is_writing</a>)</div>
<div class="line"><a id="l02087" name="l02087"></a><span class="lineno"> 2087</span> {</div>
<div class="line"><a id="l02088" name="l02088"></a><span class="lineno"> 2088</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Trying to write a read-only image&quot;</span>);</div>
<div class="line"><a id="l02089" name="l02089"></a><span class="lineno"> 2089</span> </div>
<div class="line"><a id="l02090" name="l02090"></a><span class="lineno"> 2090</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l02091" name="l02091"></a><span class="lineno"> 2091</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1df49eaa19eaa14891b6aaab966a9bc6">AARUF_READ_ONLY</a>;</div>
<div class="line"><a id="l02092" name="l02092"></a><span class="lineno"> 2092</span> }</div>
<div class="line"><a id="l02093" name="l02093"></a><span class="lineno"> 2093</span> </div>
<div class="line"><a id="l02094" name="l02094"></a><span class="lineno"> 2094</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="l02095" name="l02095"></a><span class="lineno"> 2095</span> {</div>
<div class="line"><a id="l02096" name="l02096"></a><span class="lineno"> 2096</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="l02097" name="l02097"></a><span class="lineno"> 2097</span> </div>
<div class="line"><a id="l02098" name="l02098"></a><span class="lineno"> 2098</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_SECTOR_OUT_OF_BOUNDS&quot;</span>);</div>
<div class="line"><a id="l02099" name="l02099"></a><span class="lineno"> 2099</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="l02100" name="l02100"></a><span class="lineno"> 2100</span> }</div>
<div class="line"><a id="l02101" name="l02101"></a><span class="lineno"> 2101</span> </div>
<div class="line"><a id="l02102" name="l02102"></a><span class="lineno"> 2102</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="l02103" name="l02103"></a><span class="lineno"> 2103</span> {</div>
<div class="line"><a id="l02104" name="l02104"></a><span class="lineno"> 2104</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="l02105" name="l02105"></a><span class="lineno"> 2105</span> </div>
<div class="line"><a id="l02106" name="l02106"></a><span class="lineno"> 2106</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_SECTOR_OUT_OF_BOUNDS&quot;</span>);</div>
<div class="line"><a id="l02107" name="l02107"></a><span class="lineno"> 2107</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="l02108" name="l02108"></a><span class="lineno"> 2108</span> }</div>
<div class="line"><a id="l02109" name="l02109"></a><span class="lineno"> 2109</span> </div>
<div class="line"><a id="l02110" name="l02110"></a><span class="lineno"> 2110</span> <span class="keywordflow">if</span>(data == NULL || length == 0)</div>
<div class="line"><a id="l02111" name="l02111"></a><span class="lineno"> 2111</span> {</div>
<div class="line"><a id="l02112" name="l02112"></a><span class="lineno"> 2112</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid data or length&quot;</span>);</div>
<div class="line"><a id="l02113" name="l02113"></a><span class="lineno"> 2113</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="l02114" name="l02114"></a><span class="lineno"> 2114</span> }</div>
<div class="line"><a id="l02115" name="l02115"></a><span class="lineno"> 2115</span> </div>
<div class="line"><a id="l02116" name="l02116"></a><span class="lineno"> 2116</span> uint64_t corrected_sector_address = sector_address;</div>
<div class="line"><a id="l02117" name="l02117"></a><span class="lineno"> 2117</span> </div>
<div class="line"><a id="l02118" name="l02118"></a><span class="lineno"> 2118</span> <span class="comment">// Calculate positive or negative sector</span></div>
<div class="line"><a id="l02119" name="l02119"></a><span class="lineno"> 2119</span> <span class="keywordflow">if</span>(negative)</div>
<div class="line"><a id="l02120" name="l02120"></a><span class="lineno"> 2120</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="l02121" name="l02121"></a><span class="lineno"> 2121</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l02122" name="l02122"></a><span class="lineno"> 2122</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="l02123" name="l02123"></a><span class="lineno"> 2123</span> </div>
<div class="line"><a id="l02124" name="l02124"></a><span class="lineno"> 2124</span> <span class="keyword">const</span> uint64_t total_sectors =</div>
<div class="line"><a id="l02125" name="l02125"></a><span class="lineno"> 2125</span> 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> + 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>;</div>
<div class="line"><a id="l02126" name="l02126"></a><span class="lineno"> 2126</span> </div>
<div class="line"><a id="l02127" name="l02127"></a><span class="lineno"> 2127</span> <span class="keywordflow">switch</span>(tag)</div>
<div class="line"><a id="l02128" name="l02128"></a><span class="lineno"> 2128</span> {</div>
<div class="line"><a id="l02129" name="l02129"></a><span class="lineno"> 2129</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa4922f334e9f6fb030152d093be4bee7c">CdTrackFlags</a>:</div>
<div class="line"><a id="l02130" name="l02130"></a><span class="lineno"> 2130</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="l02131" name="l02131"></a><span class="lineno"> 2131</span> {</div>
<div class="line"><a id="l02132" name="l02132"></a><span class="lineno"> 2132</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="l02133" name="l02133"></a><span class="lineno"> 2133</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l02134" name="l02134"></a><span class="lineno"> 2134</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="l02135" name="l02135"></a><span class="lineno"> 2135</span> }</div>
<div class="line"><a id="l02136" name="l02136"></a><span class="lineno"> 2136</span> </div>
<div class="line"><a id="l02137" name="l02137"></a><span class="lineno"> 2137</span> <span class="keywordflow">if</span>(length != 1)</div>
<div class="line"><a id="l02138" name="l02138"></a><span class="lineno"> 2138</span> {</div>
<div class="line"><a id="l02139" name="l02139"></a><span class="lineno"> 2139</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="l02140" name="l02140"></a><span class="lineno"> 2140</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l02141" name="l02141"></a><span class="lineno"> 2141</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="l02142" name="l02142"></a><span class="lineno"> 2142</span> }</div>
<div class="line"><a id="l02143" name="l02143"></a><span class="lineno"> 2143</span> </div>
<div class="line"><a id="l02144" name="l02144"></a><span class="lineno"> 2144</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="l02145" name="l02145"></a><span class="lineno"> 2145</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="l02146" name="l02146"></a><span class="lineno"> 2146</span> {</div>
<div class="line"><a id="l02147" name="l02147"></a><span class="lineno"> 2147</span> 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> = data[0];</div>
<div class="line"><a id="l02148" name="l02148"></a><span class="lineno"> 2148</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l02149" name="l02149"></a><span class="lineno"> 2149</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="l02150" name="l02150"></a><span class="lineno"> 2150</span> }</div>
<div class="line"><a id="l02151" name="l02151"></a><span class="lineno"> 2151</span> </div>
<div class="line"><a id="l02152" name="l02152"></a><span class="lineno"> 2152</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="l02153" name="l02153"></a><span class="lineno"> 2153</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="l02154" name="l02154"></a><span class="lineno"> 2154</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa8e35806d5790cb5568b7535073d40179">CdTrackIsrc</a>:</div>
<div class="line"><a id="l02155" name="l02155"></a><span class="lineno"> 2155</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="l02156" name="l02156"></a><span class="lineno"> 2156</span> {</div>
<div class="line"><a id="l02157" name="l02157"></a><span class="lineno"> 2157</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="l02158" name="l02158"></a><span class="lineno"> 2158</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l02159" name="l02159"></a><span class="lineno"> 2159</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="l02160" name="l02160"></a><span class="lineno"> 2160</span> }</div>
<div class="line"><a id="l02161" name="l02161"></a><span class="lineno"> 2161</span> </div>
<div class="line"><a id="l02162" name="l02162"></a><span class="lineno"> 2162</span> <span class="keywordflow">if</span>(length != 12)</div>
<div class="line"><a id="l02163" name="l02163"></a><span class="lineno"> 2163</span> {</div>
<div class="line"><a id="l02164" name="l02164"></a><span class="lineno"> 2164</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="l02165" name="l02165"></a><span class="lineno"> 2165</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l02166" name="l02166"></a><span class="lineno"> 2166</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="l02167" name="l02167"></a><span class="lineno"> 2167</span> }</div>
<div class="line"><a id="l02168" name="l02168"></a><span class="lineno"> 2168</span> </div>
<div class="line"><a id="l02169" name="l02169"></a><span class="lineno"> 2169</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="l02170" name="l02170"></a><span class="lineno"> 2170</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="l02171" name="l02171"></a><span class="lineno"> 2171</span> {</div>
<div class="line"><a id="l02172" name="l02172"></a><span class="lineno"> 2172</span> memcpy(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>, data, 12);</div>
<div class="line"><a id="l02173" name="l02173"></a><span class="lineno"> 2173</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l02174" name="l02174"></a><span class="lineno"> 2174</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="l02175" name="l02175"></a><span class="lineno"> 2175</span> }</div>
<div class="line"><a id="l02176" name="l02176"></a><span class="lineno"> 2176</span> </div>
<div class="line"><a id="l02177" name="l02177"></a><span class="lineno"> 2177</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="l02178" name="l02178"></a><span class="lineno"> 2178</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="l02179" name="l02179"></a><span class="lineno"> 2179</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa73586ffdff3f35b8a05b7f8fd37fcee2">CdSectorSubchannelAaru</a>:</div>
<div class="line"><a id="l02180" name="l02180"></a><span class="lineno"> 2180</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="l02181" name="l02181"></a><span class="lineno"> 2181</span> {</div>
<div class="line"><a id="l02182" name="l02182"></a><span class="lineno"> 2182</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="l02183" name="l02183"></a><span class="lineno"> 2183</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l02184" name="l02184"></a><span class="lineno"> 2184</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="l02185" name="l02185"></a><span class="lineno"> 2185</span> }</div>
<div class="line"><a id="l02186" name="l02186"></a><span class="lineno"> 2186</span> </div>
<div class="line"><a id="l02187" name="l02187"></a><span class="lineno"> 2187</span> <span class="keywordflow">if</span>(length != 96)</div>
<div class="line"><a id="l02188" name="l02188"></a><span class="lineno"> 2188</span> {</div>
<div class="line"><a id="l02189" name="l02189"></a><span class="lineno"> 2189</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="l02190" name="l02190"></a><span class="lineno"> 2190</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l02191" name="l02191"></a><span class="lineno"> 2191</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="l02192" name="l02192"></a><span class="lineno"> 2192</span> }</div>
<div class="line"><a id="l02193" name="l02193"></a><span class="lineno"> 2193</span> </div>
<div class="line"><a id="l02194" name="l02194"></a><span class="lineno"> 2194</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> == NULL) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> = calloc(1, 96 * total_sectors);</div>
<div class="line"><a id="l02195" name="l02195"></a><span class="lineno"> 2195</span> </div>
<div class="line"><a id="l02196" name="l02196"></a><span class="lineno"> 2196</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="l02197" name="l02197"></a><span class="lineno"> 2197</span> {</div>
<div class="line"><a id="l02198" name="l02198"></a><span class="lineno"> 2198</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for sector subchannel&quot;</span>);</div>
<div class="line"><a id="l02199" name="l02199"></a><span class="lineno"> 2199</span> </div>
<div class="line"><a id="l02200" name="l02200"></a><span class="lineno"> 2200</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l02201" name="l02201"></a><span class="lineno"> 2201</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="l02202" name="l02202"></a><span class="lineno"> 2202</span> }</div>
<div class="line"><a id="l02203" name="l02203"></a><span class="lineno"> 2203</span> </div>
<div class="line"><a id="l02204" name="l02204"></a><span class="lineno"> 2204</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> + corrected_sector_address * 96, data, 96);</div>
<div class="line"><a id="l02205" name="l02205"></a><span class="lineno"> 2205</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l02206" name="l02206"></a><span class="lineno"> 2206</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="l02207" name="l02207"></a><span class="lineno"> 2207</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa7165008ad58fcf7904dc3f6626064828">DvdCmi</a>:</div>
<div class="line"><a id="l02208" name="l02208"></a><span class="lineno"> 2208</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="l02209" name="l02209"></a><span class="lineno"> 2209</span> {</div>
<div class="line"><a id="l02210" name="l02210"></a><span class="lineno"> 2210</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="l02211" name="l02211"></a><span class="lineno"> 2211</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l02212" name="l02212"></a><span class="lineno"> 2212</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="l02213" name="l02213"></a><span class="lineno"> 2213</span> }</div>
<div class="line"><a id="l02214" name="l02214"></a><span class="lineno"> 2214</span> </div>
<div class="line"><a id="l02215" name="l02215"></a><span class="lineno"> 2215</span> <span class="keywordflow">if</span>(length != 1)</div>
<div class="line"><a id="l02216" name="l02216"></a><span class="lineno"> 2216</span> {</div>
<div class="line"><a id="l02217" name="l02217"></a><span class="lineno"> 2217</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="l02218" name="l02218"></a><span class="lineno"> 2218</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l02219" name="l02219"></a><span class="lineno"> 2219</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="l02220" name="l02220"></a><span class="lineno"> 2220</span> }</div>
<div class="line"><a id="l02221" name="l02221"></a><span class="lineno"> 2221</span> </div>
<div class="line"><a id="l02222" name="l02222"></a><span class="lineno"> 2222</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a1614b9ffbd5e4661a2483eb3f68f8fd1">sector_cpr_mai</a> == NULL) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a1614b9ffbd5e4661a2483eb3f68f8fd1">sector_cpr_mai</a> = calloc(1, 6 * total_sectors);</div>
<div class="line"><a id="l02223" name="l02223"></a><span class="lineno"> 2223</span> </div>
<div class="line"><a id="l02224" name="l02224"></a><span class="lineno"> 2224</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="l02225" name="l02225"></a><span class="lineno"> 2225</span> {</div>
<div class="line"><a id="l02226" name="l02226"></a><span class="lineno"> 2226</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for sector CPR/MAI&quot;</span>);</div>
<div class="line"><a id="l02227" name="l02227"></a><span class="lineno"> 2227</span> </div>
<div class="line"><a id="l02228" name="l02228"></a><span class="lineno"> 2228</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l02229" name="l02229"></a><span class="lineno"> 2229</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="l02230" name="l02230"></a><span class="lineno"> 2230</span> }</div>
<div class="line"><a id="l02231" name="l02231"></a><span class="lineno"> 2231</span> </div>
<div class="line"><a id="l02232" name="l02232"></a><span class="lineno"> 2232</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a1614b9ffbd5e4661a2483eb3f68f8fd1">sector_cpr_mai</a> + corrected_sector_address * 6, data, 1);</div>
<div class="line"><a id="l02233" name="l02233"></a><span class="lineno"> 2233</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l02234" name="l02234"></a><span class="lineno"> 2234</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="l02235" name="l02235"></a><span class="lineno"> 2235</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aaacdc97f5778a26551dae1e003fc5f769">DvdSectorInformation</a>:</div>
<div class="line"><a id="l02236" name="l02236"></a><span class="lineno"> 2236</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="l02237" name="l02237"></a><span class="lineno"> 2237</span> {</div>
<div class="line"><a id="l02238" name="l02238"></a><span class="lineno"> 2238</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="l02239" name="l02239"></a><span class="lineno"> 2239</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l02240" name="l02240"></a><span class="lineno"> 2240</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="l02241" name="l02241"></a><span class="lineno"> 2241</span> }</div>
<div class="line"><a id="l02242" name="l02242"></a><span class="lineno"> 2242</span> </div>
<div class="line"><a id="l02243" name="l02243"></a><span class="lineno"> 2243</span> <span class="keywordflow">if</span>(length != 1)</div>
<div class="line"><a id="l02244" name="l02244"></a><span class="lineno"> 2244</span> {</div>
<div class="line"><a id="l02245" name="l02245"></a><span class="lineno"> 2245</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="l02246" name="l02246"></a><span class="lineno"> 2246</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l02247" name="l02247"></a><span class="lineno"> 2247</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="l02248" name="l02248"></a><span class="lineno"> 2248</span> }</div>
<div class="line"><a id="l02249" name="l02249"></a><span class="lineno"> 2249</span> </div>
<div class="line"><a id="l02250" name="l02250"></a><span class="lineno"> 2250</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#acc9cdfdd4be56c4f7016a37e218cee47">sector_id</a> = calloc(1, 4 * total_sectors);</div>
<div class="line"><a id="l02251" name="l02251"></a><span class="lineno"> 2251</span> </div>
<div class="line"><a id="l02252" name="l02252"></a><span class="lineno"> 2252</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="l02253" name="l02253"></a><span class="lineno"> 2253</span> {</div>
<div class="line"><a id="l02254" name="l02254"></a><span class="lineno"> 2254</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for sector ID&quot;</span>);</div>
<div class="line"><a id="l02255" name="l02255"></a><span class="lineno"> 2255</span> </div>
<div class="line"><a id="l02256" name="l02256"></a><span class="lineno"> 2256</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l02257" name="l02257"></a><span class="lineno"> 2257</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="l02258" name="l02258"></a><span class="lineno"> 2258</span> }</div>
<div class="line"><a id="l02259" name="l02259"></a><span class="lineno"> 2259</span> </div>
<div class="line"><a id="l02260" name="l02260"></a><span class="lineno"> 2260</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#acc9cdfdd4be56c4f7016a37e218cee47">sector_id</a> + corrected_sector_address * 4, data, 1);</div>
<div class="line"><a id="l02261" name="l02261"></a><span class="lineno"> 2261</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l02262" name="l02262"></a><span class="lineno"> 2262</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="l02263" name="l02263"></a><span class="lineno"> 2263</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa82265a5d640ce9474f8b357c54cc0440">DvdSectorNumber</a>:</div>
<div class="line"><a id="l02264" name="l02264"></a><span class="lineno"> 2264</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="l02265" name="l02265"></a><span class="lineno"> 2265</span> {</div>
<div class="line"><a id="l02266" name="l02266"></a><span class="lineno"> 2266</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="l02267" name="l02267"></a><span class="lineno"> 2267</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l02268" name="l02268"></a><span class="lineno"> 2268</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="l02269" name="l02269"></a><span class="lineno"> 2269</span> }</div>
<div class="line"><a id="l02270" name="l02270"></a><span class="lineno"> 2270</span> </div>
<div class="line"><a id="l02271" name="l02271"></a><span class="lineno"> 2271</span> <span class="keywordflow">if</span>(length != 3)</div>
<div class="line"><a id="l02272" name="l02272"></a><span class="lineno"> 2272</span> {</div>
<div class="line"><a id="l02273" name="l02273"></a><span class="lineno"> 2273</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="l02274" name="l02274"></a><span class="lineno"> 2274</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l02275" name="l02275"></a><span class="lineno"> 2275</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="l02276" name="l02276"></a><span class="lineno"> 2276</span> }</div>
<div class="line"><a id="l02277" name="l02277"></a><span class="lineno"> 2277</span> </div>
<div class="line"><a id="l02278" name="l02278"></a><span class="lineno"> 2278</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#acc9cdfdd4be56c4f7016a37e218cee47">sector_id</a> = calloc(1, 4 * total_sectors);</div>
<div class="line"><a id="l02279" name="l02279"></a><span class="lineno"> 2279</span> </div>
<div class="line"><a id="l02280" name="l02280"></a><span class="lineno"> 2280</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="l02281" name="l02281"></a><span class="lineno"> 2281</span> {</div>
<div class="line"><a id="l02282" name="l02282"></a><span class="lineno"> 2282</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for sector ID&quot;</span>);</div>
<div class="line"><a id="l02283" name="l02283"></a><span class="lineno"> 2283</span> </div>
<div class="line"><a id="l02284" name="l02284"></a><span class="lineno"> 2284</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l02285" name="l02285"></a><span class="lineno"> 2285</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="l02286" name="l02286"></a><span class="lineno"> 2286</span> }</div>
<div class="line"><a id="l02287" name="l02287"></a><span class="lineno"> 2287</span> </div>
<div class="line"><a id="l02288" name="l02288"></a><span class="lineno"> 2288</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#acc9cdfdd4be56c4f7016a37e218cee47">sector_id</a> + corrected_sector_address * 4 + 1, data, 3);</div>
<div class="line"><a id="l02289" name="l02289"></a><span class="lineno"> 2289</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l02290" name="l02290"></a><span class="lineno"> 2290</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="l02291" name="l02291"></a><span class="lineno"> 2291</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa16bbf88cdbeb1c4bfe44244de7d16c3f">DvdSectorIedAaru</a>:</div>
<div class="line"><a id="l02292" name="l02292"></a><span class="lineno"> 2292</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="l02293" name="l02293"></a><span class="lineno"> 2293</span> {</div>
<div class="line"><a id="l02294" name="l02294"></a><span class="lineno"> 2294</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="l02295" name="l02295"></a><span class="lineno"> 2295</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l02296" name="l02296"></a><span class="lineno"> 2296</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="l02297" name="l02297"></a><span class="lineno"> 2297</span> }</div>
<div class="line"><a id="l02298" name="l02298"></a><span class="lineno"> 2298</span> </div>
<div class="line"><a id="l02299" name="l02299"></a><span class="lineno"> 2299</span> <span class="keywordflow">if</span>(length != 2)</div>
<div class="line"><a id="l02300" name="l02300"></a><span class="lineno"> 2300</span> {</div>
<div class="line"><a id="l02301" name="l02301"></a><span class="lineno"> 2301</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="l02302" name="l02302"></a><span class="lineno"> 2302</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l02303" name="l02303"></a><span class="lineno"> 2303</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="l02304" name="l02304"></a><span class="lineno"> 2304</span> }</div>
<div class="line"><a id="l02305" name="l02305"></a><span class="lineno"> 2305</span> </div>
<div class="line"><a id="l02306" name="l02306"></a><span class="lineno"> 2306</span> <span class="keywordflow">if</span>(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#a3bfc3fceaaf015830913fd7efa794e5a">sector_ied</a> = calloc(1, 2 * total_sectors);</div>
<div class="line"><a id="l02307" name="l02307"></a><span class="lineno"> 2307</span> </div>
<div class="line"><a id="l02308" name="l02308"></a><span class="lineno"> 2308</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="l02309" name="l02309"></a><span class="lineno"> 2309</span> {</div>
<div class="line"><a id="l02310" name="l02310"></a><span class="lineno"> 2310</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for sector IED&quot;</span>);</div>
<div class="line"><a id="l02311" name="l02311"></a><span class="lineno"> 2311</span> </div>
<div class="line"><a id="l02312" name="l02312"></a><span class="lineno"> 2312</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l02313" name="l02313"></a><span class="lineno"> 2313</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="l02314" name="l02314"></a><span class="lineno"> 2314</span> }</div>
<div class="line"><a id="l02315" name="l02315"></a><span class="lineno"> 2315</span> </div>
<div class="line"><a id="l02316" name="l02316"></a><span class="lineno"> 2316</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3bfc3fceaaf015830913fd7efa794e5a">sector_ied</a> + corrected_sector_address * 2, data, 2);</div>
<div class="line"><a id="l02317" name="l02317"></a><span class="lineno"> 2317</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l02318" name="l02318"></a><span class="lineno"> 2318</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="l02319" name="l02319"></a><span class="lineno"> 2319</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa6d377a28e58b9da5452ab66e90ea4457">DvdSectorEdcAaru</a>:</div>
<div class="line"><a id="l02320" name="l02320"></a><span class="lineno"> 2320</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="l02321" name="l02321"></a><span class="lineno"> 2321</span> {</div>
<div class="line"><a id="l02322" name="l02322"></a><span class="lineno"> 2322</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="l02323" name="l02323"></a><span class="lineno"> 2323</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l02324" name="l02324"></a><span class="lineno"> 2324</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="l02325" name="l02325"></a><span class="lineno"> 2325</span> }</div>
<div class="line"><a id="l02326" name="l02326"></a><span class="lineno"> 2326</span> </div>
<div class="line"><a id="l02327" name="l02327"></a><span class="lineno"> 2327</span> <span class="keywordflow">if</span>(length != 4)</div>
<div class="line"><a id="l02328" name="l02328"></a><span class="lineno"> 2328</span> {</div>
<div class="line"><a id="l02329" name="l02329"></a><span class="lineno"> 2329</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="l02330" name="l02330"></a><span class="lineno"> 2330</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l02331" name="l02331"></a><span class="lineno"> 2331</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="l02332" name="l02332"></a><span class="lineno"> 2332</span> }</div>
<div class="line"><a id="l02333" name="l02333"></a><span class="lineno"> 2333</span> </div>
<div class="line"><a id="l02334" name="l02334"></a><span class="lineno"> 2334</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4dc244e21a520e90abd961c38eb6d9ae">sector_edc</a> == NULL) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4dc244e21a520e90abd961c38eb6d9ae">sector_edc</a> = calloc(1, 4 * total_sectors);</div>
<div class="line"><a id="l02335" name="l02335"></a><span class="lineno"> 2335</span> </div>
<div class="line"><a id="l02336" name="l02336"></a><span class="lineno"> 2336</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="l02337" name="l02337"></a><span class="lineno"> 2337</span> {</div>
<div class="line"><a id="l02338" name="l02338"></a><span class="lineno"> 2338</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for sector EDC&quot;</span>);</div>
<div class="line"><a id="l02339" name="l02339"></a><span class="lineno"> 2339</span> </div>
<div class="line"><a id="l02340" name="l02340"></a><span class="lineno"> 2340</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l02341" name="l02341"></a><span class="lineno"> 2341</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="l02342" name="l02342"></a><span class="lineno"> 2342</span> }</div>
<div class="line"><a id="l02343" name="l02343"></a><span class="lineno"> 2343</span> </div>
<div class="line"><a id="l02344" name="l02344"></a><span class="lineno"> 2344</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4dc244e21a520e90abd961c38eb6d9ae">sector_edc</a> + corrected_sector_address * 4, data, 4);</div>
<div class="line"><a id="l02345" name="l02345"></a><span class="lineno"> 2345</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l02346" name="l02346"></a><span class="lineno"> 2346</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="l02347" name="l02347"></a><span class="lineno"> 2347</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aae54bf2b3574266925062218c892c42b2">DvdTitleKeyDecrypted</a>:</div>
<div class="line"><a id="l02348" name="l02348"></a><span class="lineno"> 2348</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="l02349" name="l02349"></a><span class="lineno"> 2349</span> {</div>
<div class="line"><a id="l02350" name="l02350"></a><span class="lineno"> 2350</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="l02351" name="l02351"></a><span class="lineno"> 2351</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l02352" name="l02352"></a><span class="lineno"> 2352</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="l02353" name="l02353"></a><span class="lineno"> 2353</span> }</div>
<div class="line"><a id="l02354" name="l02354"></a><span class="lineno"> 2354</span> </div>
<div class="line"><a id="l02355" name="l02355"></a><span class="lineno"> 2355</span> <span class="keywordflow">if</span>(length != 5)</div>
<div class="line"><a id="l02356" name="l02356"></a><span class="lineno"> 2356</span> {</div>
<div class="line"><a id="l02357" name="l02357"></a><span class="lineno"> 2357</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="l02358" name="l02358"></a><span class="lineno"> 2358</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l02359" name="l02359"></a><span class="lineno"> 2359</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="l02360" name="l02360"></a><span class="lineno"> 2360</span> }</div>
<div class="line"><a id="l02361" name="l02361"></a><span class="lineno"> 2361</span> </div>
<div class="line"><a id="l02362" name="l02362"></a><span class="lineno"> 2362</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aa943f49c5e77c98bc4cddc9d0c2ae284">sector_decrypted_title_key</a> == NULL) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aa943f49c5e77c98bc4cddc9d0c2ae284">sector_decrypted_title_key</a> = calloc(1, 5 * total_sectors);</div>
<div class="line"><a id="l02363" name="l02363"></a><span class="lineno"> 2363</span> </div>
<div class="line"><a id="l02364" name="l02364"></a><span class="lineno"> 2364</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="l02365" name="l02365"></a><span class="lineno"> 2365</span> {</div>
<div class="line"><a id="l02366" name="l02366"></a><span class="lineno"> 2366</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for sector decrypted title key&quot;</span>);</div>
<div class="line"><a id="l02367" name="l02367"></a><span class="lineno"> 2367</span> </div>
<div class="line"><a id="l02368" name="l02368"></a><span class="lineno"> 2368</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l02369" name="l02369"></a><span class="lineno"> 2369</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="l02370" name="l02370"></a><span class="lineno"> 2370</span> }</div>
<div class="line"><a id="l02371" name="l02371"></a><span class="lineno"> 2371</span> </div>
<div class="line"><a id="l02372" name="l02372"></a><span class="lineno"> 2372</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aa943f49c5e77c98bc4cddc9d0c2ae284">sector_decrypted_title_key</a> + corrected_sector_address * 5, data, 5);</div>
<div class="line"><a id="l02373" name="l02373"></a><span class="lineno"> 2373</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l02374" name="l02374"></a><span class="lineno"> 2374</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="l02375" name="l02375"></a><span class="lineno"> 2375</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aaef910c709ff1ccc00e20d853ea02907a">AppleSonyTagAaru</a>:</div>
<div class="line"><a id="l02376" name="l02376"></a><span class="lineno"> 2376</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="l02377" name="l02377"></a><span class="lineno"> 2377</span> {</div>
<div class="line"><a id="l02378" name="l02378"></a><span class="lineno"> 2378</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="l02379" name="l02379"></a><span class="lineno"> 2379</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l02380" name="l02380"></a><span class="lineno"> 2380</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="l02381" name="l02381"></a><span class="lineno"> 2381</span> }</div>
<div class="line"><a id="l02382" name="l02382"></a><span class="lineno"> 2382</span> </div>
<div class="line"><a id="l02383" name="l02383"></a><span class="lineno"> 2383</span> <span class="keywordflow">if</span>(length != 12)</div>
<div class="line"><a id="l02384" name="l02384"></a><span class="lineno"> 2384</span> {</div>
<div class="line"><a id="l02385" name="l02385"></a><span class="lineno"> 2385</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="l02386" name="l02386"></a><span class="lineno"> 2386</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l02387" name="l02387"></a><span class="lineno"> 2387</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="l02388" name="l02388"></a><span class="lineno"> 2388</span> }</div>
<div class="line"><a id="l02389" name="l02389"></a><span class="lineno"> 2389</span> </div>
<div class="line"><a id="l02390" name="l02390"></a><span class="lineno"> 2390</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> == NULL) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> = calloc(1, 12 * total_sectors);</div>
<div class="line"><a id="l02391" name="l02391"></a><span class="lineno"> 2391</span> </div>
<div class="line"><a id="l02392" name="l02392"></a><span class="lineno"> 2392</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="l02393" name="l02393"></a><span class="lineno"> 2393</span> {</div>
<div class="line"><a id="l02394" name="l02394"></a><span class="lineno"> 2394</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for Apple Sony tag&quot;</span>);</div>
<div class="line"><a id="l02395" name="l02395"></a><span class="lineno"> 2395</span> </div>
<div class="line"><a id="l02396" name="l02396"></a><span class="lineno"> 2396</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l02397" name="l02397"></a><span class="lineno"> 2397</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="l02398" name="l02398"></a><span class="lineno"> 2398</span> }</div>
<div class="line"><a id="l02399" name="l02399"></a><span class="lineno"> 2399</span> </div>
<div class="line"><a id="l02400" name="l02400"></a><span class="lineno"> 2400</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> + corrected_sector_address * 12, data, 12);</div>
<div class="line"><a id="l02401" name="l02401"></a><span class="lineno"> 2401</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l02402" name="l02402"></a><span class="lineno"> 2402</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="l02403" name="l02403"></a><span class="lineno"> 2403</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aaaa6bb40f3b26ce3df172cd3a1020eeb9">AppleProfileTagAaru</a>:</div>
<div class="line"><a id="l02404" name="l02404"></a><span class="lineno"> 2404</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="l02405" name="l02405"></a><span class="lineno"> 2405</span> {</div>
<div class="line"><a id="l02406" name="l02406"></a><span class="lineno"> 2406</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="l02407" name="l02407"></a><span class="lineno"> 2407</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l02408" name="l02408"></a><span class="lineno"> 2408</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="l02409" name="l02409"></a><span class="lineno"> 2409</span> }</div>
<div class="line"><a id="l02410" name="l02410"></a><span class="lineno"> 2410</span> </div>
<div class="line"><a id="l02411" name="l02411"></a><span class="lineno"> 2411</span> <span class="keywordflow">if</span>(length != 20)</div>
<div class="line"><a id="l02412" name="l02412"></a><span class="lineno"> 2412</span> {</div>
<div class="line"><a id="l02413" name="l02413"></a><span class="lineno"> 2413</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="l02414" name="l02414"></a><span class="lineno"> 2414</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l02415" name="l02415"></a><span class="lineno"> 2415</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="l02416" name="l02416"></a><span class="lineno"> 2416</span> }</div>
<div class="line"><a id="l02417" name="l02417"></a><span class="lineno"> 2417</span> </div>
<div class="line"><a id="l02418" name="l02418"></a><span class="lineno"> 2418</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> == NULL) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> = calloc(1, 20 * total_sectors);</div>
<div class="line"><a id="l02419" name="l02419"></a><span class="lineno"> 2419</span> </div>
<div class="line"><a id="l02420" name="l02420"></a><span class="lineno"> 2420</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="l02421" name="l02421"></a><span class="lineno"> 2421</span> {</div>
<div class="line"><a id="l02422" name="l02422"></a><span class="lineno"> 2422</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for Apple Profile tag&quot;</span>);</div>
<div class="line"><a id="l02423" name="l02423"></a><span class="lineno"> 2423</span> </div>
<div class="line"><a id="l02424" name="l02424"></a><span class="lineno"> 2424</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l02425" name="l02425"></a><span class="lineno"> 2425</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="l02426" name="l02426"></a><span class="lineno"> 2426</span> }</div>
<div class="line"><a id="l02427" name="l02427"></a><span class="lineno"> 2427</span> </div>
<div class="line"><a id="l02428" name="l02428"></a><span class="lineno"> 2428</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> + corrected_sector_address * 20, data, 20);</div>
<div class="line"><a id="l02429" name="l02429"></a><span class="lineno"> 2429</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l02430" name="l02430"></a><span class="lineno"> 2430</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="l02431" name="l02431"></a><span class="lineno"> 2431</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group__SectorTags.html#ggaf863e81d172ce7a216d8687a8a23293aa9937ec92715558a3f5ce46c8700190ba">PriamDataTowerTagAaru</a>:</div>
<div class="line"><a id="l02432" name="l02432"></a><span class="lineno"> 2432</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="l02433" name="l02433"></a><span class="lineno"> 2433</span> {</div>
<div class="line"><a id="l02434" name="l02434"></a><span class="lineno"> 2434</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="l02435" name="l02435"></a><span class="lineno"> 2435</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_MEDIA_TYPE&quot;</span>);</div>
<div class="line"><a id="l02436" name="l02436"></a><span class="lineno"> 2436</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="l02437" name="l02437"></a><span class="lineno"> 2437</span> }</div>
<div class="line"><a id="l02438" name="l02438"></a><span class="lineno"> 2438</span> </div>
<div class="line"><a id="l02439" name="l02439"></a><span class="lineno"> 2439</span> <span class="keywordflow">if</span>(length != 24)</div>
<div class="line"><a id="l02440" name="l02440"></a><span class="lineno"> 2440</span> {</div>
<div class="line"><a id="l02441" name="l02441"></a><span class="lineno"> 2441</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="l02442" name="l02442"></a><span class="lineno"> 2442</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l02443" name="l02443"></a><span class="lineno"> 2443</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="l02444" name="l02444"></a><span class="lineno"> 2444</span> }</div>
<div class="line"><a id="l02445" name="l02445"></a><span class="lineno"> 2445</span> </div>
<div class="line"><a id="l02446" name="l02446"></a><span class="lineno"> 2446</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> == NULL) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> = calloc(1, 24 * total_sectors);</div>
<div class="line"><a id="l02447" name="l02447"></a><span class="lineno"> 2447</span> </div>
<div class="line"><a id="l02448" name="l02448"></a><span class="lineno"> 2448</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="l02449" name="l02449"></a><span class="lineno"> 2449</span> {</div>
<div class="line"><a id="l02450" name="l02450"></a><span class="lineno"> 2450</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for Priam Data Tower tag&quot;</span>);</div>
<div class="line"><a id="l02451" name="l02451"></a><span class="lineno"> 2451</span> </div>
<div class="line"><a id="l02452" name="l02452"></a><span class="lineno"> 2452</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_ERROR_NOT_ENOUGH_MEMORY&quot;</span>);</div>
<div class="line"><a id="l02453" name="l02453"></a><span class="lineno"> 2453</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="l02454" name="l02454"></a><span class="lineno"> 2454</span> }</div>
<div class="line"><a id="l02455" name="l02455"></a><span class="lineno"> 2455</span> </div>
<div class="line"><a id="l02456" name="l02456"></a><span class="lineno"> 2456</span> memcpy(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaf16c9ee5b05bac1ef44d29abef6134a">sector_subchannel</a> + corrected_sector_address * 24, data, 24);</div>
<div class="line"><a id="l02457" name="l02457"></a><span class="lineno"> 2457</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_write_sector_tag() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l02458" name="l02458"></a><span class="lineno"> 2458</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="l02459" name="l02459"></a><span class="lineno"> 2459</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l02460" name="l02460"></a><span class="lineno"> 2460</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Do not know how to write sector tag %d&quot;</span>, tag);</div>
<div class="line"><a id="l02461" name="l02461"></a><span class="lineno"> 2461</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="l02462" name="l02462"></a><span class="lineno"> 2462</span> }</div>
<div class="line"><a id="l02463" name="l02463"></a><span class="lineno"> 2463</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_a207a31e861ea8e3a4f5ef52c13b42b3d"><div class="ttname"><a href="consts_8h.html#a207a31e861ea8e3a4f5ef52c13b42b3d">MAX_FLAKE_BLOCK</a></div><div class="ttdeci">#define MAX_FLAKE_BLOCK</div><div class="ttdoc">FLAC maximum block size used for encoding audio sectors.</div><div class="ttdef"><b>Definition</b> <a href="consts_8h_source.html#l00094">consts.h:94</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_a3fd3617b4eb7e9548e0fd0ca8990e44a"><div class="ttname"><a href="consts_8h.html#a3fd3617b4eb7e9548e0fd0ca8990e44a">MIN_FLAKE_BLOCK</a></div><div class="ttdeci">#define MIN_FLAKE_BLOCK</div><div class="ttdoc">FLAC minimum block size.</div><div class="ttdef"><b>Definition</b> <a href="consts_8h_source.html#l00096">consts.h:96</a></div></div>
<div class="ttc" id="aconsts_8h_html_a44401191f17a7c09a05e57ff9e5cff24"><div class="ttname"><a href="consts_8h.html#a44401191f17a7c09a05e57ff9e5cff24">SAMPLES_PER_SECTOR</a></div><div class="ttdeci">#define SAMPLES_PER_SECTOR</div><div class="ttdoc">Red Book (CDDA) PCM samples per 2352byte sector: 44,100 Hz / 75 sectors per second = 588 samples.</div><div class="ttdef"><b>Definition</b> <a href="consts_8h_source.html#l00090">consts.h:90</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_a0e69fad529047d6fe9440b1fc66c3f85"><div class="ttname"><a href="decls_8h.html#a0e69fad529047d6fe9440b1fc66c3f85">aaruf_lzma_encode_buffer</a></div><div class="ttdeci">int32_t aaruf_lzma_encode_buffer(uint8_t *dst_buffer, size_t *dst_size, const uint8_t *src_buffer, size_t src_size, uint8_t *out_props, size_t *out_props_size, int32_t level, uint32_t dict_size, int32_t lc, int32_t lp, int32_t pb, int32_t fb, int32_t num_threads)</div><div class="ttdoc">Encodes a buffer using LZMA compression.</div><div class="ttdef"><b>Definition</b> <a href="lzma_8c_source.html#l00065">lzma.c:65</a></div></div>
<div class="ttc" id="adecls_8h_html_a0fee4834bf0747bcd933c4e754aa4692"><div class="ttname"><a href="decls_8h.html#a0fee4834bf0747bcd933c4e754aa4692">aaruf_crc64_data</a></div><div class="ttdeci">uint64_t aaruf_crc64_data(const uint8_t *data, uint32_t len)</div><div class="ttdef"><b>Definition</b> <a href="crc64_8c_source.html#l00160">crc64.c:160</a></div></div>
<div class="ttc" id="adecls_8h_html_a102023fe64e4bd24cd6d4124f0d74e54"><div class="ttname"><a href="decls_8h.html#a102023fe64e4bd24cd6d4124f0d74e54">aaruf_flac_encode_redbook_buffer</a></div><div class="ttdeci">size_t aaruf_flac_encode_redbook_buffer(uint8_t *dst_buffer, size_t dst_size, const uint8_t *src_buffer, size_t src_size, uint32_t blocksize, int32_t do_mid_side_stereo, int32_t loose_mid_side_stereo, const char *apodization, uint32_t max_lpc_order, uint32_t qlp_coeff_precision, int32_t do_qlp_coeff_prec_search, int32_t do_exhaustive_model_search, uint32_t min_residual_partition_order, uint32_t max_residual_partition_order, const char *application_id, uint32_t application_id_len)</div><div class="ttdoc">Encodes a Red Book audio buffer to FLAC format.</div><div class="ttdef"><b>Definition</b> <a href="flac_8c_source.html#l00175">flac.c:175</a></div></div>
<div class="ttc" id="adecls_8h_html_a1fb4423a841ccd728e3ad0d028cbc9b4"><div class="ttname"><a href="decls_8h.html#a1fb4423a841ccd728e3ad0d028cbc9b4">aaruf_crc64_update</a></div><div class="ttdeci">int aaruf_crc64_update(crc64_ctx *ctx, const uint8_t *data, uint32_t len)</div><div class="ttdoc">Updates the CRC64 context with new data.</div><div class="ttdef"><b>Definition</b> <a href="crc64_8c_source.html#l00055">crc64.c:55</a></div></div>
<div class="ttc" id="adecls_8h_html_a4943569a8623eb2e3e0adc276c433097"><div class="ttname"><a href="decls_8h.html#a4943569a8623eb2e3e0adc276c433097">aaruf_crc64_free</a></div><div class="ttdeci">void aaruf_crc64_free(crc64_ctx *ctx)</div><div class="ttdoc">Frees a CRC64 context.</div><div class="ttdef"><b>Definition</b> <a href="crc64_8c_source.html#l00155">crc64.c:155</a></div></div>
<div class="ttc" id="adecls_8h_html_a5a9767f3b860752b493aa7bee9d39a8d"><div class="ttname"><a href="decls_8h.html#a5a9767f3b860752b493aa7bee9d39a8d">aaruf_spamsum_update</a></div><div class="ttdeci">int aaruf_spamsum_update(spamsum_ctx *ctx, const uint8_t *data, uint32_t len)</div><div class="ttdoc">Updates the spamsum context with new data.</div><div class="ttdef"><b>Definition</b> <a href="spamsum_8c_source.html#l00059">spamsum.c:59</a></div></div>
<div class="ttc" id="adecls_8h_html_a66567ca64e31a687d4982cb254b45196"><div class="ttname"><a href="decls_8h.html#a66567ca64e31a687d4982cb254b45196">aaruf_crc64_init</a></div><div class="ttdeci">crc64_ctx * aaruf_crc64_init()</div><div class="ttdoc">Initializes a CRC64 context.</div><div class="ttdef"><b>Definition</b> <a href="crc64_8c_source.html#l00032">crc64.c:32</a></div></div>
<div class="ttc" id="adecls_8h_html_a67c65c3f2ca5cdf1596c16fa35558df1"><div class="ttname"><a href="decls_8h.html#a67c65c3f2ca5cdf1596c16fa35558df1">aaruf_edc_cd_compute</a></div><div class="ttdeci">uint32_t aaruf_edc_cd_compute(void *context, uint32_t edc, const uint8_t *src, int size, int pos)</div><div class="ttdoc">Computes the EDC (Error Detection Code) for a CD sector.</div><div class="ttdef"><b>Definition</b> <a href="ecc__cd_8c_source.html#l00547">ecc_cd.c:547</a></div></div>
<div class="ttc" id="adecls_8h_html_a6e19e853bea5db901de83fa2fa29055c"><div class="ttname"><a href="decls_8h.html#a6e19e853bea5db901de83fa2fa29055c">aaruf_md5_update</a></div><div class="ttdeci">void aaruf_md5_update(md5_ctx *ctx, const void *data, unsigned long size)</div><div class="ttdef"><b>Definition</b> <a href="md5_8c_source.html#l00447">md5.c:447</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_ab5f178e5ec94596e44a3fdb001d4a5f8"><div class="ttname"><a href="decls_8h.html#ab5f178e5ec94596e44a3fdb001d4a5f8">aaruf_sha256_update</a></div><div class="ttdeci">void aaruf_sha256_update(sha256_ctx *ctx, const void *data, unsigned long size)</div><div class="ttdef"><b>Definition</b> <a href="sha256_8c_source.html#l00090">sha256.c:90</a></div></div>
<div class="ttc" id="adecls_8h_html_ab77ca170a2e8d2f0a2a7ea1a8a51690a"><div class="ttname"><a href="decls_8h.html#ab77ca170a2e8d2f0a2a7ea1a8a51690a">aaruf_ecc_cd_is_suffix_correct_mode2</a></div><div class="ttdeci">bool aaruf_ecc_cd_is_suffix_correct_mode2(void *context, const uint8_t *sector)</div><div class="ttdoc">Checks if the suffix (EDC/ECC) of a CD sector is correct (Mode 2).</div><div class="ttdef"><b>Definition</b> <a href="ecc__cd_8c_source.html#l00165">ecc_cd.c:165</a></div></div>
<div class="ttc" id="adecls_8h_html_abead53c8e55f1f99900fdae16d9da70f"><div class="ttname"><a href="decls_8h.html#abead53c8e55f1f99900fdae16d9da70f">aaruf_sha1_update</a></div><div class="ttdeci">void aaruf_sha1_update(sha1_ctx *ctx, const void *data, unsigned long size)</div><div class="ttdef"><b>Definition</b> <a href="sha1_8c_source.html#l00089">sha1.c:89</a></div></div>
<div class="ttc" id="adecls_8h_html_ae48cfb59c6585e9ffd4cd1a97044891f"><div class="ttname"><a href="decls_8h.html#ae48cfb59c6585e9ffd4cd1a97044891f">aaruf_crc64_final</a></div><div class="ttdeci">int aaruf_crc64_final(crc64_ctx *ctx, uint64_t *crc)</div><div class="ttdoc">Computes the final CRC64 value from the context.</div><div class="ttdef"><b>Definition</b> <a href="crc64_8c_source.html#l00141">crc64.c:141</a></div></div>
<div class="ttc" id="adecls_8h_html_afbc09e16b1a654de04706e07c3212ecb"><div class="ttname"><a href="decls_8h.html#afbc09e16b1a654de04706e07c3212ecb">aaruf_ecc_cd_is_suffix_correct</a></div><div class="ttdeci">bool aaruf_ecc_cd_is_suffix_correct(void *context, const uint8_t *sector)</div><div class="ttdoc">Checks if the suffix (EDC/ECC) of a CD sector is correct (Mode 1).</div><div class="ttdef"><b>Definition</b> <a href="ecc__cd_8c_source.html#l00101">ecc_cd.c:101</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3a5a0811c5ee97536aef900cecb8787713"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a5a0811c5ee97536aef900cecb8787713">DataBlock</a></div><div class="ttdeci">@ DataBlock</div><div class="ttdoc">Block containing data.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00141">enums.h:141</a></div></div>
<div class="ttc" id="aenums_8h_html_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_a74e216af87b18a5fbf0204a52dd1bba0ab92ec5c02efb2acf7fe8a6312fe30c80"><div class="ttname"><a href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0ab92ec5c02efb2acf7fe8a6312fe30c80">SectorStatusErrored</a></div><div class="ttdeci">@ SectorStatusErrored</div><div class="ttdoc">Error during dumping; data may be incomplete or corrupt.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00232">enums.h:232</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_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_ad8ed01ff3ff33333d8e19db4d2818bb6a73bb26133ccd01972725933b00ec3a06"><div class="ttname"><a href="enums_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6a73bb26133ccd01972725933b00ec3a06">UserData</a></div><div class="ttdeci">@ UserData</div><div class="ttdoc">User (main) data.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00046">enums.h:46</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_a0ebe2ffd752f049954b4125ee8840bb5"><div class="ttname"><a href="errors_8h.html#a0ebe2ffd752f049954b4125ee8840bb5">AARUF_ERROR_CANNOT_WRITE_BLOCK_DATA</a></div><div class="ttdeci">#define AARUF_ERROR_CANNOT_WRITE_BLOCK_DATA</div><div class="ttdoc">Failure writing block payload.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00063">errors.h:63</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_a1df49eaa19eaa14891b6aaab966a9bc6"><div class="ttname"><a href="errors_8h.html#a1df49eaa19eaa14891b6aaab966a9bc6">AARUF_READ_ONLY</a></div><div class="ttdeci">#define AARUF_READ_ONLY</div><div class="ttdoc">Operation requires write mode but context is read-only.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00061">errors.h:61</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_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_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_a9c9c207061d0957b1cf76c1a79296a36"><div class="ttname"><a href="errors_8h.html#a9c9c207061d0957b1cf76c1a79296a36">AARUF_ERROR_CANNOT_SET_DDT_ENTRY</a></div><div class="ttdeci">#define AARUF_ERROR_CANNOT_SET_DDT_ENTRY</div><div class="ttdoc">Failed to encode/store a DDT entry (overflow or IO).</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00064">errors.h:64</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_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_af86dd78bcb33b547113460822ed96c3e"><div class="ttname"><a href="errors_8h.html#af86dd78bcb33b547113460822ed96c3e">AARUF_ERROR_CANNOT_WRITE_BLOCK_HEADER</a></div><div class="ttdeci">#define AARUF_ERROR_CANNOT_WRITE_BLOCK_HEADER</div><div class="ttdoc">Failure writing block header.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00062">errors.h:62</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_gga1499e9f8a76cb81b43b7a4b0dbe7e44aa301beaee119622d402dcfb85a214953b"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa301beaee119622d402dcfb85a214953b">VideoNowColor</a></div><div class="ttdeci">@ VideoNowColor</div><div class="ttdoc">Hasbro VideoNow Color disc.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00772">aaru.h:772</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_gga1499e9f8a76cb81b43b7a4b0dbe7e44aa8a082102c8bb98196eaad3fbd8131a86"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa8a082102c8bb98196eaad3fbd8131a86">JaguarCD</a></div><div class="ttdeci">@ JaguarCD</div><div class="ttdoc">Atari Jaguar CD.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00232">aaru.h:232</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_gga1499e9f8a76cb81b43b7a4b0dbe7e44aa953a27e6a4a41c6d9b9bd0d18feeb12c"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa953a27e6a4a41c6d9b9bd0d18feeb12c">VideoNow</a></div><div class="ttdeci">@ VideoNow</div><div class="ttdoc">Hasbro VideoNow 85 mm proprietary video disc.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00771">aaru.h:771</a></div></div>
<div class="ttc" id="agroup__MediaTypes_html_gga1499e9f8a76cb81b43b7a4b0dbe7e44aa9685c678a93fbc28a9b4dbfee8759405"><div class="ttname"><a href="group__MediaTypes.html#gga1499e9f8a76cb81b43b7a4b0dbe7e44aa9685c678a93fbc28a9b4dbfee8759405">VideoNowXp</a></div><div class="ttdeci">@ VideoNowXp</div><div class="ttdoc">Hasbro VideoNow XP higher capacity disc.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00773">aaru.h:773</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="ahash__map_8h_html_a0719b4ee8aaa73765678b6b1db733fcd"><div class="ttname"><a href="hash__map_8h.html#a0719b4ee8aaa73765678b6b1db733fcd">lookup_map</a></div><div class="ttdeci">bool lookup_map(const hash_map_t *map, uint64_t key, uint64_t *out_value)</div><div class="ttdoc">Looks up a value by key in the hash map.</div><div class="ttdef"><b>Definition</b> <a href="hash__map_8c_source.html#l00196">hash_map.c:196</a></div></div>
<div class="ttc" id="ahash__map_8h_html_a56a11edd19b5362f1dd719a11c06f892"><div class="ttname"><a href="hash__map_8h.html#a56a11edd19b5362f1dd719a11c06f892">insert_map</a></div><div class="ttdeci">bool insert_map(hash_map_t *map, uint64_t key, uint64_t value)</div><div class="ttdoc">Inserts a key-value pair into the hash map.</div><div class="ttdef"><b>Definition</b> <a href="hash__map_8c_source.html#l00153">hash_map.c:153</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_a1906cbcaef9f44b8ac4360beb70a0120"><div class="ttname"><a href="internal_8h.html#a1906cbcaef9f44b8ac4360beb70a0120">set_ddt_entry_v2</a></div><div class="ttdeci">bool set_ddt_entry_v2(aaruformat_context *ctx, uint64_t sector_address, bool negative, uint64_t offset, uint64_t block_offset, uint8_t sector_status, uint64_t *ddt_entry)</div><div class="ttdoc">Sets a DDT v2 entry for a given sector address.</div><div class="ttdef"><b>Definition</b> <a href="ddt__v2_8c_source.html#l00988">ddt_v2.c:988</a></div></div>
<div class="ttc" id="alisa__tag_8h_html"><div class="ttname"><a href="lisa__tag_8h.html">lisa_tag.h</a></div><div class="ttdoc">Structure definitions and conversion/serialization function declarations for Lisa family disk tags.</div></div>
<div class="ttc" id="alisa__tag_8h_html_a23a5645f30a45615c752f5fc4ac84c79"><div class="ttname"><a href="lisa__tag_8h.html#a23a5645f30a45615c752f5fc4ac84c79">priam_tag_to_bytes</a></div><div class="ttdeci">uint8_t * priam_tag_to_bytes(priam_tag tag)</div><div class="ttdoc">Serialize a priam_tag into a newly allocated 24-byte big-endian on-disk representation.</div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8c_source.html#l00409">lisa_tag.c:409</a></div></div>
<div class="ttc" id="alisa__tag_8h_html_a37de4ed827409b7ffbae995ce49f87ce"><div class="ttname"><a href="lisa__tag_8h.html#a37de4ed827409b7ffbae995ce49f87ce">bytes_to_priam_tag</a></div><div class="ttdeci">priam_tag bytes_to_priam_tag(const uint8_t *bytes)</div><div class="ttdoc">Parse a 24-byte Priam tag record into a priam_tag structure.</div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8c_source.html#l00112">lisa_tag.c:112</a></div></div>
<div class="ttc" id="alisa__tag_8h_html_a4eab641ba44ca25b3c2c660814b10421"><div class="ttname"><a href="lisa__tag_8h.html#a4eab641ba44ca25b3c2c660814b10421">profile_tag_to_sony</a></div><div class="ttdeci">sony_tag profile_tag_to_sony(profile_tag tag)</div><div class="ttdoc">Convert a profile_tag to a sony_tag.</div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8c_source.html#l00257">lisa_tag.c:257</a></div></div>
<div class="ttc" id="alisa__tag_8h_html_a5fe6bd8526b1d35a2d3a74e9bebd67f6"><div class="ttname"><a href="lisa__tag_8h.html#a5fe6bd8526b1d35a2d3a74e9bebd67f6">sony_tag_to_bytes</a></div><div class="ttdeci">uint8_t * sony_tag_to_bytes(sony_tag tag)</div><div class="ttdoc">Serialize a sony_tag into a newly allocated 12-byte big-endian on-disk representation.</div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8c_source.html#l00466">lisa_tag.c:466</a></div></div>
<div class="ttc" id="alisa__tag_8h_html_a7c7c7b1bb52a9ce59bacb52a22ffc7aa"><div class="ttname"><a href="lisa__tag_8h.html#a7c7c7b1bb52a9ce59bacb52a22ffc7aa">priam_tag_to_profile</a></div><div class="ttdeci">profile_tag priam_tag_to_profile(priam_tag tag)</div><div class="ttdoc">Convert a priam_tag to a profile_tag.</div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8c_source.html#l00325">lisa_tag.c:325</a></div></div>
<div class="ttc" id="alisa__tag_8h_html_a8072e3408e9c04743a3ba492d4bdd6fd"><div class="ttname"><a href="lisa__tag_8h.html#a8072e3408e9c04743a3ba492d4bdd6fd">profile_tag_to_bytes</a></div><div class="ttdeci">uint8_t * profile_tag_to_bytes(profile_tag tag)</div><div class="ttdoc">Serialize a profile_tag into a newly allocated 20-byte big-endian on-disk representation.</div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8c_source.html#l00357">lisa_tag.c:357</a></div></div>
<div class="ttc" id="alisa__tag_8h_html_a83055b16bdb8bda39e129bd908eeccee"><div class="ttname"><a href="lisa__tag_8h.html#a83055b16bdb8bda39e129bd908eeccee">sony_tag_to_profile</a></div><div class="ttdeci">profile_tag sony_tag_to_profile(sony_tag tag)</div><div class="ttdoc">Convert a sony_tag to a profile_tag representation.</div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8c_source.html#l00173">lisa_tag.c:173</a></div></div>
<div class="ttc" id="alisa__tag_8h_html_aaea071654dab25283350e7e49d665f1b"><div class="ttname"><a href="lisa__tag_8h.html#aaea071654dab25283350e7e49d665f1b">bytes_to_sony_tag</a></div><div class="ttdeci">sony_tag bytes_to_sony_tag(const uint8_t *bytes)</div><div class="ttdoc">Parse a 12-byte Sony tag record into a sony_tag structure.</div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8c_source.html#l00082">lisa_tag.c:82</a></div></div>
<div class="ttc" id="alisa__tag_8h_html_abb08e5fe62d9c765bc130d6095e20029"><div class="ttname"><a href="lisa__tag_8h.html#abb08e5fe62d9c765bc130d6095e20029">bytes_to_profile_tag</a></div><div class="ttdeci">profile_tag bytes_to_profile_tag(const uint8_t *bytes)</div><div class="ttdoc">Parse a 20-byte Profile tag record into a profile_tag structure.</div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8c_source.html#l00142">lisa_tag.c:142</a></div></div>
<div class="ttc" id="alisa__tag_8h_html_add0ff257dc9f464cc1c9cc91ca7fbb80"><div class="ttname"><a href="lisa__tag_8h.html#add0ff257dc9f464cc1c9cc91ca7fbb80">sony_tag_to_priam</a></div><div class="ttdeci">priam_tag sony_tag_to_priam(sony_tag tag)</div><div class="ttdoc">Convert a sony_tag to a priam_tag representation.</div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8c_source.html#l00201">lisa_tag.c:201</a></div></div>
<div class="ttc" id="alisa__tag_8h_html_af75fdc8589272b20f3dbd74daa97a6a3"><div class="ttname"><a href="lisa__tag_8h.html#af75fdc8589272b20f3dbd74daa97a6a3">profile_tag_to_priam</a></div><div class="ttdeci">priam_tag profile_tag_to_priam(profile_tag tag)</div><div class="ttdoc">Convert a profile_tag to a priam_tag.</div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8c_source.html#l00228">lisa_tag.c:228</a></div></div>
<div class="ttc" id="alisa__tag_8h_html_afa2fbcaf16b547222adb47e118ee9dcb"><div class="ttname"><a href="lisa__tag_8h.html#afa2fbcaf16b547222adb47e118ee9dcb">priam_tag_to_sony</a></div><div class="ttdeci">sony_tag priam_tag_to_sony(priam_tag tag)</div><div class="ttdoc">Convert a priam_tag to a sony_tag.</div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8c_source.html#l00291">lisa_tag.c:291</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="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_a3b03f118fb2dc3dcef3f87a82238e358"><div class="ttname"><a href="structBlockHeader.html#a3b03f118fb2dc3dcef3f87a82238e358">BlockHeader::identifier</a></div><div class="ttdeci">uint32_t identifier</div><div class="ttdoc">Block identifier, must be BlockType::DataBlock.</div><div class="ttdef"><b>Definition</b> <a href="data_8h_source.html#l00072">data.h:72</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_a8ff40eae6c49f0d9b49825f75e1e2bf8"><div class="ttname"><a href="structBlockHeader.html#a8ff40eae6c49f0d9b49825f75e1e2bf8">BlockHeader::cmpCrc64</a></div><div class="ttdeci">uint64_t cmpCrc64</div><div class="ttdoc">CRC64-ECMA of the compressed payload (cmpLength bytes).</div><div class="ttdef"><b>Definition</b> <a href="data_8h_source.html#l00078">data.h:78</a></div></div>
<div class="ttc" id="astructBlockHeader_html_ab4d9e3a871e0c7f12a881017dac4ca12"><div class="ttname"><a href="structBlockHeader.html#ab4d9e3a871e0c7f12a881017dac4ca12">BlockHeader::crc64</a></div><div class="ttdeci">uint64_t crc64</div><div class="ttdoc">CRC64-ECMA of the uncompressed payload (length bytes).</div><div class="ttdef"><b>Definition</b> <a href="data_8h_source.html#l00079">data.h:79</a></div></div>
<div class="ttc" id="astructBlockHeader_html_ac31ad48f3362a43175c94ec2e30662ad"><div class="ttname"><a href="structBlockHeader.html#ac31ad48f3362a43175c94ec2e30662ad">BlockHeader::type</a></div><div class="ttdeci">uint16_t type</div><div class="ttdoc">Logical data classification (value from DataType).</div><div class="ttdef"><b>Definition</b> <a href="data_8h_source.html#l00073">data.h:73</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="astructDdtHeader2_html_aa67b097c3a20f926ede495d27152f1c0"><div class="ttname"><a href="structDdtHeader2.html#aa67b097c3a20f926ede495d27152f1c0">DdtHeader2::blockAlignmentShift</a></div><div class="ttdeci">uint8_t blockAlignmentShift</div><div class="ttdoc">2^blockAlignmentShift = block alignment boundary in bytes.</div><div class="ttdef"><b>Definition</b> <a href="ddt_8h_source.html#l00154">ddt.h:154</a></div></div>
<div class="ttc" id="astructDdtHeader2_html_ad9a2beb3a79bc6c239ba04fe341e0cde"><div class="ttname"><a href="structDdtHeader2.html#ad9a2beb3a79bc6c239ba04fe341e0cde">DdtHeader2::dataShift</a></div><div class="ttdeci">uint8_t dataShift</div><div class="ttdoc">2^dataShift = sectors represented per increment in blockIndex field.</div><div class="ttdef"><b>Definition</b> <a href="ddt_8h_source.html#l00155">ddt.h:155</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_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="astructIndexEntry_html"><div class="ttname"><a href="structIndexEntry.html">IndexEntry</a></div><div class="ttdoc">Single index entry describing a block&#39;s type, (optional) data classification, and file offset.</div><div class="ttdef"><b>Definition</b> <a href="index_8h_source.html#l00108">index.h:109</a></div></div>
<div class="ttc" id="astructIndexEntry_html_a4b5c7115ac83019c3f77c6f047e5f75e"><div class="ttname"><a href="structIndexEntry.html#a4b5c7115ac83019c3f77c6f047e5f75e">IndexEntry::blockType</a></div><div class="ttdeci">uint32_t blockType</div><div class="ttdoc">Block identifier of the referenced block (value from BlockType).</div><div class="ttdef"><b>Definition</b> <a href="index_8h_source.html#l00110">index.h:110</a></div></div>
<div class="ttc" id="astructIndexEntry_html_a854951a64192d7e4cdcfa6dd6fd2b3ea"><div class="ttname"><a href="structIndexEntry.html#a854951a64192d7e4cdcfa6dd6fd2b3ea">IndexEntry::offset</a></div><div class="ttdeci">uint64_t offset</div><div class="ttdoc">Absolute byte offset in the image where the referenced block header begins.</div><div class="ttdef"><b>Definition</b> <a href="index_8h_source.html#l00112">index.h:112</a></div></div>
<div class="ttc" id="astructIndexEntry_html_ae5d35082a756e0388efbf5fabbe93d10"><div class="ttname"><a href="structIndexEntry.html#ae5d35082a756e0388efbf5fabbe93d10">IndexEntry::dataType</a></div><div class="ttdeci">uint16_t dataType</div><div class="ttdoc">Data classification (value from DataType) or unused for untyped blocks.</div><div class="ttdef"><b>Definition</b> <a href="index_8h_source.html#l00111">index.h:111</a></div></div>
<div class="ttc" id="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_a74f57f3c7758ff4e156b2cceff461242"><div class="ttname"><a href="structTrackEntry.html#a74f57f3c7758ff4e156b2cceff461242">TrackEntry::session</a></div><div class="ttdeci">uint8_t session</div><div class="ttdoc">Session number (1-based). 1 for single-session discs.</div><div class="ttdef"><b>Definition</b> <a href="optical_8h_source.html#l00078">optical.h:78</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_a7c545a1a4aa3547eacac09b3652034dd"><div class="ttname"><a href="structTrackEntry.html#a7c545a1a4aa3547eacac09b3652034dd">TrackEntry::end</a></div><div class="ttdeci">int64_t end</div><div class="ttdoc">Inclusive ending LBA of the track.</div><div class="ttdef"><b>Definition</b> <a href="optical_8h_source.html#l00076">optical.h:76</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_a0d4e1977913ce67e85bced41c58e5dd2"><div class="ttname"><a href="structaaruformat__context.html#a0d4e1977913ce67e85bced41c58e5dd2">aaruformat_context::deduplicate</a></div><div class="ttdeci">bool deduplicate</div><div class="ttdoc">Storage deduplication active (duplicates coalesce).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00298">context.h:298</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a12497927c4c5d82f44307d0e8fff0960"><div class="ttname"><a href="structaaruformat__context.html#a12497927c4c5d82f44307d0e8fff0960">aaruformat_context::sector_suffix_length</a></div><div class="ttdeci">size_t sector_suffix_length</div><div class="ttdoc">Length of sector_suffix.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00285">context.h:285</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a130daf19dbed426f1c4c6f82691bc054"><div class="ttname"><a href="structaaruformat__context.html#a130daf19dbed426f1c4c6f82691bc054">aaruformat_context::compression_enabled</a></div><div class="ttdeci">bool compression_enabled</div><div class="ttdoc">True if block compression enabled (writing path).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00299">context.h:299</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a1387f95c2da152594f29c5c276e5dbc5"><div class="ttname"><a href="structaaruformat__context.html#a1387f95c2da152594f29c5c276e5dbc5">aaruformat_context::last_written_block</a></div><div class="ttdeci">uint64_t last_written_block</div><div class="ttdoc">Last written block number (write path).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00283">context.h:283</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_a18bee1dd72fd1ca4957ff6ddfebce343"><div class="ttname"><a href="structaaruformat__context.html#a18bee1dd72fd1ca4957ff6ddfebce343">aaruformat_context::sector_hash_map</a></div><div class="ttdeci">hash_map_t * sector_hash_map</div><div class="ttdoc">Deduplication hash map (fingerprint-&gt;entry mapping).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00253">context.h:253</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a21dffad51cfb58f5f71f7babee2aaceb"><div class="ttname"><a href="structaaruformat__context.html#a21dffad51cfb58f5f71f7babee2aaceb">aaruformat_context::sha256_context</a></div><div class="ttdeci">sha256_ctx sha256_context</div><div class="ttdoc">Opaque SHA-256 context for streaming updates.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00272">context.h:272</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a2e2c23ecc1d15087ef46e2591c47194a"><div class="ttname"><a href="structaaruformat__context.html#a2e2c23ecc1d15087ef46e2591c47194a">aaruformat_context::calculating_sha256</a></div><div class="ttdeci">bool calculating_sha256</div><div class="ttdoc">True if whole-image SHA-256 being calculated on-the-fly.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00275">context.h:275</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_a3c44b0cbcfb4586ce666dcd97a3dd85a"><div class="ttname"><a href="structaaruformat__context.html#a3c44b0cbcfb4586ce666dcd97a3dd85a">aaruformat_context::md5_context</a></div><div class="ttdeci">md5_ctx md5_context</div><div class="ttdoc">Opaque MD5 context for streaming updates.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00270">context.h:270</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_a4e4c12388d90a11cf14266d1215ce13e"><div class="ttname"><a href="structaaruformat__context.html#a4e4c12388d90a11cf14266d1215ce13e">aaruformat_context::calculating_sha1</a></div><div class="ttdeci">bool calculating_sha1</div><div class="ttdoc">True if whole-image SHA-1 being calculated on-the-fly.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00274">context.h:274</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_a551d4fb5a3213106d01d369e98bdf3c8"><div class="ttname"><a href="structaaruformat__context.html#a551d4fb5a3213106d01d369e98bdf3c8">aaruformat_context::rewinded</a></div><div class="ttdeci">bool rewinded</div><div class="ttdoc">True if stream has been rewound after open (write path).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00293">context.h:293</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_a6711c6fceb17675a6ff3023845a9728a"><div class="ttname"><a href="structaaruformat__context.html#a6711c6fceb17675a6ff3023845a9728a">aaruformat_context::current_block_offset</a></div><div class="ttdeci">int current_block_offset</div><div class="ttdoc">Logical offset inside block (units: bytes or sectors depending on path).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00288">context.h:288</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a6f61f9ea20f4e3b791a0d6388dd43651"><div class="ttname"><a href="structaaruformat__context.html#a6f61f9ea20f4e3b791a0d6388dd43651">aaruformat_context::is_writing</a></div><div class="ttdeci">bool is_writing</div><div class="ttdoc">True if context opened/created for writing.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00292">context.h:292</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a729b87257c0b5d1e9abf1af133a4b0f3"><div class="ttname"><a href="structaaruformat__context.html#a729b87257c0b5d1e9abf1af133a4b0f3">aaruformat_context::spamsum_context</a></div><div class="ttdeci">spamsum_ctx * spamsum_context</div><div class="ttdoc">Opaque SpamSum context for streaming updates.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00267">context.h:267</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a74672215c728bb14ad860c96969a56dc"><div class="ttname"><a href="structaaruformat__context.html#a74672215c728bb14ad860c96969a56dc">aaruformat_context::sector_prefix_offset</a></div><div class="ttdeci">size_t sector_prefix_offset</div><div class="ttdoc">Current position in sector_prefix.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00286">context.h:286</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a78edd22a0d4a0cbbbbdb783b3df4ba5a"><div class="ttname"><a href="structaaruformat__context.html#a78edd22a0d4a0cbbbbdb783b3df4ba5a">aaruformat_context::current_block_header</a></div><div class="ttdeci">BlockHeader current_block_header</div><div class="ttdoc">Header for block currently being assembled (write path).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00281">context.h:281</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_a80b7de958916f11cc61ef6871a376a92"><div class="ttname"><a href="structaaruformat__context.html#a80b7de958916f11cc61ef6871a376a92">aaruformat_context::writing_buffer</a></div><div class="ttdeci">uint8_t * writing_buffer</div><div class="ttdoc">Accumulation buffer for current block data.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00280">context.h:280</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_a865120510888fac8bb3597b57d515ba7"><div class="ttname"><a href="structaaruformat__context.html#a865120510888fac8bb3597b57d515ba7">aaruformat_context::calculating_spamsum</a></div><div class="ttdeci">bool calculating_spamsum</div><div class="ttdoc">True if whole-image SpamSum being calculated on-the-fly.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00276">context.h:276</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a8a241de4e05e4bd18ce6b425099ba855"><div class="ttname"><a href="structaaruformat__context.html#a8a241de4e05e4bd18ce6b425099ba855">aaruformat_context::sector_prefix_length</a></div><div class="ttdeci">size_t sector_prefix_length</div><div class="ttdoc">Length of sector_prefix.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00284">context.h:284</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_a8b89a7e0e6369dad38e23dabaf4b49a4"><div class="ttname"><a href="structaaruformat__context.html#a8b89a7e0e6369dad38e23dabaf4b49a4">aaruformat_context::blake3_context</a></div><div class="ttdeci">blake3_hasher * blake3_context</div><div class="ttdoc">Opaque BLAKE3 context for streaming updates.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00268">context.h:268</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a8be6dd9da00d771d24c7a6295f1c1d02"><div class="ttname"><a href="structaaruformat__context.html#a8be6dd9da00d771d24c7a6295f1c1d02">aaruformat_context::calculating_blake3</a></div><div class="ttdeci">bool calculating_blake3</div><div class="ttdoc">True if whole-image BLAKE3 being calculated on-the-fly.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00277">context.h:277</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a939b702f75e80062bc635add4c3ab142"><div class="ttname"><a href="structaaruformat__context.html#a939b702f75e80062bc635add4c3ab142">aaruformat_context::next_block_position</a></div><div class="ttdeci">uint64_t next_block_position</div><div class="ttdoc">Absolute file offset where next block will be written.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00282">context.h:282</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a95770f959cae3b6b34e2b1ae592a7136"><div class="ttname"><a href="structaaruformat__context.html#a95770f959cae3b6b34e2b1ae592a7136">aaruformat_context::calculating_md5</a></div><div class="ttdeci">bool calculating_md5</div><div class="ttdoc">True if whole-image MD5 being calculated on-the-fly.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00273">context.h:273</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a9bb3ead5fcb320a1a1b883a9eb1217d8"><div class="ttname"><a href="structaaruformat__context.html#a9bb3ead5fcb320a1a1b883a9eb1217d8">aaruformat_context::sector_suffix_offset</a></div><div class="ttdeci">size_t sector_suffix_offset</div><div class="ttdoc">Current position in sector_suffix.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00287">context.h:287</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_aab497e0a30c0001b2ca181467973927c"><div class="ttname"><a href="structaaruformat__context.html#aab497e0a30c0001b2ca181467973927c">aaruformat_context::writing_buffer_position</a></div><div class="ttdeci">int writing_buffer_position</div><div class="ttdoc">Current size / position within writingBuffer.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00289">context.h:289</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_aae3f895815d8ace4d1eec6973f9b48c3"><div class="ttname"><a href="structaaruformat__context.html#aae3f895815d8ace4d1eec6973f9b48c3">aaruformat_context::crc64_context</a></div><div class="ttdeci">crc64_ctx * crc64_context</div><div class="ttdoc">Opaque CRC64 context for streaming updates.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00249">context.h:249</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_ab97a719a5b4186695b67143db7376152"><div class="ttname"><a href="structaaruformat__context.html#ab97a719a5b4186695b67143db7376152">aaruformat_context::index_entries</a></div><div class="ttdeci">UT_array * index_entries</div><div class="ttdoc">Flattened index entries (UT_array of IndexEntry).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00252">context.h:252</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_ad1e28bac5a6c9bfdb8d18793686fc755"><div class="ttname"><a href="structaaruformat__context.html#ad1e28bac5a6c9bfdb8d18793686fc755">aaruformat_context::sha1_context</a></div><div class="ttdeci">sha1_ctx sha1_context</div><div class="ttdoc">Opaque SHA-1 context for streaming updates.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00271">context.h:271</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_adc67f6a6ef1602648bb064d47eb1fe88"><div class="ttname"><a href="structaaruformat__context.html#adc67f6a6ef1602648bb064d47eb1fe88">aaruformat_context::lzma_dict_size</a></div><div class="ttdeci">uint32_t lzma_dict_size</div><div class="ttdoc">LZMA dictionary size (writing path).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00297">context.h:297</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_ae59a9524ceefd02ae46529097137a9fc"><div class="ttname"><a href="structaaruformat__context.html#ae59a9524ceefd02ae46529097137a9fc">aaruformat_context::current_track_type</a></div><div class="ttdeci">uint8_t current_track_type</div><div class="ttdoc">Current track type (when writing optical images with tracks, needed for block compression type).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00290">context.h:290</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_ae867f128af265e78c6ef2da6baa9069a"><div class="ttname"><a href="structaaruformat__context.html#ae867f128af265e78c6ef2da6baa9069a">aaruformat_context::writing_long</a></div><div class="ttdeci">bool writing_long</div><div class="ttdoc">True if writing long sectors.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00294">context.h:294</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_a95bf0de1de367f90491367921069c9e2"><div class="ttname"><a href="structmediaTagEntry.html#a95bf0de1de367f90491367921069c9e2">mediaTagEntry::type</a></div><div class="ttdeci">int32_t type</div><div class="ttdoc">Numeric type identifier.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00121">context.h:121</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 class="ttc" id="astructpriam__tag_html"><div class="ttname"><a href="structpriam__tag.html">priam_tag</a></div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8h_source.html#l00062">lisa_tag.h:63</a></div></div>
<div class="ttc" id="astructprofile__tag_html"><div class="ttname"><a href="structprofile__tag.html">profile_tag</a></div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8h_source.html#l00046">lisa_tag.h:47</a></div></div>
<div class="ttc" id="astructsony__tag_html"><div class="ttname"><a href="structsony__tag.html">sony_tag</a></div><div class="ttdef"><b>Definition</b> <a href="lisa__tag_8h_source.html#l00034">lisa_tag.h:35</a></div></div>
<div class="ttc" id="awrite_8c_html_a2402812f5e04ba16765208c0b70fa6c5"><div class="ttname"><a href="write_8c.html#a2402812f5e04ba16765208c0b70fa6c5">aaruf_close_current_block</a></div><div class="ttdeci">int32_t aaruf_close_current_block(aaruformat_context *ctx)</div><div class="ttdoc">Finalizes and writes the current data block to the AaruFormat image file.</div><div class="ttdef"><b>Definition</b> <a href="#l01393">write.c:1393</a></div></div>
<div class="ttc" id="awrite_8c_html_a2dc7f13b0cd44153f1456d3ed4c15a0c"><div class="ttname"><a href="write_8c.html#a2dc7f13b0cd44153f1456d3ed4c15a0c">aaruf_write_sector_tag</a></div><div class="ttdeci">int32_t aaruf_write_sector_tag(void *context, const uint64_t sector_address, const bool negative, const uint8_t *data, const size_t length, const int32_t tag)</div><div class="ttdoc">Writes per-sector tag data (auxiliary metadata) for a specific sector.</div><div class="ttdef"><b>Definition</b> <a href="#l02059">write.c:2059</a></div></div>
<div class="ttc" id="awrite_8c_html_a35c5d9f10c59a1efe8f625963c9e91ba"><div class="ttname"><a href="write_8c.html#a35c5d9f10c59a1efe8f625963c9e91ba">aaruf_write_media_tag</a></div><div class="ttdeci">int32_t aaruf_write_media_tag(void *context, const uint8_t *data, const int32_t type, const uint32_t length)</div><div class="ttdoc">Writes a media tag to the AaruFormat image, storing medium-specific metadata and descriptors.</div><div class="ttdef"><b>Definition</b> <a href="#l01790">write.c:1790</a></div></div>
<div class="ttc" id="awrite_8c_html_a4b8cd2bb5fd9e2c670a0a13695c6f9e3"><div class="ttname"><a href="write_8c.html#a4b8cd2bb5fd9e2c670a0a13695c6f9e3">aaruf_write_sector</a></div><div class="ttdeci">int32_t aaruf_write_sector(void *context, uint64_t sector_address, bool negative, const uint8_t *data, uint8_t sector_status, uint32_t length)</div><div class="ttdoc">Writes a sector to the AaruFormat image.</div><div class="ttdef"><b>Definition</b> <a href="#l00098">write.c:98</a></div></div>
<div class="ttc" id="awrite_8c_html_a69ca66242c0becf7640b3d1cc8da8f9c"><div class="ttname"><a href="write_8c.html#a69ca66242c0becf7640b3d1cc8da8f9c">aaruf_write_sector_long</a></div><div class="ttdeci">int32_t aaruf_write_sector_long(void *context, uint64_t sector_address, bool negative, const uint8_t *data, uint8_t sector_status, uint32_t length)</div><div class="ttdoc">Writes a full (&quot;long&quot;) raw sector from optical or block media, parsing structure and validating conte...</div><div class="ttdef"><b>Definition</b> <a href="#l00532">write.c:532</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="write_8c.html">write.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>