Files
libaaruformat/docs/html/metadata_8c_source.html

1994 lines
382 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/metadata.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('metadata_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">metadata.c</div></div>
</div><!--header-->
<div class="contents">
<a href="metadata_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> * This file is part of the Aaru Data Preservation Suite.</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> * Copyright (c) 2019-2025 Natalia Portillo.</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> *</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> * This library is free software; you can redistribute it and/or modify</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> * it under the terms of the GNU Lesser General Public License as</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * published by the Free Software Foundation; either version 2.1 of the</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> * License, or (at your option) any later version.</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> *</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> * This library is distributed in the hope that it will be useful, but</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> * Lesser General Public License for more details.</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> *</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> * You should have received a copy of the GNU Lesser General Public</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> * License along with this library; if not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"> */</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;stddef.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> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &quot;<a class="code" href="aaruformat_8h.html">aaruformat.h</a>&quot;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &quot;<a class="code" href="log_8h.html">log.h</a>&quot;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span></div>
<div class="foldopen" id="foldopen00094" data-start="{" data-end="}">
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="decls_8h.html#abbcf276c3518b3e666885ab250fd374e"> 94</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#abbcf276c3518b3e666885ab250fd374e">aaruf_get_geometry</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint32_t *cylinders, uint32_t *heads, uint32_t *sectors_per_track)</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span>{</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_geometry(%p, %p, %p, %p)&quot;</span>, context, cylinders, heads, sectors_per_track);</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = NULL;</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_geometry() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</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="l00106" name="l00106"></a><span class="lineno"> 106</span> }</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> ctx = context;</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</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="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_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_geometry() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</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="l00117" name="l00117"></a><span class="lineno"> 117</span> }</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9ac9d12e8fde7a69c01cdf2dc32f33bd">geometry_block</a>.<a class="code hl_variable" href="structGeometryBlockHeader.html#a233b19be8361b1c3c1963d8521924138">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a76691ea3f772bf28e7446d171e205db2">GeometryBlock</a>)</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> {</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;No geometry block present&quot;</span>);</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_geometry() = AARUF_ERROR_CANNOT_READ_BLOCK&quot;</span>);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a67753dacbd0ffdd397e563a8a5ecd271">AARUF_ERROR_CANNOT_READ_BLOCK</a>;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> }</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> *cylinders = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9ac9d12e8fde7a69c01cdf2dc32f33bd">geometry_block</a>.<a class="code hl_variable" href="structGeometryBlockHeader.html#a38855dea9b1773ea7f6b837c973106d9">cylinders</a>;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> *heads = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9ac9d12e8fde7a69c01cdf2dc32f33bd">geometry_block</a>.<a class="code hl_variable" href="structGeometryBlockHeader.html#a9ed0a8f6307eb38589ef4502cef533ee">heads</a>;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> *sectors_per_track = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9ac9d12e8fde7a69c01cdf2dc32f33bd">geometry_block</a>.<a class="code hl_variable" href="structGeometryBlockHeader.html#aea5822d390ac6b2a3b8b2c6250046cd6">sectorsPerTrack</a>;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_geometry(%p, %u, %u, %u) = AARUF_STATUS_OK&quot;</span>, context, *cylinders, *heads,</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> *sectors_per_track);</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</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="l00134" name="l00134"></a><span class="lineno"> 134</span>}</div>
</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span></div>
<div class="foldopen" id="foldopen00229" data-start="{" data-end="}">
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"><a class="line" href="decls_8h.html#a21f4b3cf398b1a1c008c9a070ef9277b"> 229</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#ad0b5b12288f159780d065b12ba12bdcc">aaruf_set_geometry</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint32_t cylinders, <span class="keyword">const</span> uint32_t heads,</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="keyword">const</span> uint32_t sectors_per_track)</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_geometry(%p, %u, %u, %u)&quot;</span>, context, cylinders, heads, sectors_per_track);</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> </div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = NULL;</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">if</span>(context == NULL)</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> {</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <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="l00239" name="l00239"></a><span class="lineno"> 239</span> </div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_geometry() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</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="l00242" name="l00242"></a><span class="lineno"> 242</span> }</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> ctx = context;</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">// Not a libaaruformat context</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#a7dc0a0fe0bf6223ff4587fd01c360b76">magic</a> != <a class="code hl_define" href="consts_8h.html#a3c3ba66fe2b547655c9e4b16a1ba519a">AARU_MAGIC</a>)</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#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_geometry() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</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="l00253" name="l00253"></a><span class="lineno"> 253</span> }</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> </div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</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="l00257" name="l00257"></a><span class="lineno"> 257</span> {</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Trying to write a read-only image&quot;</span>);</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> </div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</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="l00261" name="l00261"></a><span class="lineno"> 261</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="l00262" name="l00262"></a><span class="lineno"> 262</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> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9ac9d12e8fde7a69c01cdf2dc32f33bd">geometry_block</a>.<a class="code hl_variable" href="structGeometryBlockHeader.html#a233b19be8361b1c3c1963d8521924138">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a76691ea3f772bf28e7446d171e205db2">GeometryBlock</a>;</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9ac9d12e8fde7a69c01cdf2dc32f33bd">geometry_block</a>.<a class="code hl_variable" href="structGeometryBlockHeader.html#a38855dea9b1773ea7f6b837c973106d9">cylinders</a> = cylinders;</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9ac9d12e8fde7a69c01cdf2dc32f33bd">geometry_block</a>.<a class="code hl_variable" href="structGeometryBlockHeader.html#a9ed0a8f6307eb38589ef4502cef533ee">heads</a> = heads;</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#a9ac9d12e8fde7a69c01cdf2dc32f33bd">geometry_block</a>.<a class="code hl_variable" href="structGeometryBlockHeader.html#aea5822d390ac6b2a3b8b2c6250046cd6">sectorsPerTrack</a> = sectors_per_track;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a29c17435980ac94547f471485a891f54">cylinders</a> = cylinders;</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab213059edf055cf1c3e2021bc395c78e">heads</a> = heads;</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaeb71d74c7d9236d80186a25066326a1">sectors_per_track</a> = sectors_per_track;</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> </div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_geometry(%p, %u, %u, %u) = AARUF_STATUS_OK&quot;</span>, context, cylinders, heads, sectors_per_track);</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</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="l00274" name="l00274"></a><span class="lineno"> 274</span>}</div>
</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span></div>
<div class="foldopen" id="foldopen00363" data-start="{" data-end="}">
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"><a class="line" href="decls_8h.html#a00537ecc9cb55b4ce3c92d61a8cea094"> 363</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a10d528163caf65134a7cec4a0c0a33b8">aaruf_set_media_sequence</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> int32_t sequence, <span class="keyword">const</span> int32_t last_sequence)</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span>{</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_media_sequence(%p, %d, %d)&quot;</span>, context, sequence, last_sequence);</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> </div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> {</div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> <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="l00371" name="l00371"></a><span class="lineno"> 371</span> </div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_sequence() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</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="l00374" name="l00374"></a><span class="lineno"> 374</span> }</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> </div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> </div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</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="l00380" name="l00380"></a><span class="lineno"> 380</span> {</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</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="l00382" name="l00382"></a><span class="lineno"> 382</span> </div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_sequence() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</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="l00385" name="l00385"></a><span class="lineno"> 385</span> }</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> </div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</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="l00389" name="l00389"></a><span class="lineno"> 389</span> {</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</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="l00391" name="l00391"></a><span class="lineno"> 391</span> </div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_sequence() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</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="l00394" name="l00394"></a><span class="lineno"> 394</span> }</div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> </div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> <span class="comment">// Initialize</span></div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>;</div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> </div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a1359ce7deda764ea267459f3f5906473">mediaSequence</a> = sequence;</div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aacd243f7f5a78c6087b797328197f522">lastMediaSequence</a> = last_sequence;</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> </div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_sequence(%p, %d, %d) = AARUF_STATUS_OK&quot;</span>, context, sequence, last_sequence);</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</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="l00404" name="l00404"></a><span class="lineno"> 404</span>}</div>
</div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span></div>
<div class="foldopen" id="foldopen00493" data-start="{" data-end="}">
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"><a class="line" href="decls_8h.html#a1da2dd0571762fa7c13bc956ec12dfab"> 493</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#af28837461d12252d8258032e370585ae">aaruf_set_creator</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> int32_t length)</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span>{</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_creator(%p, %p, %d)&quot;</span>, context, data, length);</div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> </div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> {</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> <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="l00501" name="l00501"></a><span class="lineno"> 501</span> </div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_creator() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</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="l00504" name="l00504"></a><span class="lineno"> 504</span> }</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> </div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> </div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</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="l00510" name="l00510"></a><span class="lineno"> 510</span> {</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</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="l00512" name="l00512"></a><span class="lineno"> 512</span> </div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_creator() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</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="l00515" name="l00515"></a><span class="lineno"> 515</span> }</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> </div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</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="l00519" name="l00519"></a><span class="lineno"> 519</span> {</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</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="l00521" name="l00521"></a><span class="lineno"> 521</span> </div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_creator() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1df49eaa19eaa14891b6aaab966a9bc6">AARUF_READ_ONLY</a>;</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> }</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> </div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> <span class="comment">// Initialize</span></div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>;</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> </div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <span class="comment">// Reserve memory</span></div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> uint8_t *copy = malloc(length);</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> <span class="keywordflow">if</span>(copy == NULL)</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> {</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for creator&quot;</span>);</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</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="l00535" name="l00535"></a><span class="lineno"> 535</span> }</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> </div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> memcpy(copy, data, length);</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a0c15ef634690890bf80719046faa0230">creator</a> != NULL) free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a0c15ef634690890bf80719046faa0230">creator</a>);</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a0c15ef634690890bf80719046faa0230">creator</a> = copy;</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#af620858c254ea17f2d75b065134239c8">creatorLength</a> = length;</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_set_creator(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, data, length);</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#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span>}</div>
</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span></div>
<div class="foldopen" id="foldopen00607" data-start="{" data-end="}">
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"><a class="line" href="decls_8h.html#af7fcca1ab5ff0422ec81ec6e99001b38"> 607</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#ad24b15e067720825c47610e9477bfc2a">aaruf_set_comments</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> int32_t length)</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_comments(%p, %p, %d)&quot;</span>, context, data, length);</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> </div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> {</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</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="l00615" name="l00615"></a><span class="lineno"> 615</span> </div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_comments() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</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="l00618" name="l00618"></a><span class="lineno"> 618</span> }</div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> </div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> </div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</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="l00624" name="l00624"></a><span class="lineno"> 624</span> {</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</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="l00626" name="l00626"></a><span class="lineno"> 626</span> </div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_comments() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</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="l00629" name="l00629"></a><span class="lineno"> 629</span> }</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> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</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="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;Trying to write a read-only image&quot;</span>);</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> </div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_comments() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</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="l00638" name="l00638"></a><span class="lineno"> 638</span> }</div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> </div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> <span class="comment">// Initialize</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#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</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="comment">// Reserve memory</span></div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> uint8_t *copy = malloc(length);</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> <span class="keywordflow">if</span>(copy == NULL)</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> {</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for comments&quot;</span>);</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</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="l00649" name="l00649"></a><span class="lineno"> 649</span> }</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> </div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> memcpy(copy, data, length);</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#ab08395cd8ed98def2b5886c35fbad605">comments</a> != NULL) free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab08395cd8ed98def2b5886c35fbad605">comments</a>);</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab08395cd8ed98def2b5886c35fbad605">comments</a> = copy;</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a0bbbf0b6d7b48ebdc07d4a5e1138044f">commentsLength</a> = length;</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> </div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_comments(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, data, length);</div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</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="l00659" name="l00659"></a><span class="lineno"> 659</span>}</div>
</div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span></div>
<div class="foldopen" id="foldopen00720" data-start="{" data-end="}">
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"><a class="line" href="decls_8h.html#a37f50b38ceaee7db0b7731ee978b8241"> 720</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a2f344544e412db0bfb46d3dfb509dd91">aaruf_set_media_title</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> int32_t length)</div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span>{</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_media_title(%p, %p, %d)&quot;</span>, context, data, length);</div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> </div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> <span class="keywordflow">if</span>(context == NULL)</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> <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="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#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_title() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</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="l00731" name="l00731"></a><span class="lineno"> 731</span> }</div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> </div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</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> <span class="comment">// Not a libaaruformat context</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#a7dc0a0fe0bf6223ff4587fd01c360b76">magic</a> != <a class="code hl_define" href="consts_8h.html#a3c3ba66fe2b547655c9e4b16a1ba519a">AARU_MAGIC</a>)</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> <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="l00739" name="l00739"></a><span class="lineno"> 739</span> </div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_title() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</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="l00742" name="l00742"></a><span class="lineno"> 742</span> }</div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> </div>
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</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="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#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Trying to write a read-only image&quot;</span>);</div>
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"> 748</span> </div>
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_title() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</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="l00751" name="l00751"></a><span class="lineno"> 751</span> }</div>
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span> </div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> <span class="comment">// Initialize</span></div>
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"> 754</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>;</div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> </div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> <span class="comment">// Reserve memory</span></div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> uint8_t *copy = malloc(length);</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> <span class="keywordflow">if</span>(copy == NULL)</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> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for media title&quot;</span>);</div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</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="l00762" name="l00762"></a><span class="lineno"> 762</span> }</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> </div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> memcpy(copy, data, length);</div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aeb5bda76e0ea176598a04be97b7d5683">media_title</a> != NULL) free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aeb5bda76e0ea176598a04be97b7d5683">media_title</a>);</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aeb5bda76e0ea176598a04be97b7d5683">media_title</a> = copy;</div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a68deb35b7b070dcc18c790289192741c">mediaTitleLength</a> = length;</div>
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> </div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_title(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, data, length);</div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</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="l00772" name="l00772"></a><span class="lineno"> 772</span>}</div>
</div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span></div>
<div class="foldopen" id="foldopen00832" data-start="{" data-end="}">
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"><a class="line" href="decls_8h.html#a3d46262ff1f9d51d57d1e95648f4083b"> 832</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#add92b8c91ede6a62dfda5f8980c3ce6d">aaruf_set_media_manufacturer</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> int32_t length)</div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span>{</div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_media_manufacturer(%p, %p, %d)&quot;</span>, context, data, length);</div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> </div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> <span class="keywordflow">if</span>(context == NULL)</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> <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="l00840" name="l00840"></a><span class="lineno"> 840</span> </div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_manufacturer() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</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="l00843" name="l00843"></a><span class="lineno"> 843</span> }</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> </div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> </div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</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="l00849" name="l00849"></a><span class="lineno"> 849</span> {</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</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="l00851" name="l00851"></a><span class="lineno"> 851</span> </div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_manufacturer() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</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="l00854" name="l00854"></a><span class="lineno"> 854</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> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</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="l00858" name="l00858"></a><span class="lineno"> 858</span> {</div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</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="l00860" name="l00860"></a><span class="lineno"> 860</span> </div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_manufacturer() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</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="l00863" name="l00863"></a><span class="lineno"> 863</span> }</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> </div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> <span class="comment">// Initialize</span></div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</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="comment">// Reserve memory</span></div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> uint8_t *copy = malloc(length);</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> <span class="keywordflow">if</span>(copy == NULL)</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#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for media manufacturer&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> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span> memcpy(copy, data, length);</div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#afd13345e6ab5072d97d9b3bbe238ecea">media_manufacturer</a> != NULL) free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#afd13345e6ab5072d97d9b3bbe238ecea">media_manufacturer</a>);</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#afd13345e6ab5072d97d9b3bbe238ecea">media_manufacturer</a> = copy;</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#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a7f2956f787d72b6981a22c050c0889cf">mediaManufacturerLength</a> = length;</div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> </div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_manufacturer(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, data, length);</div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</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="l00884" name="l00884"></a><span class="lineno"> 884</span>}</div>
</div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span></div>
<div class="foldopen" id="foldopen00939" data-start="{" data-end="}">
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"><a class="line" href="decls_8h.html#a8eed9fbf0341f48bac755524f4c99ef2"> 939</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a0ed36b14e49f1e924906d9c4b26d6214">aaruf_set_media_model</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> int32_t length)</div>
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"> 940</span>{</div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_media_model(%p, %p, %d)&quot;</span>, context, data, length);</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> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"> 944</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span> {</div>
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno"> 946</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="l00947" name="l00947"></a><span class="lineno"> 947</span> </div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_model() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</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="l00950" name="l00950"></a><span class="lineno"> 950</span> }</div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</span> </div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> </div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"> 954</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"> 955</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="l00956" name="l00956"></a><span class="lineno"> 956</span> {</div>
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"> 957</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="l00958" name="l00958"></a><span class="lineno"> 958</span> </div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_model() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</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="l00961" name="l00961"></a><span class="lineno"> 961</span> }</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> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno"> 964</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="l00965" name="l00965"></a><span class="lineno"> 965</span> {</div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</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="l00967" name="l00967"></a><span class="lineno"> 967</span> </div>
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"> 968</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_model() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</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="l00970" name="l00970"></a><span class="lineno"> 970</span> }</div>
<div class="line"><a id="l00971" name="l00971"></a><span class="lineno"> 971</span> </div>
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"> 972</span> <span class="comment">// Initialize</span></div>
<div class="line"><a id="l00973" name="l00973"></a><span class="lineno"> 973</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>;</div>
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno"> 974</span> </div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</span> <span class="comment">// Reserve memory</span></div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"> 976</span> uint8_t *copy = malloc(length);</div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span> <span class="keywordflow">if</span>(copy == 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 media model&quot;</span>);</div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</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="l00981" name="l00981"></a><span class="lineno"> 981</span> }</div>
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"> 982</span> </div>
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"> 983</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l00984" name="l00984"></a><span class="lineno"> 984</span> memcpy(copy, data, length);</div>
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"> 985</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4ecbf4064d4ab0440e922e1c096b38dc">media_model</a> != NULL) free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4ecbf4064d4ab0440e922e1c096b38dc">media_model</a>);</div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4ecbf4064d4ab0440e922e1c096b38dc">media_model</a> = copy;</div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a9438f57b0304b42912b8c66e5a0f1051">mediaModelLength</a> = length;</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> </div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_model(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, data, length);</div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</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="l00991" name="l00991"></a><span class="lineno"> 991</span>}</div>
</div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span></div>
<div class="foldopen" id="foldopen01054" data-start="{" data-end="}">
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"><a class="line" href="decls_8h.html#a2dff9d23775ba429c38efd251844092d"> 1054</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#ad06ae4d49d6de002ef565108c73451e1">aaruf_set_media_serial_number</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> int32_t length)</div>
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span>{</div>
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_media_serial_number(%p, %p, %d)&quot;</span>, context, data, length);</div>
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> </div>
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span> {</div>
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_serial_number() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</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="l01065" name="l01065"></a><span class="lineno"> 1065</span> }</div>
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span> </div>
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span> </div>
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</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="l01071" name="l01071"></a><span class="lineno"> 1071</span> {</div>
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</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="l01073" name="l01073"></a><span class="lineno"> 1073</span> </div>
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_serial_number() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</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="l01076" name="l01076"></a><span class="lineno"> 1076</span> }</div>
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span> </div>
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</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="l01080" name="l01080"></a><span class="lineno"> 1080</span> {</div>
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</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="l01082" name="l01082"></a><span class="lineno"> 1082</span> </div>
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_serial_number() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</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="l01085" name="l01085"></a><span class="lineno"> 1085</span> }</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="comment">// Initialize</span></div>
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>;</div>
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span> </div>
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span> <span class="comment">// Reserve memory</span></div>
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span> uint8_t *copy = malloc(length);</div>
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span> <span class="keywordflow">if</span>(copy == NULL)</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> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for media serial number&quot;</span>);</div>
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</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="l01096" name="l01096"></a><span class="lineno"> 1096</span> }</div>
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> </div>
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span> memcpy(copy, data, length);</div>
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a33b54e4325c94ad69d97f9cf5bdae68f">media_serial_number</a> != NULL) free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a33b54e4325c94ad69d97f9cf5bdae68f">media_serial_number</a>);</div>
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a33b54e4325c94ad69d97f9cf5bdae68f">media_serial_number</a> = copy;</div>
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aeae9bce28abec33ffa90005f2a247e34">mediaSerialNumberLength</a> = length;</div>
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span> </div>
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_serial_number(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, data, length);</div>
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</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="l01106" name="l01106"></a><span class="lineno"> 1106</span>}</div>
</div>
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span></div>
<div class="foldopen" id="foldopen01176" data-start="{" data-end="}">
<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"><a class="line" href="decls_8h.html#a4499e33d2fd3f8b514e510180972ec6f"> 1176</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a0e5be9ff6d87218a8f5b451a27e1b39b">aaruf_set_media_barcode</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> int32_t length)</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_media_barcode(%p, %p, %d)&quot;</span>, context, data, length);</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> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"> 1181</span> <span class="keywordflow">if</span>(context == NULL)</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> <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="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#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_barcode() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</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="l01187" name="l01187"></a><span class="lineno"> 1187</span> }</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_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</span> </div>
<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</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="l01193" name="l01193"></a><span class="lineno"> 1193</span> {</div>
<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</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="l01195" name="l01195"></a><span class="lineno"> 1195</span> </div>
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_barcode() = AARUF_ERROR_NOT_AARUFORMAT&quot;</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_define" href="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</a>;</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> </div>
<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"> 1201</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="l01202" name="l01202"></a><span class="lineno"> 1202</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#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Trying to write a read-only image&quot;</span>);</div>
<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"> 1204</span> </div>
<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"> 1205</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_barcode() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"> 1206</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="l01207" name="l01207"></a><span class="lineno"> 1207</span> }</div>
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</span> </div>
<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span> <span class="comment">// Initialize</span></div>
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>;</div>
<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span> </div>
<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"> 1212</span> <span class="comment">// Reserve memory</span></div>
<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span> uint8_t *copy = malloc(length);</div>
<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"> 1214</span> <span class="keywordflow">if</span>(copy == NULL)</div>
<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span> {</div>
<div class="line"><a id="l01216" name="l01216"></a><span class="lineno"> 1216</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for media barcode&quot;</span>);</div>
<div class="line"><a id="l01217" name="l01217"></a><span class="lineno"> 1217</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="l01218" name="l01218"></a><span class="lineno"> 1218</span> }</div>
<div class="line"><a id="l01219" name="l01219"></a><span class="lineno"> 1219</span> </div>
<div class="line"><a id="l01220" name="l01220"></a><span class="lineno"> 1220</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"> 1221</span> memcpy(copy, data, length);</div>
<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"> 1222</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04aa232b37b939d9e815c4addc68a7a3">media_barcode</a> != NULL) free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04aa232b37b939d9e815c4addc68a7a3">media_barcode</a>);</div>
<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"> 1223</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04aa232b37b939d9e815c4addc68a7a3">media_barcode</a> = copy;</div>
<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aef456689422a0514489b1c900ee2c741">mediaBarcodeLength</a> = length;</div>
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"> 1225</span> </div>
<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_barcode(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, data, length);</div>
<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"> 1227</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="l01228" name="l01228"></a><span class="lineno"> 1228</span>}</div>
</div>
<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span></div>
<div class="foldopen" id="foldopen01297" data-start="{" data-end="}">
<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"><a class="line" href="decls_8h.html#a05157a196fb583605599414d7ab06f53"> 1297</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#ac7c87ae51a242428ceb6d2b0a75e0b70">aaruf_set_media_part_number</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> int32_t length)</div>
<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"> 1298</span>{</div>
<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_media_part_number(%p, %p, %d)&quot;</span>, context, data, length);</div>
<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"> 1300</span> </div>
<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"> 1303</span> {</div>
<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</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="l01305" name="l01305"></a><span class="lineno"> 1305</span> </div>
<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"> 1306</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_part_number() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</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="l01308" name="l01308"></a><span class="lineno"> 1308</span> }</div>
<div class="line"><a id="l01309" name="l01309"></a><span class="lineno"> 1309</span> </div>
<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"> 1310</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"> 1311</span> </div>
<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"> 1312</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"> 1313</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="l01314" name="l01314"></a><span class="lineno"> 1314</span> {</div>
<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"> 1315</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="l01316" name="l01316"></a><span class="lineno"> 1316</span> </div>
<div class="line"><a id="l01317" name="l01317"></a><span class="lineno"> 1317</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_part_number() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01318" name="l01318"></a><span class="lineno"> 1318</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="l01319" name="l01319"></a><span class="lineno"> 1319</span> }</div>
<div class="line"><a id="l01320" name="l01320"></a><span class="lineno"> 1320</span> </div>
<div class="line"><a id="l01321" name="l01321"></a><span class="lineno"> 1321</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l01322" name="l01322"></a><span class="lineno"> 1322</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="l01323" name="l01323"></a><span class="lineno"> 1323</span> {</div>
<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"> 1324</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="l01325" name="l01325"></a><span class="lineno"> 1325</span> </div>
<div class="line"><a id="l01326" name="l01326"></a><span class="lineno"> 1326</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_part_number() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"> 1327</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="l01328" name="l01328"></a><span class="lineno"> 1328</span> }</div>
<div class="line"><a id="l01329" name="l01329"></a><span class="lineno"> 1329</span> </div>
<div class="line"><a id="l01330" name="l01330"></a><span class="lineno"> 1330</span> <span class="comment">// Initialize</span></div>
<div class="line"><a id="l01331" name="l01331"></a><span class="lineno"> 1331</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>;</div>
<div class="line"><a id="l01332" name="l01332"></a><span class="lineno"> 1332</span> </div>
<div class="line"><a id="l01333" name="l01333"></a><span class="lineno"> 1333</span> <span class="comment">// Reserve memory</span></div>
<div class="line"><a id="l01334" name="l01334"></a><span class="lineno"> 1334</span> uint8_t *copy = malloc(length);</div>
<div class="line"><a id="l01335" name="l01335"></a><span class="lineno"> 1335</span> <span class="keywordflow">if</span>(copy == NULL)</div>
<div class="line"><a id="l01336" name="l01336"></a><span class="lineno"> 1336</span> {</div>
<div class="line"><a id="l01337" name="l01337"></a><span class="lineno"> 1337</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for creator&quot;</span>);</div>
<div class="line"><a id="l01338" name="l01338"></a><span class="lineno"> 1338</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="l01339" name="l01339"></a><span class="lineno"> 1339</span> }</div>
<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"> 1340</span> </div>
<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"> 1341</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"> 1342</span> memcpy(copy, data, length);</div>
<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"> 1343</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aa3d0670124a4fbe88c485c2b67d1ddbc">media_part_number</a> != NULL) free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aa3d0670124a4fbe88c485c2b67d1ddbc">media_part_number</a>);</div>
<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"> 1344</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aa3d0670124a4fbe88c485c2b67d1ddbc">media_part_number</a> = copy;</div>
<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"> 1345</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aef055916275048b6496f1f74eef2f1ac">mediaPartNumberLength</a> = length;</div>
<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span> </div>
<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_part_number(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, data, length);</div>
<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"> 1348</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="l01349" name="l01349"></a><span class="lineno"> 1349</span>}</div>
</div>
<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"> 1350</span></div>
<div class="foldopen" id="foldopen01412" data-start="{" data-end="}">
<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"><a class="line" href="decls_8h.html#a3acb21067897f9cfc40e6288050a60c1"> 1412</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a223856fa226b26c466997800183c97c4">aaruf_set_drive_manufacturer</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> int32_t length)</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_drive_manufacturer(%p, %p, %d)&quot;</span>, context, data, length);</div>
<div class="line"><a id="l01415" name="l01415"></a><span class="lineno"> 1415</span> </div>
<div class="line"><a id="l01416" name="l01416"></a><span class="lineno"> 1416</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l01417" name="l01417"></a><span class="lineno"> 1417</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l01418" name="l01418"></a><span class="lineno"> 1418</span> {</div>
<div class="line"><a id="l01419" name="l01419"></a><span class="lineno"> 1419</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="l01420" name="l01420"></a><span class="lineno"> 1420</span> </div>
<div class="line"><a id="l01421" name="l01421"></a><span class="lineno"> 1421</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_manufacturer() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01422" name="l01422"></a><span class="lineno"> 1422</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="l01423" name="l01423"></a><span class="lineno"> 1423</span> }</div>
<div class="line"><a id="l01424" name="l01424"></a><span class="lineno"> 1424</span> </div>
<div class="line"><a id="l01425" name="l01425"></a><span class="lineno"> 1425</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l01426" name="l01426"></a><span class="lineno"> 1426</span> </div>
<div class="line"><a id="l01427" name="l01427"></a><span class="lineno"> 1427</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l01428" name="l01428"></a><span class="lineno"> 1428</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="l01429" name="l01429"></a><span class="lineno"> 1429</span> {</div>
<div class="line"><a id="l01430" name="l01430"></a><span class="lineno"> 1430</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="l01431" name="l01431"></a><span class="lineno"> 1431</span> </div>
<div class="line"><a id="l01432" name="l01432"></a><span class="lineno"> 1432</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_manufacturer() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01433" name="l01433"></a><span class="lineno"> 1433</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="l01434" name="l01434"></a><span class="lineno"> 1434</span> }</div>
<div class="line"><a id="l01435" name="l01435"></a><span class="lineno"> 1435</span> </div>
<div class="line"><a id="l01436" name="l01436"></a><span class="lineno"> 1436</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l01437" name="l01437"></a><span class="lineno"> 1437</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="l01438" name="l01438"></a><span class="lineno"> 1438</span> {</div>
<div class="line"><a id="l01439" name="l01439"></a><span class="lineno"> 1439</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="l01440" name="l01440"></a><span class="lineno"> 1440</span> </div>
<div class="line"><a id="l01441" name="l01441"></a><span class="lineno"> 1441</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_manufacturer() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l01442" name="l01442"></a><span class="lineno"> 1442</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="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="comment">// Initialize</span></div>
<div class="line"><a id="l01446" name="l01446"></a><span class="lineno"> 1446</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>;</div>
<div class="line"><a id="l01447" name="l01447"></a><span class="lineno"> 1447</span> </div>
<div class="line"><a id="l01448" name="l01448"></a><span class="lineno"> 1448</span> <span class="comment">// Reserve memory</span></div>
<div class="line"><a id="l01449" name="l01449"></a><span class="lineno"> 1449</span> uint8_t *copy = malloc(length);</div>
<div class="line"><a id="l01450" name="l01450"></a><span class="lineno"> 1450</span> <span class="keywordflow">if</span>(copy == NULL)</div>
<div class="line"><a id="l01451" name="l01451"></a><span class="lineno"> 1451</span> {</div>
<div class="line"><a id="l01452" name="l01452"></a><span class="lineno"> 1452</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for drive manufacturer&quot;</span>);</div>
<div class="line"><a id="l01453" name="l01453"></a><span class="lineno"> 1453</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="l01454" name="l01454"></a><span class="lineno"> 1454</span> }</div>
<div class="line"><a id="l01455" name="l01455"></a><span class="lineno"> 1455</span> </div>
<div class="line"><a id="l01456" name="l01456"></a><span class="lineno"> 1456</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l01457" name="l01457"></a><span class="lineno"> 1457</span> memcpy(copy, data, length);</div>
<div class="line"><a id="l01458" name="l01458"></a><span class="lineno"> 1458</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a614d6f01d563ea57650ce0bbfecfa08d">drive_manufacturer</a> != NULL) free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a614d6f01d563ea57650ce0bbfecfa08d">drive_manufacturer</a>);</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#a614d6f01d563ea57650ce0bbfecfa08d">drive_manufacturer</a> = copy;</div>
<div class="line"><a id="l01460" name="l01460"></a><span class="lineno"> 1460</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a380656568f47a838a8a3833844789064">driveManufacturerLength</a> = length;</div>
<div class="line"><a id="l01461" name="l01461"></a><span class="lineno"> 1461</span> </div>
<div class="line"><a id="l01462" name="l01462"></a><span class="lineno"> 1462</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_manufacturer(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, data, length);</div>
<div class="line"><a id="l01463" name="l01463"></a><span class="lineno"> 1463</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="l01464" name="l01464"></a><span class="lineno"> 1464</span>}</div>
</div>
<div class="line"><a id="l01465" name="l01465"></a><span class="lineno"> 1465</span></div>
<div class="foldopen" id="foldopen01534" data-start="{" data-end="}">
<div class="line"><a id="l01534" name="l01534"></a><span class="lineno"><a class="line" href="decls_8h.html#a1b4d35ee16a27a13f1bc16b0a17d65d1"> 1534</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a29b6c38ce4b3420368ecb84007d8738d">aaruf_set_drive_model</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> int32_t length)</div>
<div class="line"><a id="l01535" name="l01535"></a><span class="lineno"> 1535</span>{</div>
<div class="line"><a id="l01536" name="l01536"></a><span class="lineno"> 1536</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_drive_model(%p, %p, %d)&quot;</span>, context, data, length);</div>
<div class="line"><a id="l01537" name="l01537"></a><span class="lineno"> 1537</span> </div>
<div class="line"><a id="l01538" name="l01538"></a><span class="lineno"> 1538</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l01539" name="l01539"></a><span class="lineno"> 1539</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l01540" name="l01540"></a><span class="lineno"> 1540</span> {</div>
<div class="line"><a id="l01541" name="l01541"></a><span class="lineno"> 1541</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l01542" name="l01542"></a><span class="lineno"> 1542</span> </div>
<div class="line"><a id="l01543" name="l01543"></a><span class="lineno"> 1543</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_model() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01544" name="l01544"></a><span class="lineno"> 1544</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="l01545" name="l01545"></a><span class="lineno"> 1545</span> }</div>
<div class="line"><a id="l01546" name="l01546"></a><span class="lineno"> 1546</span> </div>
<div class="line"><a id="l01547" name="l01547"></a><span class="lineno"> 1547</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l01548" name="l01548"></a><span class="lineno"> 1548</span> </div>
<div class="line"><a id="l01549" name="l01549"></a><span class="lineno"> 1549</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l01550" name="l01550"></a><span class="lineno"> 1550</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="l01551" name="l01551"></a><span class="lineno"> 1551</span> {</div>
<div class="line"><a id="l01552" name="l01552"></a><span class="lineno"> 1552</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="l01553" name="l01553"></a><span class="lineno"> 1553</span> </div>
<div class="line"><a id="l01554" name="l01554"></a><span class="lineno"> 1554</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_model() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01555" name="l01555"></a><span class="lineno"> 1555</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="l01556" name="l01556"></a><span class="lineno"> 1556</span> }</div>
<div class="line"><a id="l01557" name="l01557"></a><span class="lineno"> 1557</span> </div>
<div class="line"><a id="l01558" name="l01558"></a><span class="lineno"> 1558</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l01559" name="l01559"></a><span class="lineno"> 1559</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="l01560" name="l01560"></a><span class="lineno"> 1560</span> {</div>
<div class="line"><a id="l01561" name="l01561"></a><span class="lineno"> 1561</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="l01562" name="l01562"></a><span class="lineno"> 1562</span> </div>
<div class="line"><a id="l01563" name="l01563"></a><span class="lineno"> 1563</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_model() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l01564" name="l01564"></a><span class="lineno"> 1564</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="l01565" name="l01565"></a><span class="lineno"> 1565</span> }</div>
<div class="line"><a id="l01566" name="l01566"></a><span class="lineno"> 1566</span> </div>
<div class="line"><a id="l01567" name="l01567"></a><span class="lineno"> 1567</span> <span class="comment">// Initialize</span></div>
<div class="line"><a id="l01568" name="l01568"></a><span class="lineno"> 1568</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>;</div>
<div class="line"><a id="l01569" name="l01569"></a><span class="lineno"> 1569</span> </div>
<div class="line"><a id="l01570" name="l01570"></a><span class="lineno"> 1570</span> <span class="comment">// Reserve memory</span></div>
<div class="line"><a id="l01571" name="l01571"></a><span class="lineno"> 1571</span> uint8_t *copy = malloc(length);</div>
<div class="line"><a id="l01572" name="l01572"></a><span class="lineno"> 1572</span> <span class="keywordflow">if</span>(copy == NULL)</div>
<div class="line"><a id="l01573" name="l01573"></a><span class="lineno"> 1573</span> {</div>
<div class="line"><a id="l01574" name="l01574"></a><span class="lineno"> 1574</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for media model&quot;</span>);</div>
<div class="line"><a id="l01575" name="l01575"></a><span class="lineno"> 1575</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="l01576" name="l01576"></a><span class="lineno"> 1576</span> }</div>
<div class="line"><a id="l01577" name="l01577"></a><span class="lineno"> 1577</span> </div>
<div class="line"><a id="l01578" name="l01578"></a><span class="lineno"> 1578</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l01579" name="l01579"></a><span class="lineno"> 1579</span> memcpy(copy, data, length);</div>
<div class="line"><a id="l01580" name="l01580"></a><span class="lineno"> 1580</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a77d9c8c852de1d955bceb4cfc50557ce">drive_model</a> != NULL) free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a77d9c8c852de1d955bceb4cfc50557ce">drive_model</a>);</div>
<div class="line"><a id="l01581" name="l01581"></a><span class="lineno"> 1581</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a77d9c8c852de1d955bceb4cfc50557ce">drive_model</a> = copy;</div>
<div class="line"><a id="l01582" name="l01582"></a><span class="lineno"> 1582</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a3757158a1386964537beb387b5bc03d2">driveModelLength</a> = length;</div>
<div class="line"><a id="l01583" name="l01583"></a><span class="lineno"> 1583</span> </div>
<div class="line"><a id="l01584" name="l01584"></a><span class="lineno"> 1584</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_model(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, data, length);</div>
<div class="line"><a id="l01585" name="l01585"></a><span class="lineno"> 1585</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01586" name="l01586"></a><span class="lineno"> 1586</span>}</div>
</div>
<div class="line"><a id="l01587" name="l01587"></a><span class="lineno"> 1587</span></div>
<div class="foldopen" id="foldopen01658" data-start="{" data-end="}">
<div class="line"><a id="l01658" name="l01658"></a><span class="lineno"><a class="line" href="decls_8h.html#aef269305958754978beedf4c44618d98"> 1658</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#ae6b0a57476896bb90ee7bb8472e1078f">aaruf_set_drive_serial_number</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> int32_t length)</div>
<div class="line"><a id="l01659" name="l01659"></a><span class="lineno"> 1659</span>{</div>
<div class="line"><a id="l01660" name="l01660"></a><span class="lineno"> 1660</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_drive_serial_number(%p, %p, %d)&quot;</span>, context, data, length);</div>
<div class="line"><a id="l01661" name="l01661"></a><span class="lineno"> 1661</span> </div>
<div class="line"><a id="l01662" name="l01662"></a><span class="lineno"> 1662</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l01663" name="l01663"></a><span class="lineno"> 1663</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l01664" name="l01664"></a><span class="lineno"> 1664</span> {</div>
<div class="line"><a id="l01665" name="l01665"></a><span class="lineno"> 1665</span> <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="l01666" name="l01666"></a><span class="lineno"> 1666</span> </div>
<div class="line"><a id="l01667" name="l01667"></a><span class="lineno"> 1667</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_serial_number() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01668" name="l01668"></a><span class="lineno"> 1668</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="l01669" name="l01669"></a><span class="lineno"> 1669</span> }</div>
<div class="line"><a id="l01670" name="l01670"></a><span class="lineno"> 1670</span> </div>
<div class="line"><a id="l01671" name="l01671"></a><span class="lineno"> 1671</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l01672" name="l01672"></a><span class="lineno"> 1672</span> </div>
<div class="line"><a id="l01673" name="l01673"></a><span class="lineno"> 1673</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l01674" name="l01674"></a><span class="lineno"> 1674</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="l01675" name="l01675"></a><span class="lineno"> 1675</span> {</div>
<div class="line"><a id="l01676" name="l01676"></a><span class="lineno"> 1676</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="l01677" name="l01677"></a><span class="lineno"> 1677</span> </div>
<div class="line"><a id="l01678" name="l01678"></a><span class="lineno"> 1678</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_serial_number() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01679" name="l01679"></a><span class="lineno"> 1679</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="l01680" name="l01680"></a><span class="lineno"> 1680</span> }</div>
<div class="line"><a id="l01681" name="l01681"></a><span class="lineno"> 1681</span> </div>
<div class="line"><a id="l01682" name="l01682"></a><span class="lineno"> 1682</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l01683" name="l01683"></a><span class="lineno"> 1683</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="l01684" name="l01684"></a><span class="lineno"> 1684</span> {</div>
<div class="line"><a id="l01685" name="l01685"></a><span class="lineno"> 1685</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="l01686" name="l01686"></a><span class="lineno"> 1686</span> </div>
<div class="line"><a id="l01687" name="l01687"></a><span class="lineno"> 1687</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_serial_number() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l01688" name="l01688"></a><span class="lineno"> 1688</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1df49eaa19eaa14891b6aaab966a9bc6">AARUF_READ_ONLY</a>;</div>
<div class="line"><a id="l01689" name="l01689"></a><span class="lineno"> 1689</span> }</div>
<div class="line"><a id="l01690" name="l01690"></a><span class="lineno"> 1690</span> </div>
<div class="line"><a id="l01691" name="l01691"></a><span class="lineno"> 1691</span> <span class="comment">// Initialize</span></div>
<div class="line"><a id="l01692" name="l01692"></a><span class="lineno"> 1692</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>;</div>
<div class="line"><a id="l01693" name="l01693"></a><span class="lineno"> 1693</span> </div>
<div class="line"><a id="l01694" name="l01694"></a><span class="lineno"> 1694</span> <span class="comment">// Reserve memory</span></div>
<div class="line"><a id="l01695" name="l01695"></a><span class="lineno"> 1695</span> uint8_t *copy = malloc(length);</div>
<div class="line"><a id="l01696" name="l01696"></a><span class="lineno"> 1696</span> <span class="keywordflow">if</span>(copy == NULL)</div>
<div class="line"><a id="l01697" name="l01697"></a><span class="lineno"> 1697</span> {</div>
<div class="line"><a id="l01698" name="l01698"></a><span class="lineno"> 1698</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for drive serial number&quot;</span>);</div>
<div class="line"><a id="l01699" name="l01699"></a><span class="lineno"> 1699</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</a>;</div>
<div class="line"><a id="l01700" name="l01700"></a><span class="lineno"> 1700</span> }</div>
<div class="line"><a id="l01701" name="l01701"></a><span class="lineno"> 1701</span> </div>
<div class="line"><a id="l01702" name="l01702"></a><span class="lineno"> 1702</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l01703" name="l01703"></a><span class="lineno"> 1703</span> memcpy(copy, data, length);</div>
<div class="line"><a id="l01704" name="l01704"></a><span class="lineno"> 1704</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a505f32de424a033246348d9fa35f9b19">drive_serial_number</a> != NULL) free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a505f32de424a033246348d9fa35f9b19">drive_serial_number</a>);</div>
<div class="line"><a id="l01705" name="l01705"></a><span class="lineno"> 1705</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a505f32de424a033246348d9fa35f9b19">drive_serial_number</a> = copy;</div>
<div class="line"><a id="l01706" name="l01706"></a><span class="lineno"> 1706</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a78213f42c28f31038e6a9f130c660ad8">driveSerialNumberLength</a> = length;</div>
<div class="line"><a id="l01707" name="l01707"></a><span class="lineno"> 1707</span> </div>
<div class="line"><a id="l01708" name="l01708"></a><span class="lineno"> 1708</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_serial_number(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, data, length);</div>
<div class="line"><a id="l01709" name="l01709"></a><span class="lineno"> 1709</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="l01710" name="l01710"></a><span class="lineno"> 1710</span>}</div>
</div>
<div class="line"><a id="l01711" name="l01711"></a><span class="lineno"> 1711</span></div>
<div class="foldopen" id="foldopen01793" data-start="{" data-end="}">
<div class="line"><a id="l01793" name="l01793"></a><span class="lineno"><a class="line" href="decls_8h.html#add7cede9e5544ae12ae2b22eaf48e54c"> 1793</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#adaa13a82dfc90987efd6c9a366904dc4">aaruf_set_drive_firmware_revision</a>(<span class="keywordtype">void</span> *context, <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> int32_t 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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_drive_firmware_revision(%p, %p, %d)&quot;</span>, context, data, length);</div>
<div class="line"><a id="l01796" name="l01796"></a><span class="lineno"> 1796</span> </div>
<div class="line"><a id="l01797" name="l01797"></a><span class="lineno"> 1797</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l01798" name="l01798"></a><span class="lineno"> 1798</span> <span class="keywordflow">if</span>(context == NULL)</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#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l01801" name="l01801"></a><span class="lineno"> 1801</span> </div>
<div class="line"><a id="l01802" name="l01802"></a><span class="lineno"> 1802</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_firmware_revision() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01803" name="l01803"></a><span class="lineno"> 1803</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</a>;</div>
<div class="line"><a id="l01804" name="l01804"></a><span class="lineno"> 1804</span> }</div>
<div class="line"><a id="l01805" name="l01805"></a><span class="lineno"> 1805</span> </div>
<div class="line"><a id="l01806" name="l01806"></a><span class="lineno"> 1806</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l01807" name="l01807"></a><span class="lineno"> 1807</span> </div>
<div class="line"><a id="l01808" name="l01808"></a><span class="lineno"> 1808</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l01809" name="l01809"></a><span class="lineno"> 1809</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="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#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l01812" name="l01812"></a><span class="lineno"> 1812</span> </div>
<div class="line"><a id="l01813" name="l01813"></a><span class="lineno"> 1813</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_firmware_revision() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01814" name="l01814"></a><span class="lineno"> 1814</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="l01815" name="l01815"></a><span class="lineno"> 1815</span> }</div>
<div class="line"><a id="l01816" name="l01816"></a><span class="lineno"> 1816</span> </div>
<div class="line"><a id="l01817" name="l01817"></a><span class="lineno"> 1817</span> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l01818" name="l01818"></a><span class="lineno"> 1818</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="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#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Trying to write a read-only image&quot;</span>);</div>
<div class="line"><a id="l01821" name="l01821"></a><span class="lineno"> 1821</span> </div>
<div class="line"><a id="l01822" name="l01822"></a><span class="lineno"> 1822</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_firmware_revision() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l01823" name="l01823"></a><span class="lineno"> 1823</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1df49eaa19eaa14891b6aaab966a9bc6">AARUF_READ_ONLY</a>;</div>
<div class="line"><a id="l01824" name="l01824"></a><span class="lineno"> 1824</span> }</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> <span class="comment">// Initialize</span></div>
<div class="line"><a id="l01827" name="l01827"></a><span class="lineno"> 1827</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>) ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</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> <span class="comment">// Reserve memory</span></div>
<div class="line"><a id="l01830" name="l01830"></a><span class="lineno"> 1830</span> uint8_t *copy = malloc(length);</div>
<div class="line"><a id="l01831" name="l01831"></a><span class="lineno"> 1831</span> <span class="keywordflow">if</span>(copy == NULL)</div>
<div class="line"><a id="l01832" name="l01832"></a><span class="lineno"> 1832</span> {</div>
<div class="line"><a id="l01833" name="l01833"></a><span class="lineno"> 1833</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for creator&quot;</span>);</div>
<div class="line"><a id="l01834" name="l01834"></a><span class="lineno"> 1834</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="l01835" name="l01835"></a><span class="lineno"> 1835</span> }</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> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l01838" name="l01838"></a><span class="lineno"> 1838</span> memcpy(copy, data, length);</div>
<div class="line"><a id="l01839" name="l01839"></a><span class="lineno"> 1839</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a329dda508cb897dc7871d2d1c0434792">drive_firmware_revision</a> != NULL) free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a329dda508cb897dc7871d2d1c0434792">drive_firmware_revision</a>);</div>
<div class="line"><a id="l01840" name="l01840"></a><span class="lineno"> 1840</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a329dda508cb897dc7871d2d1c0434792">drive_firmware_revision</a> = copy;</div>
<div class="line"><a id="l01841" name="l01841"></a><span class="lineno"> 1841</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#afbf024f5492e45a3643ea7a1652b6420">driveFirmwareRevisionLength</a> = length;</div>
<div class="line"><a id="l01842" name="l01842"></a><span class="lineno"> 1842</span> </div>
<div class="line"><a id="l01843" name="l01843"></a><span class="lineno"> 1843</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_drive_firmware_revision(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, data, length);</div>
<div class="line"><a id="l01844" name="l01844"></a><span class="lineno"> 1844</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1d6e49f7e8a1fa489efa0a582e90b5de">AARUF_STATUS_OK</a>;</div>
<div class="line"><a id="l01845" name="l01845"></a><span class="lineno"> 1845</span>}</div>
</div>
<div class="line"><a id="l01846" name="l01846"></a><span class="lineno"> 1846</span></div>
<div class="foldopen" id="foldopen01944" data-start="{" data-end="}">
<div class="line"><a id="l01944" name="l01944"></a><span class="lineno"><a class="line" href="decls_8h.html#a42f191c2ea4c70c9d7b373c19b59c812"> 1944</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a42f191c2ea4c70c9d7b373c19b59c812">aaruf_get_cicm_metadata</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint8_t *buffer, <span class="keywordtype">size_t</span> *length)</div>
<div class="line"><a id="l01945" name="l01945"></a><span class="lineno"> 1945</span>{</div>
<div class="line"><a id="l01946" name="l01946"></a><span class="lineno"> 1946</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_cicm_metadata(%p, %p, %p)&quot;</span>, context, buffer, length);</div>
<div class="line"><a id="l01947" name="l01947"></a><span class="lineno"> 1947</span> </div>
<div class="line"><a id="l01948" name="l01948"></a><span class="lineno"> 1948</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l01949" name="l01949"></a><span class="lineno"> 1949</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l01950" name="l01950"></a><span class="lineno"> 1950</span> {</div>
<div class="line"><a id="l01951" name="l01951"></a><span class="lineno"> 1951</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="l01952" name="l01952"></a><span class="lineno"> 1952</span> </div>
<div class="line"><a id="l01953" name="l01953"></a><span class="lineno"> 1953</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_cicm_metadata() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01954" name="l01954"></a><span class="lineno"> 1954</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="l01955" name="l01955"></a><span class="lineno"> 1955</span> }</div>
<div class="line"><a id="l01956" name="l01956"></a><span class="lineno"> 1956</span> </div>
<div class="line"><a id="l01957" name="l01957"></a><span class="lineno"> 1957</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l01958" name="l01958"></a><span class="lineno"> 1958</span> </div>
<div class="line"><a id="l01959" name="l01959"></a><span class="lineno"> 1959</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l01960" name="l01960"></a><span class="lineno"> 1960</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="l01961" name="l01961"></a><span class="lineno"> 1961</span> {</div>
<div class="line"><a id="l01962" name="l01962"></a><span class="lineno"> 1962</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="l01963" name="l01963"></a><span class="lineno"> 1963</span> </div>
<div class="line"><a id="l01964" name="l01964"></a><span class="lineno"> 1964</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_cicm_metadata() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l01965" name="l01965"></a><span class="lineno"> 1965</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="l01966" name="l01966"></a><span class="lineno"> 1966</span> }</div>
<div class="line"><a id="l01967" name="l01967"></a><span class="lineno"> 1967</span> </div>
<div class="line"><a id="l01968" name="l01968"></a><span class="lineno"> 1968</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a154fda29a2c9292cfca51ca6b54eee4a">cicm_block</a> == NULL || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a73005ba88069ba590ffc9660dc2bc7a5">cicm_block_header</a>.<a class="code hl_variable" href="structCicmMetadataBlock.html#a660c22d42c504d290f386f187707956f">length</a> == 0 || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a73005ba88069ba590ffc9660dc2bc7a5">cicm_block_header</a>.<a class="code hl_variable" href="structCicmMetadataBlock.html#aee270357b6dc394ed9ac5f22c9903c90">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3aa90947995922dcd8b27c998978aba359">CicmBlock</a>)</div>
<div class="line"><a id="l01969" name="l01969"></a><span class="lineno"> 1969</span> {</div>
<div class="line"><a id="l01970" name="l01970"></a><span class="lineno"> 1970</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;No CICM XML metadata present&quot;</span>);</div>
<div class="line"><a id="l01971" name="l01971"></a><span class="lineno"> 1971</span> *length = 0;</div>
<div class="line"><a id="l01972" name="l01972"></a><span class="lineno"> 1972</span> </div>
<div class="line"><a id="l01973" name="l01973"></a><span class="lineno"> 1973</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_cicm_metadata() = AARUF_ERROR_CANNOT_READ_BLOCK&quot;</span>);</div>
<div class="line"><a id="l01974" name="l01974"></a><span class="lineno"> 1974</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a67753dacbd0ffdd397e563a8a5ecd271">AARUF_ERROR_CANNOT_READ_BLOCK</a>;</div>
<div class="line"><a id="l01975" name="l01975"></a><span class="lineno"> 1975</span> }</div>
<div class="line"><a id="l01976" name="l01976"></a><span class="lineno"> 1976</span> </div>
<div class="line"><a id="l01977" name="l01977"></a><span class="lineno"> 1977</span> <span class="keywordflow">if</span>(*length &lt; ctx-&gt;cicm_block_header.length)</div>
<div class="line"><a id="l01978" name="l01978"></a><span class="lineno"> 1978</span> {</div>
<div class="line"><a id="l01979" name="l01979"></a><span class="lineno"> 1979</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Buffer too small for CICM XML metadata, required %u bytes&quot;</span>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a73005ba88069ba590ffc9660dc2bc7a5">cicm_block_header</a>.<a class="code hl_variable" href="structCicmMetadataBlock.html#a660c22d42c504d290f386f187707956f">length</a>);</div>
<div class="line"><a id="l01980" name="l01980"></a><span class="lineno"> 1980</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a73005ba88069ba590ffc9660dc2bc7a5">cicm_block_header</a>.<a class="code hl_variable" href="structCicmMetadataBlock.html#a660c22d42c504d290f386f187707956f">length</a>;</div>
<div class="line"><a id="l01981" name="l01981"></a><span class="lineno"> 1981</span> </div>
<div class="line"><a id="l01982" name="l01982"></a><span class="lineno"> 1982</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_cicm_metadata() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l01983" name="l01983"></a><span class="lineno"> 1983</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l01984" name="l01984"></a><span class="lineno"> 1984</span> }</div>
<div class="line"><a id="l01985" name="l01985"></a><span class="lineno"> 1985</span> </div>
<div class="line"><a id="l01986" name="l01986"></a><span class="lineno"> 1986</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a73005ba88069ba590ffc9660dc2bc7a5">cicm_block_header</a>.<a class="code hl_variable" href="structCicmMetadataBlock.html#a660c22d42c504d290f386f187707956f">length</a>;</div>
<div class="line"><a id="l01987" name="l01987"></a><span class="lineno"> 1987</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a154fda29a2c9292cfca51ca6b54eee4a">cicm_block</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a73005ba88069ba590ffc9660dc2bc7a5">cicm_block_header</a>.<a class="code hl_variable" href="structCicmMetadataBlock.html#a660c22d42c504d290f386f187707956f">length</a>);</div>
<div class="line"><a id="l01988" name="l01988"></a><span class="lineno"> 1988</span> </div>
<div class="line"><a id="l01989" name="l01989"></a><span class="lineno"> 1989</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;CICM XML metadata read successfully, length %u&quot;</span>, *length);</div>
<div class="line"><a id="l01990" name="l01990"></a><span class="lineno"> 1990</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_cicm_metadata(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, buffer, *length);</div>
<div class="line"><a id="l01991" name="l01991"></a><span class="lineno"> 1991</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="l01992" name="l01992"></a><span class="lineno"> 1992</span>}</div>
</div>
<div class="line"><a id="l01993" name="l01993"></a><span class="lineno"> 1993</span></div>
<div class="foldopen" id="foldopen02099" data-start="{" data-end="}">
<div class="line"><a id="l02099" name="l02099"></a><span class="lineno"><a class="line" href="decls_8h.html#a01cf0abe0b137236d4be0b91a29d4818"> 2099</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a01cf0abe0b137236d4be0b91a29d4818">aaruf_get_aaru_json_metadata</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint8_t *buffer, <span class="keywordtype">size_t</span> *length)</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_aaru_json_metadata(%p, %p, %p)&quot;</span>, context, buffer, length);</div>
<div class="line"><a id="l02102" name="l02102"></a><span class="lineno"> 2102</span> </div>
<div class="line"><a id="l02103" name="l02103"></a><span class="lineno"> 2103</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l02104" name="l02104"></a><span class="lineno"> 2104</span> <span class="keywordflow">if</span>(context == NULL)</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#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Invalid context&quot;</span>);</div>
<div class="line"><a id="l02107" name="l02107"></a><span class="lineno"> 2107</span> </div>
<div class="line"><a id="l02108" name="l02108"></a><span class="lineno"> 2108</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_aaru_json_metadata() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02109" name="l02109"></a><span class="lineno"> 2109</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="l02110" name="l02110"></a><span class="lineno"> 2110</span> }</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> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l02113" name="l02113"></a><span class="lineno"> 2113</span> </div>
<div class="line"><a id="l02114" name="l02114"></a><span class="lineno"> 2114</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l02115" name="l02115"></a><span class="lineno"> 2115</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="l02116" name="l02116"></a><span class="lineno"> 2116</span> {</div>
<div class="line"><a id="l02117" name="l02117"></a><span class="lineno"> 2117</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="l02118" name="l02118"></a><span class="lineno"> 2118</span> </div>
<div class="line"><a id="l02119" name="l02119"></a><span class="lineno"> 2119</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_aaru_json_metadata() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02120" name="l02120"></a><span class="lineno"> 2120</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="l02121" name="l02121"></a><span class="lineno"> 2121</span> }</div>
<div class="line"><a id="l02122" name="l02122"></a><span class="lineno"> 2122</span> </div>
<div class="line"><a id="l02123" name="l02123"></a><span class="lineno"> 2123</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9e7ebc6897142938452338bc5a882dd8">json_block</a> == NULL || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaa66c73269576f55c8946c741e02e34f">json_block_header</a>.<a class="code hl_variable" href="structAaruMetadataJsonBlockHeader.html#aa9e35df2ccc7294a24187fff4bb559a9">length</a> == 0 ||</div>
<div class="line"><a id="l02124" name="l02124"></a><span class="lineno"> 2124</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaa66c73269576f55c8946c741e02e34f">json_block_header</a>.<a class="code hl_variable" href="structAaruMetadataJsonBlockHeader.html#a5e3db5d08dc09206cad6ea1b88b2db7d">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a8ac77889f0c345ed861ed653a3063032">AaruMetadataJsonBlock</a>)</div>
<div class="line"><a id="l02125" name="l02125"></a><span class="lineno"> 2125</span> {</div>
<div class="line"><a id="l02126" name="l02126"></a><span class="lineno"> 2126</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;No Aaru metadata JSON present&quot;</span>);</div>
<div class="line"><a id="l02127" name="l02127"></a><span class="lineno"> 2127</span> *length = 0;</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_aaru_json_metadata() = AARUF_ERROR_CANNOT_READ_BLOCK&quot;</span>);</div>
<div class="line"><a id="l02130" name="l02130"></a><span class="lineno"> 2130</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a67753dacbd0ffdd397e563a8a5ecd271">AARUF_ERROR_CANNOT_READ_BLOCK</a>;</div>
<div class="line"><a id="l02131" name="l02131"></a><span class="lineno"> 2131</span> }</div>
<div class="line"><a id="l02132" name="l02132"></a><span class="lineno"> 2132</span> </div>
<div class="line"><a id="l02133" name="l02133"></a><span class="lineno"> 2133</span> <span class="keywordflow">if</span>(*length &lt; ctx-&gt;json_block_header.length)</div>
<div class="line"><a id="l02134" name="l02134"></a><span class="lineno"> 2134</span> {</div>
<div class="line"><a id="l02135" name="l02135"></a><span class="lineno"> 2135</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Buffer too small for Aaru metadata JSON, required %u bytes&quot;</span>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaa66c73269576f55c8946c741e02e34f">json_block_header</a>.<a class="code hl_variable" href="structAaruMetadataJsonBlockHeader.html#aa9e35df2ccc7294a24187fff4bb559a9">length</a>);</div>
<div class="line"><a id="l02136" name="l02136"></a><span class="lineno"> 2136</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaa66c73269576f55c8946c741e02e34f">json_block_header</a>.<a class="code hl_variable" href="structAaruMetadataJsonBlockHeader.html#aa9e35df2ccc7294a24187fff4bb559a9">length</a>;</div>
<div class="line"><a id="l02137" name="l02137"></a><span class="lineno"> 2137</span> </div>
<div class="line"><a id="l02138" name="l02138"></a><span class="lineno"> 2138</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_aaru_json_metadata() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l02139" name="l02139"></a><span class="lineno"> 2139</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l02140" name="l02140"></a><span class="lineno"> 2140</span> }</div>
<div class="line"><a id="l02141" name="l02141"></a><span class="lineno"> 2141</span> </div>
<div class="line"><a id="l02142" name="l02142"></a><span class="lineno"> 2142</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaa66c73269576f55c8946c741e02e34f">json_block_header</a>.<a class="code hl_variable" href="structAaruMetadataJsonBlockHeader.html#aa9e35df2ccc7294a24187fff4bb559a9">length</a>;</div>
<div class="line"><a id="l02143" name="l02143"></a><span class="lineno"> 2143</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9e7ebc6897142938452338bc5a882dd8">json_block</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaa66c73269576f55c8946c741e02e34f">json_block_header</a>.<a class="code hl_variable" href="structAaruMetadataJsonBlockHeader.html#aa9e35df2ccc7294a24187fff4bb559a9">length</a>);</div>
<div class="line"><a id="l02144" name="l02144"></a><span class="lineno"> 2144</span> </div>
<div class="line"><a id="l02145" name="l02145"></a><span class="lineno"> 2145</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Aaru metadata JSON read successfully, length %u&quot;</span>, *length);</div>
<div class="line"><a id="l02146" name="l02146"></a><span class="lineno"> 2146</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_aaru_json_metadata(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, buffer, *length);</div>
<div class="line"><a id="l02147" name="l02147"></a><span class="lineno"> 2147</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="l02148" name="l02148"></a><span class="lineno"> 2148</span>}</div>
</div>
<div class="line"><a id="l02149" name="l02149"></a><span class="lineno"> 2149</span></div>
<div class="foldopen" id="foldopen02258" data-start="{" data-end="}">
<div class="line"><a id="l02258" name="l02258"></a><span class="lineno"><a class="line" href="decls_8h.html#a8090a039e00ee003569939332d21094e"> 2258</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a8090a039e00ee003569939332d21094e">aaruf_set_aaru_json_metadata</a>(<span class="keywordtype">void</span> *context, uint8_t *data, <span class="keywordtype">size_t</span> length)</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_set_aaru_json_metadata(%p, %p, %d)&quot;</span>, context, data, length);</div>
<div class="line"><a id="l02261" name="l02261"></a><span class="lineno"> 2261</span> </div>
<div class="line"><a id="l02262" name="l02262"></a><span class="lineno"> 2262</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l02263" name="l02263"></a><span class="lineno"> 2263</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l02264" name="l02264"></a><span class="lineno"> 2264</span> {</div>
<div class="line"><a id="l02265" name="l02265"></a><span class="lineno"> 2265</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="l02266" name="l02266"></a><span class="lineno"> 2266</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_set_aaru_json_metadata() = AARUF_ERROR_NOT_AARUFORMAT&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#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</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> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</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> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l02274" name="l02274"></a><span class="lineno"> 2274</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="l02275" name="l02275"></a><span class="lineno"> 2275</span> {</div>
<div class="line"><a id="l02276" name="l02276"></a><span class="lineno"> 2276</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="l02277" name="l02277"></a><span class="lineno"> 2277</span> </div>
<div class="line"><a id="l02278" name="l02278"></a><span class="lineno"> 2278</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_aaru_json_metadata() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02279" name="l02279"></a><span class="lineno"> 2279</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="l02280" name="l02280"></a><span class="lineno"> 2280</span> }</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> <span class="comment">// Check we are writing</span></div>
<div class="line"><a id="l02283" name="l02283"></a><span class="lineno"> 2283</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="l02284" name="l02284"></a><span class="lineno"> 2284</span> {</div>
<div class="line"><a id="l02285" name="l02285"></a><span class="lineno"> 2285</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="l02286" name="l02286"></a><span class="lineno"> 2286</span> </div>
<div class="line"><a id="l02287" name="l02287"></a><span class="lineno"> 2287</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_aaru_json_metadata() = AARUF_READ_ONLY&quot;</span>);</div>
<div class="line"><a id="l02288" name="l02288"></a><span class="lineno"> 2288</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="l02289" name="l02289"></a><span class="lineno"> 2289</span> }</div>
<div class="line"><a id="l02290" name="l02290"></a><span class="lineno"> 2290</span> </div>
<div class="line"><a id="l02291" name="l02291"></a><span class="lineno"> 2291</span> <span class="comment">// Reserve memory</span></div>
<div class="line"><a id="l02292" name="l02292"></a><span class="lineno"> 2292</span> uint8_t *copy = malloc(length);</div>
<div class="line"><a id="l02293" name="l02293"></a><span class="lineno"> 2293</span> <span class="keywordflow">if</span>(copy == NULL)</div>
<div class="line"><a id="l02294" name="l02294"></a><span class="lineno"> 2294</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#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;Could not allocate memory for Aaru metadata JSON&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#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</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="comment">// Copy opaque UTF-8 string</span></div>
<div class="line"><a id="l02300" name="l02300"></a><span class="lineno"> 2300</span> memcpy(copy, data, length);</div>
<div class="line"><a id="l02301" name="l02301"></a><span class="lineno"> 2301</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9e7ebc6897142938452338bc5a882dd8">json_block</a> != NULL) free(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9e7ebc6897142938452338bc5a882dd8">json_block</a>);</div>
<div class="line"><a id="l02302" name="l02302"></a><span class="lineno"> 2302</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a9e7ebc6897142938452338bc5a882dd8">json_block</a> = copy;</div>
<div class="line"><a id="l02303" name="l02303"></a><span class="lineno"> 2303</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaa66c73269576f55c8946c741e02e34f">json_block_header</a>.<a class="code hl_variable" href="structAaruMetadataJsonBlockHeader.html#a5e3db5d08dc09206cad6ea1b88b2db7d">identifier</a> = <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a8ac77889f0c345ed861ed653a3063032">AaruMetadataJsonBlock</a>;</div>
<div class="line"><a id="l02304" name="l02304"></a><span class="lineno"> 2304</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aaa66c73269576f55c8946c741e02e34f">json_block_header</a>.<a class="code hl_variable" href="structAaruMetadataJsonBlockHeader.html#aa9e35df2ccc7294a24187fff4bb559a9">length</a> = (uint32_t)length;</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_aaru_json_metadata(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, data, length);</div>
<div class="line"><a id="l02307" name="l02307"></a><span class="lineno"> 2307</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="l02308" name="l02308"></a><span class="lineno"> 2308</span>}</div>
</div>
<div class="line"><a id="l02309" name="l02309"></a><span class="lineno"> 2309</span></div>
<div class="foldopen" id="foldopen02337" data-start="{" data-end="}">
<div class="line"><a id="l02337" name="l02337"></a><span class="lineno"><a class="line" href="decls_8h.html#aa683ff7387ba3f505b1756da1b408f7e"> 2337</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#aa683ff7387ba3f505b1756da1b408f7e">aaruf_get_media_sequence</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, int32_t *sequence, int32_t *last_sequence)</div>
<div class="line"><a id="l02338" name="l02338"></a><span class="lineno"> 2338</span>{</div>
<div class="line"><a id="l02339" name="l02339"></a><span class="lineno"> 2339</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_media_sequence(%p, %p, %p)&quot;</span>, context, sequence, last_sequence);</div>
<div class="line"><a id="l02340" name="l02340"></a><span class="lineno"> 2340</span> </div>
<div class="line"><a id="l02341" name="l02341"></a><span class="lineno"> 2341</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l02342" name="l02342"></a><span class="lineno"> 2342</span> <span class="keywordflow">if</span>(context == NULL)</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> <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="l02345" name="l02345"></a><span class="lineno"> 2345</span> </div>
<div class="line"><a id="l02346" name="l02346"></a><span class="lineno"> 2346</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_sequence() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02347" name="l02347"></a><span class="lineno"> 2347</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="l02348" name="l02348"></a><span class="lineno"> 2348</span> }</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> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l02351" name="l02351"></a><span class="lineno"> 2351</span> </div>
<div class="line"><a id="l02352" name="l02352"></a><span class="lineno"> 2352</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l02353" name="l02353"></a><span class="lineno"> 2353</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="l02354" name="l02354"></a><span class="lineno"> 2354</span> {</div>
<div class="line"><a id="l02355" name="l02355"></a><span class="lineno"> 2355</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="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#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_sequence() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02358" name="l02358"></a><span class="lineno"> 2358</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="l02359" name="l02359"></a><span class="lineno"> 2359</span> }</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> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a>)</div>
<div class="line"><a id="l02362" name="l02362"></a><span class="lineno"> 2362</span> {</div>
<div class="line"><a id="l02363" name="l02363"></a><span class="lineno"> 2363</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;No metadata block present&quot;</span>);</div>
<div class="line"><a id="l02364" name="l02364"></a><span class="lineno"> 2364</span> </div>
<div class="line"><a id="l02365" name="l02365"></a><span class="lineno"> 2365</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_sequence() = AARUF_ERROR_METADATA_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l02366" name="l02366"></a><span class="lineno"> 2366</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a99ff8f6884fd5e21840b2e35240bc265">AARUF_ERROR_METADATA_NOT_PRESENT</a>;</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> </div>
<div class="line"><a id="l02369" name="l02369"></a><span class="lineno"> 2369</span> *sequence = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a1359ce7deda764ea267459f3f5906473">mediaSequence</a>;</div>
<div class="line"><a id="l02370" name="l02370"></a><span class="lineno"> 2370</span> *last_sequence = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aacd243f7f5a78c6087b797328197f522">lastMediaSequence</a>;</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_set_media_sequence(%p, %d, %d) = AARUF_STATUS_OK&quot;</span>, context, *sequence, *last_sequence);</div>
<div class="line"><a id="l02373" name="l02373"></a><span class="lineno"> 2373</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="l02374" name="l02374"></a><span class="lineno"> 2374</span>}</div>
</div>
<div class="line"><a id="l02375" name="l02375"></a><span class="lineno"> 2375</span></div>
<div class="foldopen" id="foldopen02404" data-start="{" data-end="}">
<div class="line"><a id="l02404" name="l02404"></a><span class="lineno"><a class="line" href="decls_8h.html#a38d72be7e7854d6cb0bba89172e27b03"> 2404</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a38d72be7e7854d6cb0bba89172e27b03">aaruf_get_creator</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint8_t *buffer, int32_t *length)</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#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_creator(%p, %p, %p)&quot;</span>, context, buffer, length);</div>
<div class="line"><a id="l02407" name="l02407"></a><span class="lineno"> 2407</span> </div>
<div class="line"><a id="l02408" name="l02408"></a><span class="lineno"> 2408</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l02409" name="l02409"></a><span class="lineno"> 2409</span> <span class="keywordflow">if</span>(context == NULL)</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> <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="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#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_creator() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02414" name="l02414"></a><span class="lineno"> 2414</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="l02415" name="l02415"></a><span class="lineno"> 2415</span> }</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> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l02418" name="l02418"></a><span class="lineno"> 2418</span> </div>
<div class="line"><a id="l02419" name="l02419"></a><span class="lineno"> 2419</span> <span class="comment">// Not a libaaruformat context</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#a7dc0a0fe0bf6223ff4587fd01c360b76">magic</a> != <a class="code hl_define" href="consts_8h.html#a3c3ba66fe2b547655c9e4b16a1ba519a">AARU_MAGIC</a>)</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;Invalid context&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_get_creator() = AARUF_ERROR_NOT_AARUFORMAT&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#abb63e240b11d790da83bd34507b57851">AARUF_ERROR_NOT_AARUFORMAT</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> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a> || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a0c15ef634690890bf80719046faa0230">creator</a> == NULL ||</div>
<div class="line"><a id="l02429" name="l02429"></a><span class="lineno"> 2429</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#af620858c254ea17f2d75b065134239c8">creatorLength</a> == 0)</div>
<div class="line"><a id="l02430" name="l02430"></a><span class="lineno"> 2430</span> {</div>
<div class="line"><a id="l02431" name="l02431"></a><span class="lineno"> 2431</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;No metadata block present&quot;</span>);</div>
<div class="line"><a id="l02432" name="l02432"></a><span class="lineno"> 2432</span> </div>
<div class="line"><a id="l02433" name="l02433"></a><span class="lineno"> 2433</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_creator() = AARUF_ERROR_METADATA_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l02434" name="l02434"></a><span class="lineno"> 2434</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a99ff8f6884fd5e21840b2e35240bc265">AARUF_ERROR_METADATA_NOT_PRESENT</a>;</div>
<div class="line"><a id="l02435" name="l02435"></a><span class="lineno"> 2435</span> }</div>
<div class="line"><a id="l02436" name="l02436"></a><span class="lineno"> 2436</span> </div>
<div class="line"><a id="l02437" name="l02437"></a><span class="lineno"> 2437</span> <span class="keywordflow">if</span>(buffer == NULL || *length &lt; ctx-&gt;metadata_block_header.creatorLength)</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> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#af620858c254ea17f2d75b065134239c8">creatorLength</a>;</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#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_creator() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l02442" name="l02442"></a><span class="lineno"> 2442</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l02443" name="l02443"></a><span class="lineno"> 2443</span> }</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> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l02446" name="l02446"></a><span class="lineno"> 2446</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a0c15ef634690890bf80719046faa0230">creator</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#af620858c254ea17f2d75b065134239c8">creatorLength</a>);</div>
<div class="line"><a id="l02447" name="l02447"></a><span class="lineno"> 2447</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#af620858c254ea17f2d75b065134239c8">creatorLength</a>;</div>
<div class="line"><a id="l02448" name="l02448"></a><span class="lineno"> 2448</span> </div>
<div class="line"><a id="l02449" name="l02449"></a><span class="lineno"> 2449</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_creator(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, buffer, *length);</div>
<div class="line"><a id="l02450" name="l02450"></a><span class="lineno"> 2450</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="l02451" name="l02451"></a><span class="lineno"> 2451</span>}</div>
</div>
<div class="line"><a id="l02452" name="l02452"></a><span class="lineno"> 2452</span></div>
<div class="foldopen" id="foldopen02476" data-start="{" data-end="}">
<div class="line"><a id="l02476" name="l02476"></a><span class="lineno"><a class="line" href="decls_8h.html#a9628bcfd2642649a6bcbf1f46d6b6705"> 2476</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a9628bcfd2642649a6bcbf1f46d6b6705">aaruf_get_comments</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint8_t *buffer, int32_t *length)</div>
<div class="line"><a id="l02477" name="l02477"></a><span class="lineno"> 2477</span>{</div>
<div class="line"><a id="l02478" name="l02478"></a><span class="lineno"> 2478</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_comments(%p, %p, %p)&quot;</span>, context, buffer, length);</div>
<div class="line"><a id="l02479" name="l02479"></a><span class="lineno"> 2479</span> </div>
<div class="line"><a id="l02480" name="l02480"></a><span class="lineno"> 2480</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l02481" name="l02481"></a><span class="lineno"> 2481</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l02482" name="l02482"></a><span class="lineno"> 2482</span> {</div>
<div class="line"><a id="l02483" name="l02483"></a><span class="lineno"> 2483</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="l02484" name="l02484"></a><span class="lineno"> 2484</span> </div>
<div class="line"><a id="l02485" name="l02485"></a><span class="lineno"> 2485</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_comments() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02486" name="l02486"></a><span class="lineno"> 2486</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="l02487" name="l02487"></a><span class="lineno"> 2487</span> }</div>
<div class="line"><a id="l02488" name="l02488"></a><span class="lineno"> 2488</span> </div>
<div class="line"><a id="l02489" name="l02489"></a><span class="lineno"> 2489</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l02490" name="l02490"></a><span class="lineno"> 2490</span> </div>
<div class="line"><a id="l02491" name="l02491"></a><span class="lineno"> 2491</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l02492" name="l02492"></a><span class="lineno"> 2492</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="l02493" name="l02493"></a><span class="lineno"> 2493</span> {</div>
<div class="line"><a id="l02494" name="l02494"></a><span class="lineno"> 2494</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="l02495" name="l02495"></a><span class="lineno"> 2495</span> </div>
<div class="line"><a id="l02496" name="l02496"></a><span class="lineno"> 2496</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_comments() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02497" name="l02497"></a><span class="lineno"> 2497</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="l02498" name="l02498"></a><span class="lineno"> 2498</span> }</div>
<div class="line"><a id="l02499" name="l02499"></a><span class="lineno"> 2499</span> </div>
<div class="line"><a id="l02500" name="l02500"></a><span class="lineno"> 2500</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a> || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab08395cd8ed98def2b5886c35fbad605">comments</a> == NULL ||</div>
<div class="line"><a id="l02501" name="l02501"></a><span class="lineno"> 2501</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a0bbbf0b6d7b48ebdc07d4a5e1138044f">commentsLength</a> == 0)</div>
<div class="line"><a id="l02502" name="l02502"></a><span class="lineno"> 2502</span> {</div>
<div class="line"><a id="l02503" name="l02503"></a><span class="lineno"> 2503</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;No metadata block present&quot;</span>);</div>
<div class="line"><a id="l02504" name="l02504"></a><span class="lineno"> 2504</span> </div>
<div class="line"><a id="l02505" name="l02505"></a><span class="lineno"> 2505</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_comments() = AARUF_ERROR_METADATA_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l02506" name="l02506"></a><span class="lineno"> 2506</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a99ff8f6884fd5e21840b2e35240bc265">AARUF_ERROR_METADATA_NOT_PRESENT</a>;</div>
<div class="line"><a id="l02507" name="l02507"></a><span class="lineno"> 2507</span> }</div>
<div class="line"><a id="l02508" name="l02508"></a><span class="lineno"> 2508</span> </div>
<div class="line"><a id="l02509" name="l02509"></a><span class="lineno"> 2509</span> <span class="keywordflow">if</span>(buffer == NULL || *length &lt; ctx-&gt;metadata_block_header.commentsLength)</div>
<div class="line"><a id="l02510" name="l02510"></a><span class="lineno"> 2510</span> {</div>
<div class="line"><a id="l02511" name="l02511"></a><span class="lineno"> 2511</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a0bbbf0b6d7b48ebdc07d4a5e1138044f">commentsLength</a>;</div>
<div class="line"><a id="l02512" name="l02512"></a><span class="lineno"> 2512</span> </div>
<div class="line"><a id="l02513" name="l02513"></a><span class="lineno"> 2513</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_comments() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l02514" name="l02514"></a><span class="lineno"> 2514</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l02515" name="l02515"></a><span class="lineno"> 2515</span> }</div>
<div class="line"><a id="l02516" name="l02516"></a><span class="lineno"> 2516</span> </div>
<div class="line"><a id="l02517" name="l02517"></a><span class="lineno"> 2517</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l02518" name="l02518"></a><span class="lineno"> 2518</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ab08395cd8ed98def2b5886c35fbad605">comments</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a0bbbf0b6d7b48ebdc07d4a5e1138044f">commentsLength</a>);</div>
<div class="line"><a id="l02519" name="l02519"></a><span class="lineno"> 2519</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a0bbbf0b6d7b48ebdc07d4a5e1138044f">commentsLength</a>;</div>
<div class="line"><a id="l02520" name="l02520"></a><span class="lineno"> 2520</span> </div>
<div class="line"><a id="l02521" name="l02521"></a><span class="lineno"> 2521</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_comments(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, buffer, *length);</div>
<div class="line"><a id="l02522" name="l02522"></a><span class="lineno"> 2522</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="l02523" name="l02523"></a><span class="lineno"> 2523</span>}</div>
</div>
<div class="line"><a id="l02524" name="l02524"></a><span class="lineno"> 2524</span></div>
<div class="foldopen" id="foldopen02546" data-start="{" data-end="}">
<div class="line"><a id="l02546" name="l02546"></a><span class="lineno"><a class="line" href="decls_8h.html#af1ca27c052c6cde38a8d6d71e10936db"> 2546</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#af1ca27c052c6cde38a8d6d71e10936db">aaruf_get_media_title</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint8_t *buffer, int32_t *length)</div>
<div class="line"><a id="l02547" name="l02547"></a><span class="lineno"> 2547</span>{</div>
<div class="line"><a id="l02548" name="l02548"></a><span class="lineno"> 2548</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_media_title(%p, %p, %p)&quot;</span>, context, buffer, length);</div>
<div class="line"><a id="l02549" name="l02549"></a><span class="lineno"> 2549</span> </div>
<div class="line"><a id="l02550" name="l02550"></a><span class="lineno"> 2550</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l02551" name="l02551"></a><span class="lineno"> 2551</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l02552" name="l02552"></a><span class="lineno"> 2552</span> {</div>
<div class="line"><a id="l02553" name="l02553"></a><span class="lineno"> 2553</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="l02554" name="l02554"></a><span class="lineno"> 2554</span> </div>
<div class="line"><a id="l02555" name="l02555"></a><span class="lineno"> 2555</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_title() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02556" name="l02556"></a><span class="lineno"> 2556</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="l02557" name="l02557"></a><span class="lineno"> 2557</span> }</div>
<div class="line"><a id="l02558" name="l02558"></a><span class="lineno"> 2558</span> </div>
<div class="line"><a id="l02559" name="l02559"></a><span class="lineno"> 2559</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l02560" name="l02560"></a><span class="lineno"> 2560</span> </div>
<div class="line"><a id="l02561" name="l02561"></a><span class="lineno"> 2561</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l02562" name="l02562"></a><span class="lineno"> 2562</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="l02563" name="l02563"></a><span class="lineno"> 2563</span> {</div>
<div class="line"><a id="l02564" name="l02564"></a><span class="lineno"> 2564</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="l02565" name="l02565"></a><span class="lineno"> 2565</span> </div>
<div class="line"><a id="l02566" name="l02566"></a><span class="lineno"> 2566</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_title() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02567" name="l02567"></a><span class="lineno"> 2567</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="l02568" name="l02568"></a><span class="lineno"> 2568</span> }</div>
<div class="line"><a id="l02569" name="l02569"></a><span class="lineno"> 2569</span> </div>
<div class="line"><a id="l02570" name="l02570"></a><span class="lineno"> 2570</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a> || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aeb5bda76e0ea176598a04be97b7d5683">media_title</a> == NULL ||</div>
<div class="line"><a id="l02571" name="l02571"></a><span class="lineno"> 2571</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a68deb35b7b070dcc18c790289192741c">mediaTitleLength</a> == 0)</div>
<div class="line"><a id="l02572" name="l02572"></a><span class="lineno"> 2572</span> {</div>
<div class="line"><a id="l02573" name="l02573"></a><span class="lineno"> 2573</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;No metadata block present&quot;</span>);</div>
<div class="line"><a id="l02574" name="l02574"></a><span class="lineno"> 2574</span> </div>
<div class="line"><a id="l02575" name="l02575"></a><span class="lineno"> 2575</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_title() = AARUF_ERROR_METADATA_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l02576" name="l02576"></a><span class="lineno"> 2576</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a99ff8f6884fd5e21840b2e35240bc265">AARUF_ERROR_METADATA_NOT_PRESENT</a>;</div>
<div class="line"><a id="l02577" name="l02577"></a><span class="lineno"> 2577</span> }</div>
<div class="line"><a id="l02578" name="l02578"></a><span class="lineno"> 2578</span> </div>
<div class="line"><a id="l02579" name="l02579"></a><span class="lineno"> 2579</span> <span class="keywordflow">if</span>(buffer == NULL || *length &lt; ctx-&gt;metadata_block_header.mediaTitleLength)</div>
<div class="line"><a id="l02580" name="l02580"></a><span class="lineno"> 2580</span> {</div>
<div class="line"><a id="l02581" name="l02581"></a><span class="lineno"> 2581</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a68deb35b7b070dcc18c790289192741c">mediaTitleLength</a>;</div>
<div class="line"><a id="l02582" name="l02582"></a><span class="lineno"> 2582</span> </div>
<div class="line"><a id="l02583" name="l02583"></a><span class="lineno"> 2583</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_title() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l02584" name="l02584"></a><span class="lineno"> 2584</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l02585" name="l02585"></a><span class="lineno"> 2585</span> }</div>
<div class="line"><a id="l02586" name="l02586"></a><span class="lineno"> 2586</span> </div>
<div class="line"><a id="l02587" name="l02587"></a><span class="lineno"> 2587</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l02588" name="l02588"></a><span class="lineno"> 2588</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aeb5bda76e0ea176598a04be97b7d5683">media_title</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a68deb35b7b070dcc18c790289192741c">mediaTitleLength</a>);</div>
<div class="line"><a id="l02589" name="l02589"></a><span class="lineno"> 2589</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a68deb35b7b070dcc18c790289192741c">mediaTitleLength</a>;</div>
<div class="line"><a id="l02590" name="l02590"></a><span class="lineno"> 2590</span> </div>
<div class="line"><a id="l02591" name="l02591"></a><span class="lineno"> 2591</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_title(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, buffer, *length);</div>
<div class="line"><a id="l02592" name="l02592"></a><span class="lineno"> 2592</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="l02593" name="l02593"></a><span class="lineno"> 2593</span>}</div>
</div>
<div class="line"><a id="l02594" name="l02594"></a><span class="lineno"> 2594</span></div>
<div class="foldopen" id="foldopen02616" data-start="{" data-end="}">
<div class="line"><a id="l02616" name="l02616"></a><span class="lineno"><a class="line" href="decls_8h.html#a515c264f726f8b0a5104778b383ad1d4"> 2616</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a515c264f726f8b0a5104778b383ad1d4">aaruf_get_media_manufacturer</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint8_t *buffer, int32_t *length)</div>
<div class="line"><a id="l02617" name="l02617"></a><span class="lineno"> 2617</span>{</div>
<div class="line"><a id="l02618" name="l02618"></a><span class="lineno"> 2618</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_media_manufacturer(%p, %p, %p)&quot;</span>, context, buffer, length);</div>
<div class="line"><a id="l02619" name="l02619"></a><span class="lineno"> 2619</span> </div>
<div class="line"><a id="l02620" name="l02620"></a><span class="lineno"> 2620</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l02621" name="l02621"></a><span class="lineno"> 2621</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l02622" name="l02622"></a><span class="lineno"> 2622</span> {</div>
<div class="line"><a id="l02623" name="l02623"></a><span class="lineno"> 2623</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="l02624" name="l02624"></a><span class="lineno"> 2624</span> </div>
<div class="line"><a id="l02625" name="l02625"></a><span class="lineno"> 2625</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_manufacturer() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02626" name="l02626"></a><span class="lineno"> 2626</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="l02627" name="l02627"></a><span class="lineno"> 2627</span> }</div>
<div class="line"><a id="l02628" name="l02628"></a><span class="lineno"> 2628</span> </div>
<div class="line"><a id="l02629" name="l02629"></a><span class="lineno"> 2629</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l02630" name="l02630"></a><span class="lineno"> 2630</span> </div>
<div class="line"><a id="l02631" name="l02631"></a><span class="lineno"> 2631</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l02632" name="l02632"></a><span class="lineno"> 2632</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="l02633" name="l02633"></a><span class="lineno"> 2633</span> {</div>
<div class="line"><a id="l02634" name="l02634"></a><span class="lineno"> 2634</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="l02635" name="l02635"></a><span class="lineno"> 2635</span> </div>
<div class="line"><a id="l02636" name="l02636"></a><span class="lineno"> 2636</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_manufacturer() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02637" name="l02637"></a><span class="lineno"> 2637</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="l02638" name="l02638"></a><span class="lineno"> 2638</span> }</div>
<div class="line"><a id="l02639" name="l02639"></a><span class="lineno"> 2639</span> </div>
<div class="line"><a id="l02640" name="l02640"></a><span class="lineno"> 2640</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a> || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#afd13345e6ab5072d97d9b3bbe238ecea">media_manufacturer</a> == NULL ||</div>
<div class="line"><a id="l02641" name="l02641"></a><span class="lineno"> 2641</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a7f2956f787d72b6981a22c050c0889cf">mediaManufacturerLength</a> == 0)</div>
<div class="line"><a id="l02642" name="l02642"></a><span class="lineno"> 2642</span> {</div>
<div class="line"><a id="l02643" name="l02643"></a><span class="lineno"> 2643</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;No metadata block present&quot;</span>);</div>
<div class="line"><a id="l02644" name="l02644"></a><span class="lineno"> 2644</span> </div>
<div class="line"><a id="l02645" name="l02645"></a><span class="lineno"> 2645</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_manufacturer() = AARUF_ERROR_METADATA_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l02646" name="l02646"></a><span class="lineno"> 2646</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a99ff8f6884fd5e21840b2e35240bc265">AARUF_ERROR_METADATA_NOT_PRESENT</a>;</div>
<div class="line"><a id="l02647" name="l02647"></a><span class="lineno"> 2647</span> }</div>
<div class="line"><a id="l02648" name="l02648"></a><span class="lineno"> 2648</span> </div>
<div class="line"><a id="l02649" name="l02649"></a><span class="lineno"> 2649</span> <span class="keywordflow">if</span>(buffer == NULL || *length &lt; ctx-&gt;metadata_block_header.mediaManufacturerLength)</div>
<div class="line"><a id="l02650" name="l02650"></a><span class="lineno"> 2650</span> {</div>
<div class="line"><a id="l02651" name="l02651"></a><span class="lineno"> 2651</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a7f2956f787d72b6981a22c050c0889cf">mediaManufacturerLength</a>;</div>
<div class="line"><a id="l02652" name="l02652"></a><span class="lineno"> 2652</span> </div>
<div class="line"><a id="l02653" name="l02653"></a><span class="lineno"> 2653</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_manufacturer() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l02654" name="l02654"></a><span class="lineno"> 2654</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l02655" name="l02655"></a><span class="lineno"> 2655</span> }</div>
<div class="line"><a id="l02656" name="l02656"></a><span class="lineno"> 2656</span> </div>
<div class="line"><a id="l02657" name="l02657"></a><span class="lineno"> 2657</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l02658" name="l02658"></a><span class="lineno"> 2658</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#afd13345e6ab5072d97d9b3bbe238ecea">media_manufacturer</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a7f2956f787d72b6981a22c050c0889cf">mediaManufacturerLength</a>);</div>
<div class="line"><a id="l02659" name="l02659"></a><span class="lineno"> 2659</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a7f2956f787d72b6981a22c050c0889cf">mediaManufacturerLength</a>;</div>
<div class="line"><a id="l02660" name="l02660"></a><span class="lineno"> 2660</span> </div>
<div class="line"><a id="l02661" name="l02661"></a><span class="lineno"> 2661</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_manufacturer(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, buffer, *length);</div>
<div class="line"><a id="l02662" name="l02662"></a><span class="lineno"> 2662</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="l02663" name="l02663"></a><span class="lineno"> 2663</span>}</div>
</div>
<div class="line"><a id="l02664" name="l02664"></a><span class="lineno"> 2664</span></div>
<div class="foldopen" id="foldopen02686" data-start="{" data-end="}">
<div class="line"><a id="l02686" name="l02686"></a><span class="lineno"><a class="line" href="decls_8h.html#a509892f76c9a03a030693740d043adfc"> 2686</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a509892f76c9a03a030693740d043adfc">aaruf_get_media_model</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint8_t *buffer, int32_t *length)</div>
<div class="line"><a id="l02687" name="l02687"></a><span class="lineno"> 2687</span>{</div>
<div class="line"><a id="l02688" name="l02688"></a><span class="lineno"> 2688</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_media_model(%p, %p, %p)&quot;</span>, context, buffer, length);</div>
<div class="line"><a id="l02689" name="l02689"></a><span class="lineno"> 2689</span> </div>
<div class="line"><a id="l02690" name="l02690"></a><span class="lineno"> 2690</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l02691" name="l02691"></a><span class="lineno"> 2691</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l02692" name="l02692"></a><span class="lineno"> 2692</span> {</div>
<div class="line"><a id="l02693" name="l02693"></a><span class="lineno"> 2693</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="l02694" name="l02694"></a><span class="lineno"> 2694</span> </div>
<div class="line"><a id="l02695" name="l02695"></a><span class="lineno"> 2695</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_model() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02696" name="l02696"></a><span class="lineno"> 2696</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="l02697" name="l02697"></a><span class="lineno"> 2697</span> }</div>
<div class="line"><a id="l02698" name="l02698"></a><span class="lineno"> 2698</span> </div>
<div class="line"><a id="l02699" name="l02699"></a><span class="lineno"> 2699</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l02700" name="l02700"></a><span class="lineno"> 2700</span> </div>
<div class="line"><a id="l02701" name="l02701"></a><span class="lineno"> 2701</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l02702" name="l02702"></a><span class="lineno"> 2702</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="l02703" name="l02703"></a><span class="lineno"> 2703</span> {</div>
<div class="line"><a id="l02704" name="l02704"></a><span class="lineno"> 2704</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="l02705" name="l02705"></a><span class="lineno"> 2705</span> </div>
<div class="line"><a id="l02706" name="l02706"></a><span class="lineno"> 2706</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_model() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02707" name="l02707"></a><span class="lineno"> 2707</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="l02708" name="l02708"></a><span class="lineno"> 2708</span> }</div>
<div class="line"><a id="l02709" name="l02709"></a><span class="lineno"> 2709</span> </div>
<div class="line"><a id="l02710" name="l02710"></a><span class="lineno"> 2710</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a> || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4ecbf4064d4ab0440e922e1c096b38dc">media_model</a> == NULL ||</div>
<div class="line"><a id="l02711" name="l02711"></a><span class="lineno"> 2711</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a9438f57b0304b42912b8c66e5a0f1051">mediaModelLength</a> == 0)</div>
<div class="line"><a id="l02712" name="l02712"></a><span class="lineno"> 2712</span> {</div>
<div class="line"><a id="l02713" name="l02713"></a><span class="lineno"> 2713</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;No metadata block present&quot;</span>);</div>
<div class="line"><a id="l02714" name="l02714"></a><span class="lineno"> 2714</span> </div>
<div class="line"><a id="l02715" name="l02715"></a><span class="lineno"> 2715</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_model() = AARUF_ERROR_METADATA_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l02716" name="l02716"></a><span class="lineno"> 2716</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a99ff8f6884fd5e21840b2e35240bc265">AARUF_ERROR_METADATA_NOT_PRESENT</a>;</div>
<div class="line"><a id="l02717" name="l02717"></a><span class="lineno"> 2717</span> }</div>
<div class="line"><a id="l02718" name="l02718"></a><span class="lineno"> 2718</span> </div>
<div class="line"><a id="l02719" name="l02719"></a><span class="lineno"> 2719</span> <span class="keywordflow">if</span>(buffer == NULL || *length &lt; ctx-&gt;metadata_block_header.mediaModelLength)</div>
<div class="line"><a id="l02720" name="l02720"></a><span class="lineno"> 2720</span> {</div>
<div class="line"><a id="l02721" name="l02721"></a><span class="lineno"> 2721</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a9438f57b0304b42912b8c66e5a0f1051">mediaModelLength</a>;</div>
<div class="line"><a id="l02722" name="l02722"></a><span class="lineno"> 2722</span> </div>
<div class="line"><a id="l02723" name="l02723"></a><span class="lineno"> 2723</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_model() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l02724" name="l02724"></a><span class="lineno"> 2724</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l02725" name="l02725"></a><span class="lineno"> 2725</span> }</div>
<div class="line"><a id="l02726" name="l02726"></a><span class="lineno"> 2726</span> </div>
<div class="line"><a id="l02727" name="l02727"></a><span class="lineno"> 2727</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l02728" name="l02728"></a><span class="lineno"> 2728</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a4ecbf4064d4ab0440e922e1c096b38dc">media_model</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a9438f57b0304b42912b8c66e5a0f1051">mediaModelLength</a>);</div>
<div class="line"><a id="l02729" name="l02729"></a><span class="lineno"> 2729</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a9438f57b0304b42912b8c66e5a0f1051">mediaModelLength</a>;</div>
<div class="line"><a id="l02730" name="l02730"></a><span class="lineno"> 2730</span> </div>
<div class="line"><a id="l02731" name="l02731"></a><span class="lineno"> 2731</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_model(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, buffer, *length);</div>
<div class="line"><a id="l02732" name="l02732"></a><span class="lineno"> 2732</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="l02733" name="l02733"></a><span class="lineno"> 2733</span>}</div>
</div>
<div class="line"><a id="l02734" name="l02734"></a><span class="lineno"> 2734</span></div>
<div class="foldopen" id="foldopen02756" data-start="{" data-end="}">
<div class="line"><a id="l02756" name="l02756"></a><span class="lineno"><a class="line" href="decls_8h.html#a4cb7b7200e36efb4983cf2c5c5543313"> 2756</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a4cb7b7200e36efb4983cf2c5c5543313">aaruf_get_media_serial_number</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint8_t *buffer, int32_t *length)</div>
<div class="line"><a id="l02757" name="l02757"></a><span class="lineno"> 2757</span>{</div>
<div class="line"><a id="l02758" name="l02758"></a><span class="lineno"> 2758</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_media_serial_number(%p, %p, %p)&quot;</span>, context, buffer, length);</div>
<div class="line"><a id="l02759" name="l02759"></a><span class="lineno"> 2759</span> </div>
<div class="line"><a id="l02760" name="l02760"></a><span class="lineno"> 2760</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l02761" name="l02761"></a><span class="lineno"> 2761</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l02762" name="l02762"></a><span class="lineno"> 2762</span> {</div>
<div class="line"><a id="l02763" name="l02763"></a><span class="lineno"> 2763</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="l02764" name="l02764"></a><span class="lineno"> 2764</span> </div>
<div class="line"><a id="l02765" name="l02765"></a><span class="lineno"> 2765</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_serial_number() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02766" name="l02766"></a><span class="lineno"> 2766</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="l02767" name="l02767"></a><span class="lineno"> 2767</span> }</div>
<div class="line"><a id="l02768" name="l02768"></a><span class="lineno"> 2768</span> </div>
<div class="line"><a id="l02769" name="l02769"></a><span class="lineno"> 2769</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l02770" name="l02770"></a><span class="lineno"> 2770</span> </div>
<div class="line"><a id="l02771" name="l02771"></a><span class="lineno"> 2771</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l02772" name="l02772"></a><span class="lineno"> 2772</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="l02773" name="l02773"></a><span class="lineno"> 2773</span> {</div>
<div class="line"><a id="l02774" name="l02774"></a><span class="lineno"> 2774</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="l02775" name="l02775"></a><span class="lineno"> 2775</span> </div>
<div class="line"><a id="l02776" name="l02776"></a><span class="lineno"> 2776</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_serial_number() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02777" name="l02777"></a><span class="lineno"> 2777</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="l02778" name="l02778"></a><span class="lineno"> 2778</span> }</div>
<div class="line"><a id="l02779" name="l02779"></a><span class="lineno"> 2779</span> </div>
<div class="line"><a id="l02780" name="l02780"></a><span class="lineno"> 2780</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a> || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a33b54e4325c94ad69d97f9cf5bdae68f">media_serial_number</a> == NULL ||</div>
<div class="line"><a id="l02781" name="l02781"></a><span class="lineno"> 2781</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aeae9bce28abec33ffa90005f2a247e34">mediaSerialNumberLength</a> == 0)</div>
<div class="line"><a id="l02782" name="l02782"></a><span class="lineno"> 2782</span> {</div>
<div class="line"><a id="l02783" name="l02783"></a><span class="lineno"> 2783</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;No metadata block present&quot;</span>);</div>
<div class="line"><a id="l02784" name="l02784"></a><span class="lineno"> 2784</span> </div>
<div class="line"><a id="l02785" name="l02785"></a><span class="lineno"> 2785</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_serial_number() = AARUF_ERROR_METADATA_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l02786" name="l02786"></a><span class="lineno"> 2786</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a99ff8f6884fd5e21840b2e35240bc265">AARUF_ERROR_METADATA_NOT_PRESENT</a>;</div>
<div class="line"><a id="l02787" name="l02787"></a><span class="lineno"> 2787</span> }</div>
<div class="line"><a id="l02788" name="l02788"></a><span class="lineno"> 2788</span> </div>
<div class="line"><a id="l02789" name="l02789"></a><span class="lineno"> 2789</span> <span class="keywordflow">if</span>(buffer == NULL || *length &lt; ctx-&gt;metadata_block_header.mediaSerialNumberLength)</div>
<div class="line"><a id="l02790" name="l02790"></a><span class="lineno"> 2790</span> {</div>
<div class="line"><a id="l02791" name="l02791"></a><span class="lineno"> 2791</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aeae9bce28abec33ffa90005f2a247e34">mediaSerialNumberLength</a>;</div>
<div class="line"><a id="l02792" name="l02792"></a><span class="lineno"> 2792</span> </div>
<div class="line"><a id="l02793" name="l02793"></a><span class="lineno"> 2793</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_serial_number() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l02794" name="l02794"></a><span class="lineno"> 2794</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l02795" name="l02795"></a><span class="lineno"> 2795</span> }</div>
<div class="line"><a id="l02796" name="l02796"></a><span class="lineno"> 2796</span> </div>
<div class="line"><a id="l02797" name="l02797"></a><span class="lineno"> 2797</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l02798" name="l02798"></a><span class="lineno"> 2798</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a33b54e4325c94ad69d97f9cf5bdae68f">media_serial_number</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aeae9bce28abec33ffa90005f2a247e34">mediaSerialNumberLength</a>);</div>
<div class="line"><a id="l02799" name="l02799"></a><span class="lineno"> 2799</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aeae9bce28abec33ffa90005f2a247e34">mediaSerialNumberLength</a>;</div>
<div class="line"><a id="l02800" name="l02800"></a><span class="lineno"> 2800</span> </div>
<div class="line"><a id="l02801" name="l02801"></a><span class="lineno"> 2801</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_serial_number(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, buffer, *length);</div>
<div class="line"><a id="l02802" name="l02802"></a><span class="lineno"> 2802</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="l02803" name="l02803"></a><span class="lineno"> 2803</span>}</div>
</div>
<div class="line"><a id="l02804" name="l02804"></a><span class="lineno"> 2804</span></div>
<div class="foldopen" id="foldopen02825" data-start="{" data-end="}">
<div class="line"><a id="l02825" name="l02825"></a><span class="lineno"><a class="line" href="decls_8h.html#a580c8bf133cf3481deca14779b8b5419"> 2825</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a580c8bf133cf3481deca14779b8b5419">aaruf_get_media_barcode</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint8_t *buffer, int32_t *length)</div>
<div class="line"><a id="l02826" name="l02826"></a><span class="lineno"> 2826</span>{</div>
<div class="line"><a id="l02827" name="l02827"></a><span class="lineno"> 2827</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_media_barcode(%p, %p, %p)&quot;</span>, context, buffer, length);</div>
<div class="line"><a id="l02828" name="l02828"></a><span class="lineno"> 2828</span> </div>
<div class="line"><a id="l02829" name="l02829"></a><span class="lineno"> 2829</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l02830" name="l02830"></a><span class="lineno"> 2830</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l02831" name="l02831"></a><span class="lineno"> 2831</span> {</div>
<div class="line"><a id="l02832" name="l02832"></a><span class="lineno"> 2832</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="l02833" name="l02833"></a><span class="lineno"> 2833</span> </div>
<div class="line"><a id="l02834" name="l02834"></a><span class="lineno"> 2834</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_barcode() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02835" name="l02835"></a><span class="lineno"> 2835</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="l02836" name="l02836"></a><span class="lineno"> 2836</span> }</div>
<div class="line"><a id="l02837" name="l02837"></a><span class="lineno"> 2837</span> </div>
<div class="line"><a id="l02838" name="l02838"></a><span class="lineno"> 2838</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l02839" name="l02839"></a><span class="lineno"> 2839</span> </div>
<div class="line"><a id="l02840" name="l02840"></a><span class="lineno"> 2840</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l02841" name="l02841"></a><span class="lineno"> 2841</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="l02842" name="l02842"></a><span class="lineno"> 2842</span> {</div>
<div class="line"><a id="l02843" name="l02843"></a><span class="lineno"> 2843</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="l02844" name="l02844"></a><span class="lineno"> 2844</span> </div>
<div class="line"><a id="l02845" name="l02845"></a><span class="lineno"> 2845</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_barcode() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02846" name="l02846"></a><span class="lineno"> 2846</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="l02847" name="l02847"></a><span class="lineno"> 2847</span> }</div>
<div class="line"><a id="l02848" name="l02848"></a><span class="lineno"> 2848</span> </div>
<div class="line"><a id="l02849" name="l02849"></a><span class="lineno"> 2849</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a> || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04aa232b37b939d9e815c4addc68a7a3">media_barcode</a> == NULL ||</div>
<div class="line"><a id="l02850" name="l02850"></a><span class="lineno"> 2850</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aef456689422a0514489b1c900ee2c741">mediaBarcodeLength</a> == 0)</div>
<div class="line"><a id="l02851" name="l02851"></a><span class="lineno"> 2851</span> {</div>
<div class="line"><a id="l02852" name="l02852"></a><span class="lineno"> 2852</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;No metadata block present&quot;</span>);</div>
<div class="line"><a id="l02853" name="l02853"></a><span class="lineno"> 2853</span> </div>
<div class="line"><a id="l02854" name="l02854"></a><span class="lineno"> 2854</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_barcode() = AARUF_ERROR_METADATA_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l02855" name="l02855"></a><span class="lineno"> 2855</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a99ff8f6884fd5e21840b2e35240bc265">AARUF_ERROR_METADATA_NOT_PRESENT</a>;</div>
<div class="line"><a id="l02856" name="l02856"></a><span class="lineno"> 2856</span> }</div>
<div class="line"><a id="l02857" name="l02857"></a><span class="lineno"> 2857</span> </div>
<div class="line"><a id="l02858" name="l02858"></a><span class="lineno"> 2858</span> <span class="keywordflow">if</span>(buffer == NULL || *length &lt; ctx-&gt;metadata_block_header.mediaBarcodeLength)</div>
<div class="line"><a id="l02859" name="l02859"></a><span class="lineno"> 2859</span> {</div>
<div class="line"><a id="l02860" name="l02860"></a><span class="lineno"> 2860</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aef456689422a0514489b1c900ee2c741">mediaBarcodeLength</a>;</div>
<div class="line"><a id="l02861" name="l02861"></a><span class="lineno"> 2861</span> </div>
<div class="line"><a id="l02862" name="l02862"></a><span class="lineno"> 2862</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_barcode() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l02863" name="l02863"></a><span class="lineno"> 2863</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l02864" name="l02864"></a><span class="lineno"> 2864</span> }</div>
<div class="line"><a id="l02865" name="l02865"></a><span class="lineno"> 2865</span> </div>
<div class="line"><a id="l02866" name="l02866"></a><span class="lineno"> 2866</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l02867" name="l02867"></a><span class="lineno"> 2867</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a04aa232b37b939d9e815c4addc68a7a3">media_barcode</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aef456689422a0514489b1c900ee2c741">mediaBarcodeLength</a>);</div>
<div class="line"><a id="l02868" name="l02868"></a><span class="lineno"> 2868</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aef456689422a0514489b1c900ee2c741">mediaBarcodeLength</a>;</div>
<div class="line"><a id="l02869" name="l02869"></a><span class="lineno"> 2869</span> </div>
<div class="line"><a id="l02870" name="l02870"></a><span class="lineno"> 2870</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_barcode(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, buffer, *length);</div>
<div class="line"><a id="l02871" name="l02871"></a><span class="lineno"> 2871</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="l02872" name="l02872"></a><span class="lineno"> 2872</span>}</div>
</div>
<div class="line"><a id="l02873" name="l02873"></a><span class="lineno"> 2873</span></div>
<div class="foldopen" id="foldopen02896" data-start="{" data-end="}">
<div class="line"><a id="l02896" name="l02896"></a><span class="lineno"><a class="line" href="decls_8h.html#a4cdfb46f5630fcf1fe6447b37ad18ae2"> 2896</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a4cdfb46f5630fcf1fe6447b37ad18ae2">aaruf_get_media_part_number</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint8_t *buffer, int32_t *length)</div>
<div class="line"><a id="l02897" name="l02897"></a><span class="lineno"> 2897</span>{</div>
<div class="line"><a id="l02898" name="l02898"></a><span class="lineno"> 2898</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_media_part_number(%p, %p, %p)&quot;</span>, context, buffer, length);</div>
<div class="line"><a id="l02899" name="l02899"></a><span class="lineno"> 2899</span> </div>
<div class="line"><a id="l02900" name="l02900"></a><span class="lineno"> 2900</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l02901" name="l02901"></a><span class="lineno"> 2901</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l02902" name="l02902"></a><span class="lineno"> 2902</span> {</div>
<div class="line"><a id="l02903" name="l02903"></a><span class="lineno"> 2903</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="l02904" name="l02904"></a><span class="lineno"> 2904</span> </div>
<div class="line"><a id="l02905" name="l02905"></a><span class="lineno"> 2905</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_part_number() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02906" name="l02906"></a><span class="lineno"> 2906</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="l02907" name="l02907"></a><span class="lineno"> 2907</span> }</div>
<div class="line"><a id="l02908" name="l02908"></a><span class="lineno"> 2908</span> </div>
<div class="line"><a id="l02909" name="l02909"></a><span class="lineno"> 2909</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l02910" name="l02910"></a><span class="lineno"> 2910</span> </div>
<div class="line"><a id="l02911" name="l02911"></a><span class="lineno"> 2911</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l02912" name="l02912"></a><span class="lineno"> 2912</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="l02913" name="l02913"></a><span class="lineno"> 2913</span> {</div>
<div class="line"><a id="l02914" name="l02914"></a><span class="lineno"> 2914</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="l02915" name="l02915"></a><span class="lineno"> 2915</span> </div>
<div class="line"><a id="l02916" name="l02916"></a><span class="lineno"> 2916</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_part_number() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02917" name="l02917"></a><span class="lineno"> 2917</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="l02918" name="l02918"></a><span class="lineno"> 2918</span> }</div>
<div class="line"><a id="l02919" name="l02919"></a><span class="lineno"> 2919</span> </div>
<div class="line"><a id="l02920" name="l02920"></a><span class="lineno"> 2920</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a> || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aa3d0670124a4fbe88c485c2b67d1ddbc">media_part_number</a> == NULL ||</div>
<div class="line"><a id="l02921" name="l02921"></a><span class="lineno"> 2921</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aef055916275048b6496f1f74eef2f1ac">mediaPartNumberLength</a> == 0)</div>
<div class="line"><a id="l02922" name="l02922"></a><span class="lineno"> 2922</span> {</div>
<div class="line"><a id="l02923" name="l02923"></a><span class="lineno"> 2923</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;No metadata block present&quot;</span>);</div>
<div class="line"><a id="l02924" name="l02924"></a><span class="lineno"> 2924</span> </div>
<div class="line"><a id="l02925" name="l02925"></a><span class="lineno"> 2925</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_part_number() = AARUF_ERROR_METADATA_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l02926" name="l02926"></a><span class="lineno"> 2926</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a99ff8f6884fd5e21840b2e35240bc265">AARUF_ERROR_METADATA_NOT_PRESENT</a>;</div>
<div class="line"><a id="l02927" name="l02927"></a><span class="lineno"> 2927</span> }</div>
<div class="line"><a id="l02928" name="l02928"></a><span class="lineno"> 2928</span> </div>
<div class="line"><a id="l02929" name="l02929"></a><span class="lineno"> 2929</span> <span class="keywordflow">if</span>(buffer == NULL || *length &lt; ctx-&gt;metadata_block_header.mediaPartNumberLength)</div>
<div class="line"><a id="l02930" name="l02930"></a><span class="lineno"> 2930</span> {</div>
<div class="line"><a id="l02931" name="l02931"></a><span class="lineno"> 2931</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aef055916275048b6496f1f74eef2f1ac">mediaPartNumberLength</a>;</div>
<div class="line"><a id="l02932" name="l02932"></a><span class="lineno"> 2932</span> </div>
<div class="line"><a id="l02933" name="l02933"></a><span class="lineno"> 2933</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_part_number() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l02934" name="l02934"></a><span class="lineno"> 2934</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l02935" name="l02935"></a><span class="lineno"> 2935</span> }</div>
<div class="line"><a id="l02936" name="l02936"></a><span class="lineno"> 2936</span> </div>
<div class="line"><a id="l02937" name="l02937"></a><span class="lineno"> 2937</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l02938" name="l02938"></a><span class="lineno"> 2938</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#aa3d0670124a4fbe88c485c2b67d1ddbc">media_part_number</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aef055916275048b6496f1f74eef2f1ac">mediaPartNumberLength</a>);</div>
<div class="line"><a id="l02939" name="l02939"></a><span class="lineno"> 2939</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#aef055916275048b6496f1f74eef2f1ac">mediaPartNumberLength</a>;</div>
<div class="line"><a id="l02940" name="l02940"></a><span class="lineno"> 2940</span> </div>
<div class="line"><a id="l02941" name="l02941"></a><span class="lineno"> 2941</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_media_part_number(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, buffer, *length);</div>
<div class="line"><a id="l02942" name="l02942"></a><span class="lineno"> 2942</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="l02943" name="l02943"></a><span class="lineno"> 2943</span>}</div>
</div>
<div class="line"><a id="l02944" name="l02944"></a><span class="lineno"> 2944</span></div>
<div class="foldopen" id="foldopen02968" data-start="{" data-end="}">
<div class="line"><a id="l02968" name="l02968"></a><span class="lineno"><a class="line" href="decls_8h.html#a5d487a858c48838bcc9f3bba4b5944a1"> 2968</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a5d487a858c48838bcc9f3bba4b5944a1">aaruf_get_drive_manufacturer</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint8_t *buffer, int32_t *length)</div>
<div class="line"><a id="l02969" name="l02969"></a><span class="lineno"> 2969</span>{</div>
<div class="line"><a id="l02970" name="l02970"></a><span class="lineno"> 2970</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_drive_manufacturer(%p, %p, %p)&quot;</span>, context, buffer, length);</div>
<div class="line"><a id="l02971" name="l02971"></a><span class="lineno"> 2971</span> </div>
<div class="line"><a id="l02972" name="l02972"></a><span class="lineno"> 2972</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l02973" name="l02973"></a><span class="lineno"> 2973</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l02974" name="l02974"></a><span class="lineno"> 2974</span> {</div>
<div class="line"><a id="l02975" name="l02975"></a><span class="lineno"> 2975</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="l02976" name="l02976"></a><span class="lineno"> 2976</span> </div>
<div class="line"><a id="l02977" name="l02977"></a><span class="lineno"> 2977</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_manufacturer() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02978" name="l02978"></a><span class="lineno"> 2978</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="l02979" name="l02979"></a><span class="lineno"> 2979</span> }</div>
<div class="line"><a id="l02980" name="l02980"></a><span class="lineno"> 2980</span> </div>
<div class="line"><a id="l02981" name="l02981"></a><span class="lineno"> 2981</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l02982" name="l02982"></a><span class="lineno"> 2982</span> </div>
<div class="line"><a id="l02983" name="l02983"></a><span class="lineno"> 2983</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l02984" name="l02984"></a><span class="lineno"> 2984</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="l02985" name="l02985"></a><span class="lineno"> 2985</span> {</div>
<div class="line"><a id="l02986" name="l02986"></a><span class="lineno"> 2986</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="l02987" name="l02987"></a><span class="lineno"> 2987</span> </div>
<div class="line"><a id="l02988" name="l02988"></a><span class="lineno"> 2988</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_manufacturer() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l02989" name="l02989"></a><span class="lineno"> 2989</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="l02990" name="l02990"></a><span class="lineno"> 2990</span> }</div>
<div class="line"><a id="l02991" name="l02991"></a><span class="lineno"> 2991</span> </div>
<div class="line"><a id="l02992" name="l02992"></a><span class="lineno"> 2992</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a> || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a614d6f01d563ea57650ce0bbfecfa08d">drive_manufacturer</a> == NULL ||</div>
<div class="line"><a id="l02993" name="l02993"></a><span class="lineno"> 2993</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a380656568f47a838a8a3833844789064">driveManufacturerLength</a> == 0)</div>
<div class="line"><a id="l02994" name="l02994"></a><span class="lineno"> 2994</span> {</div>
<div class="line"><a id="l02995" name="l02995"></a><span class="lineno"> 2995</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;No metadata block present&quot;</span>);</div>
<div class="line"><a id="l02996" name="l02996"></a><span class="lineno"> 2996</span> </div>
<div class="line"><a id="l02997" name="l02997"></a><span class="lineno"> 2997</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_manufacturer() = AARUF_ERROR_METADATA_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l02998" name="l02998"></a><span class="lineno"> 2998</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a99ff8f6884fd5e21840b2e35240bc265">AARUF_ERROR_METADATA_NOT_PRESENT</a>;</div>
<div class="line"><a id="l02999" name="l02999"></a><span class="lineno"> 2999</span> }</div>
<div class="line"><a id="l03000" name="l03000"></a><span class="lineno"> 3000</span> </div>
<div class="line"><a id="l03001" name="l03001"></a><span class="lineno"> 3001</span> <span class="keywordflow">if</span>(buffer == NULL || *length &lt; ctx-&gt;metadata_block_header.driveManufacturerLength)</div>
<div class="line"><a id="l03002" name="l03002"></a><span class="lineno"> 3002</span> {</div>
<div class="line"><a id="l03003" name="l03003"></a><span class="lineno"> 3003</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a380656568f47a838a8a3833844789064">driveManufacturerLength</a>;</div>
<div class="line"><a id="l03004" name="l03004"></a><span class="lineno"> 3004</span> </div>
<div class="line"><a id="l03005" name="l03005"></a><span class="lineno"> 3005</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_manufacturer() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l03006" name="l03006"></a><span class="lineno"> 3006</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l03007" name="l03007"></a><span class="lineno"> 3007</span> }</div>
<div class="line"><a id="l03008" name="l03008"></a><span class="lineno"> 3008</span> </div>
<div class="line"><a id="l03009" name="l03009"></a><span class="lineno"> 3009</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l03010" name="l03010"></a><span class="lineno"> 3010</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a614d6f01d563ea57650ce0bbfecfa08d">drive_manufacturer</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a380656568f47a838a8a3833844789064">driveManufacturerLength</a>);</div>
<div class="line"><a id="l03011" name="l03011"></a><span class="lineno"> 3011</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a380656568f47a838a8a3833844789064">driveManufacturerLength</a>;</div>
<div class="line"><a id="l03012" name="l03012"></a><span class="lineno"> 3012</span> </div>
<div class="line"><a id="l03013" name="l03013"></a><span class="lineno"> 3013</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_manufacturer(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, buffer, *length);</div>
<div class="line"><a id="l03014" name="l03014"></a><span class="lineno"> 3014</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="l03015" name="l03015"></a><span class="lineno"> 3015</span>}</div>
</div>
<div class="line"><a id="l03016" name="l03016"></a><span class="lineno"> 3016</span></div>
<div class="foldopen" id="foldopen03038" data-start="{" data-end="}">
<div class="line"><a id="l03038" name="l03038"></a><span class="lineno"><a class="line" href="decls_8h.html#a54d724659818ea4486f9981672f6d01e"> 3038</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a54d724659818ea4486f9981672f6d01e">aaruf_get_drive_model</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint8_t *buffer, int32_t *length)</div>
<div class="line"><a id="l03039" name="l03039"></a><span class="lineno"> 3039</span>{</div>
<div class="line"><a id="l03040" name="l03040"></a><span class="lineno"> 3040</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_drive_model(%p, %p, %p)&quot;</span>, context, buffer, length);</div>
<div class="line"><a id="l03041" name="l03041"></a><span class="lineno"> 3041</span> </div>
<div class="line"><a id="l03042" name="l03042"></a><span class="lineno"> 3042</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l03043" name="l03043"></a><span class="lineno"> 3043</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l03044" name="l03044"></a><span class="lineno"> 3044</span> {</div>
<div class="line"><a id="l03045" name="l03045"></a><span class="lineno"> 3045</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="l03046" name="l03046"></a><span class="lineno"> 3046</span> </div>
<div class="line"><a id="l03047" name="l03047"></a><span class="lineno"> 3047</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_model() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l03048" name="l03048"></a><span class="lineno"> 3048</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="l03049" name="l03049"></a><span class="lineno"> 3049</span> }</div>
<div class="line"><a id="l03050" name="l03050"></a><span class="lineno"> 3050</span> </div>
<div class="line"><a id="l03051" name="l03051"></a><span class="lineno"> 3051</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l03052" name="l03052"></a><span class="lineno"> 3052</span> </div>
<div class="line"><a id="l03053" name="l03053"></a><span class="lineno"> 3053</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l03054" name="l03054"></a><span class="lineno"> 3054</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="l03055" name="l03055"></a><span class="lineno"> 3055</span> {</div>
<div class="line"><a id="l03056" name="l03056"></a><span class="lineno"> 3056</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="l03057" name="l03057"></a><span class="lineno"> 3057</span> </div>
<div class="line"><a id="l03058" name="l03058"></a><span class="lineno"> 3058</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_model() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l03059" name="l03059"></a><span class="lineno"> 3059</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="l03060" name="l03060"></a><span class="lineno"> 3060</span> }</div>
<div class="line"><a id="l03061" name="l03061"></a><span class="lineno"> 3061</span> </div>
<div class="line"><a id="l03062" name="l03062"></a><span class="lineno"> 3062</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a> || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a77d9c8c852de1d955bceb4cfc50557ce">drive_model</a> == NULL ||</div>
<div class="line"><a id="l03063" name="l03063"></a><span class="lineno"> 3063</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a3757158a1386964537beb387b5bc03d2">driveModelLength</a> == 0)</div>
<div class="line"><a id="l03064" name="l03064"></a><span class="lineno"> 3064</span> {</div>
<div class="line"><a id="l03065" name="l03065"></a><span class="lineno"> 3065</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;No metadata block present&quot;</span>);</div>
<div class="line"><a id="l03066" name="l03066"></a><span class="lineno"> 3066</span> </div>
<div class="line"><a id="l03067" name="l03067"></a><span class="lineno"> 3067</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_model() = AARUF_ERROR_METADATA_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l03068" name="l03068"></a><span class="lineno"> 3068</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a99ff8f6884fd5e21840b2e35240bc265">AARUF_ERROR_METADATA_NOT_PRESENT</a>;</div>
<div class="line"><a id="l03069" name="l03069"></a><span class="lineno"> 3069</span> }</div>
<div class="line"><a id="l03070" name="l03070"></a><span class="lineno"> 3070</span> </div>
<div class="line"><a id="l03071" name="l03071"></a><span class="lineno"> 3071</span> <span class="keywordflow">if</span>(buffer == NULL || *length &lt; ctx-&gt;metadata_block_header.driveModelLength)</div>
<div class="line"><a id="l03072" name="l03072"></a><span class="lineno"> 3072</span> {</div>
<div class="line"><a id="l03073" name="l03073"></a><span class="lineno"> 3073</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a3757158a1386964537beb387b5bc03d2">driveModelLength</a>;</div>
<div class="line"><a id="l03074" name="l03074"></a><span class="lineno"> 3074</span> </div>
<div class="line"><a id="l03075" name="l03075"></a><span class="lineno"> 3075</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_model() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l03076" name="l03076"></a><span class="lineno"> 3076</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l03077" name="l03077"></a><span class="lineno"> 3077</span> }</div>
<div class="line"><a id="l03078" name="l03078"></a><span class="lineno"> 3078</span> </div>
<div class="line"><a id="l03079" name="l03079"></a><span class="lineno"> 3079</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l03080" name="l03080"></a><span class="lineno"> 3080</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a77d9c8c852de1d955bceb4cfc50557ce">drive_model</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a3757158a1386964537beb387b5bc03d2">driveModelLength</a>);</div>
<div class="line"><a id="l03081" name="l03081"></a><span class="lineno"> 3081</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a3757158a1386964537beb387b5bc03d2">driveModelLength</a>;</div>
<div class="line"><a id="l03082" name="l03082"></a><span class="lineno"> 3082</span> </div>
<div class="line"><a id="l03083" name="l03083"></a><span class="lineno"> 3083</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_model(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, buffer, *length);</div>
<div class="line"><a id="l03084" name="l03084"></a><span class="lineno"> 3084</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="l03085" name="l03085"></a><span class="lineno"> 3085</span>}</div>
</div>
<div class="line"><a id="l03086" name="l03086"></a><span class="lineno"> 3086</span></div>
<div class="foldopen" id="foldopen03108" data-start="{" data-end="}">
<div class="line"><a id="l03108" name="l03108"></a><span class="lineno"><a class="line" href="decls_8h.html#a1892cc8395305d7e85d04544ded62131"> 3108</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a1892cc8395305d7e85d04544ded62131">aaruf_get_drive_serial_number</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint8_t *buffer, int32_t *length)</div>
<div class="line"><a id="l03109" name="l03109"></a><span class="lineno"> 3109</span>{</div>
<div class="line"><a id="l03110" name="l03110"></a><span class="lineno"> 3110</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_drive_serial_number(%p, %p, %p)&quot;</span>, context, buffer, length);</div>
<div class="line"><a id="l03111" name="l03111"></a><span class="lineno"> 3111</span> </div>
<div class="line"><a id="l03112" name="l03112"></a><span class="lineno"> 3112</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l03113" name="l03113"></a><span class="lineno"> 3113</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l03114" name="l03114"></a><span class="lineno"> 3114</span> {</div>
<div class="line"><a id="l03115" name="l03115"></a><span class="lineno"> 3115</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="l03116" name="l03116"></a><span class="lineno"> 3116</span> </div>
<div class="line"><a id="l03117" name="l03117"></a><span class="lineno"> 3117</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_serial_number() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l03118" name="l03118"></a><span class="lineno"> 3118</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="l03119" name="l03119"></a><span class="lineno"> 3119</span> }</div>
<div class="line"><a id="l03120" name="l03120"></a><span class="lineno"> 3120</span> </div>
<div class="line"><a id="l03121" name="l03121"></a><span class="lineno"> 3121</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l03122" name="l03122"></a><span class="lineno"> 3122</span> </div>
<div class="line"><a id="l03123" name="l03123"></a><span class="lineno"> 3123</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l03124" name="l03124"></a><span class="lineno"> 3124</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="l03125" name="l03125"></a><span class="lineno"> 3125</span> {</div>
<div class="line"><a id="l03126" name="l03126"></a><span class="lineno"> 3126</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="l03127" name="l03127"></a><span class="lineno"> 3127</span> </div>
<div class="line"><a id="l03128" name="l03128"></a><span class="lineno"> 3128</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_serial_number() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l03129" name="l03129"></a><span class="lineno"> 3129</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="l03130" name="l03130"></a><span class="lineno"> 3130</span> }</div>
<div class="line"><a id="l03131" name="l03131"></a><span class="lineno"> 3131</span> </div>
<div class="line"><a id="l03132" name="l03132"></a><span class="lineno"> 3132</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a> || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a505f32de424a033246348d9fa35f9b19">drive_serial_number</a> == NULL ||</div>
<div class="line"><a id="l03133" name="l03133"></a><span class="lineno"> 3133</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a78213f42c28f31038e6a9f130c660ad8">driveSerialNumberLength</a> == 0)</div>
<div class="line"><a id="l03134" name="l03134"></a><span class="lineno"> 3134</span> {</div>
<div class="line"><a id="l03135" name="l03135"></a><span class="lineno"> 3135</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;No metadata block present&quot;</span>);</div>
<div class="line"><a id="l03136" name="l03136"></a><span class="lineno"> 3136</span> </div>
<div class="line"><a id="l03137" name="l03137"></a><span class="lineno"> 3137</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_serial_number() = AARUF_ERROR_METADATA_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l03138" name="l03138"></a><span class="lineno"> 3138</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a99ff8f6884fd5e21840b2e35240bc265">AARUF_ERROR_METADATA_NOT_PRESENT</a>;</div>
<div class="line"><a id="l03139" name="l03139"></a><span class="lineno"> 3139</span> }</div>
<div class="line"><a id="l03140" name="l03140"></a><span class="lineno"> 3140</span> </div>
<div class="line"><a id="l03141" name="l03141"></a><span class="lineno"> 3141</span> <span class="keywordflow">if</span>(buffer == NULL || *length &lt; ctx-&gt;metadata_block_header.driveSerialNumberLength)</div>
<div class="line"><a id="l03142" name="l03142"></a><span class="lineno"> 3142</span> {</div>
<div class="line"><a id="l03143" name="l03143"></a><span class="lineno"> 3143</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a78213f42c28f31038e6a9f130c660ad8">driveSerialNumberLength</a>;</div>
<div class="line"><a id="l03144" name="l03144"></a><span class="lineno"> 3144</span> </div>
<div class="line"><a id="l03145" name="l03145"></a><span class="lineno"> 3145</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_serial_number() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l03146" name="l03146"></a><span class="lineno"> 3146</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l03147" name="l03147"></a><span class="lineno"> 3147</span> }</div>
<div class="line"><a id="l03148" name="l03148"></a><span class="lineno"> 3148</span> </div>
<div class="line"><a id="l03149" name="l03149"></a><span class="lineno"> 3149</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l03150" name="l03150"></a><span class="lineno"> 3150</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a505f32de424a033246348d9fa35f9b19">drive_serial_number</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a78213f42c28f31038e6a9f130c660ad8">driveSerialNumberLength</a>);</div>
<div class="line"><a id="l03151" name="l03151"></a><span class="lineno"> 3151</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a78213f42c28f31038e6a9f130c660ad8">driveSerialNumberLength</a>;</div>
<div class="line"><a id="l03152" name="l03152"></a><span class="lineno"> 3152</span> </div>
<div class="line"><a id="l03153" name="l03153"></a><span class="lineno"> 3153</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_serial_number(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, buffer, *length);</div>
<div class="line"><a id="l03154" name="l03154"></a><span class="lineno"> 3154</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="l03155" name="l03155"></a><span class="lineno"> 3155</span>}</div>
</div>
<div class="line"><a id="l03156" name="l03156"></a><span class="lineno"> 3156</span></div>
<div class="foldopen" id="foldopen03178" data-start="{" data-end="}">
<div class="line"><a id="l03178" name="l03178"></a><span class="lineno"><a class="line" href="decls_8h.html#a3db92f6bebf60195d6ab327e17988cee"> 3178</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a3db92f6bebf60195d6ab327e17988cee">aaruf_get_drive_firmware_revision</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint8_t *buffer, int32_t *length)</div>
<div class="line"><a id="l03179" name="l03179"></a><span class="lineno"> 3179</span>{</div>
<div class="line"><a id="l03180" name="l03180"></a><span class="lineno"> 3180</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_drive_firmware_revision(%p, %p, %p)&quot;</span>, context, buffer, length);</div>
<div class="line"><a id="l03181" name="l03181"></a><span class="lineno"> 3181</span> </div>
<div class="line"><a id="l03182" name="l03182"></a><span class="lineno"> 3182</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l03183" name="l03183"></a><span class="lineno"> 3183</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l03184" name="l03184"></a><span class="lineno"> 3184</span> {</div>
<div class="line"><a id="l03185" name="l03185"></a><span class="lineno"> 3185</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="l03186" name="l03186"></a><span class="lineno"> 3186</span> </div>
<div class="line"><a id="l03187" name="l03187"></a><span class="lineno"> 3187</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_firmware_revision() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l03188" name="l03188"></a><span class="lineno"> 3188</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="l03189" name="l03189"></a><span class="lineno"> 3189</span> }</div>
<div class="line"><a id="l03190" name="l03190"></a><span class="lineno"> 3190</span> </div>
<div class="line"><a id="l03191" name="l03191"></a><span class="lineno"> 3191</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l03192" name="l03192"></a><span class="lineno"> 3192</span> </div>
<div class="line"><a id="l03193" name="l03193"></a><span class="lineno"> 3193</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l03194" name="l03194"></a><span class="lineno"> 3194</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="l03195" name="l03195"></a><span class="lineno"> 3195</span> {</div>
<div class="line"><a id="l03196" name="l03196"></a><span class="lineno"> 3196</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="l03197" name="l03197"></a><span class="lineno"> 3197</span> </div>
<div class="line"><a id="l03198" name="l03198"></a><span class="lineno"> 3198</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_firmware_revision() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l03199" name="l03199"></a><span class="lineno"> 3199</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="l03200" name="l03200"></a><span class="lineno"> 3200</span> }</div>
<div class="line"><a id="l03201" name="l03201"></a><span class="lineno"> 3201</span> </div>
<div class="line"><a id="l03202" name="l03202"></a><span class="lineno"> 3202</span> <span class="keywordflow">if</span>(ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a> || ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a329dda508cb897dc7871d2d1c0434792">drive_firmware_revision</a> == NULL ||</div>
<div class="line"><a id="l03203" name="l03203"></a><span class="lineno"> 3203</span> ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#afbf024f5492e45a3643ea7a1652b6420">driveFirmwareRevisionLength</a> == 0)</div>
<div class="line"><a id="l03204" name="l03204"></a><span class="lineno"> 3204</span> {</div>
<div class="line"><a id="l03205" name="l03205"></a><span class="lineno"> 3205</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;No metadata block present&quot;</span>);</div>
<div class="line"><a id="l03206" name="l03206"></a><span class="lineno"> 3206</span> </div>
<div class="line"><a id="l03207" name="l03207"></a><span class="lineno"> 3207</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_firmware_revision() = AARUF_ERROR_METADATA_NOT_PRESENT&quot;</span>);</div>
<div class="line"><a id="l03208" name="l03208"></a><span class="lineno"> 3208</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a99ff8f6884fd5e21840b2e35240bc265">AARUF_ERROR_METADATA_NOT_PRESENT</a>;</div>
<div class="line"><a id="l03209" name="l03209"></a><span class="lineno"> 3209</span> }</div>
<div class="line"><a id="l03210" name="l03210"></a><span class="lineno"> 3210</span> </div>
<div class="line"><a id="l03211" name="l03211"></a><span class="lineno"> 3211</span> <span class="keywordflow">if</span>(buffer == NULL || *length &lt; ctx-&gt;metadata_block_header.driveFirmwareRevisionLength)</div>
<div class="line"><a id="l03212" name="l03212"></a><span class="lineno"> 3212</span> {</div>
<div class="line"><a id="l03213" name="l03213"></a><span class="lineno"> 3213</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#afbf024f5492e45a3643ea7a1652b6420">driveFirmwareRevisionLength</a>;</div>
<div class="line"><a id="l03214" name="l03214"></a><span class="lineno"> 3214</span> </div>
<div class="line"><a id="l03215" name="l03215"></a><span class="lineno"> 3215</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_firmware_revision() = AARUF_ERROR_BUFFER_TOO_SMALL&quot;</span>);</div>
<div class="line"><a id="l03216" name="l03216"></a><span class="lineno"> 3216</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a>;</div>
<div class="line"><a id="l03217" name="l03217"></a><span class="lineno"> 3217</span> }</div>
<div class="line"><a id="l03218" name="l03218"></a><span class="lineno"> 3218</span> </div>
<div class="line"><a id="l03219" name="l03219"></a><span class="lineno"> 3219</span> <span class="comment">// Copy opaque UTF-16LE string</span></div>
<div class="line"><a id="l03220" name="l03220"></a><span class="lineno"> 3220</span> memcpy(buffer, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a329dda508cb897dc7871d2d1c0434792">drive_firmware_revision</a>, ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#afbf024f5492e45a3643ea7a1652b6420">driveFirmwareRevisionLength</a>);</div>
<div class="line"><a id="l03221" name="l03221"></a><span class="lineno"> 3221</span> *length = ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">metadata_block_header</a>.<a class="code hl_variable" href="structMetadataBlockHeader.html#afbf024f5492e45a3643ea7a1652b6420">driveFirmwareRevisionLength</a>;</div>
<div class="line"><a id="l03222" name="l03222"></a><span class="lineno"> 3222</span> </div>
<div class="line"><a id="l03223" name="l03223"></a><span class="lineno"> 3223</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_drive_firmware_revision(%p, %p, %d) = AARUF_STATUS_OK&quot;</span>, context, buffer, *length);</div>
<div class="line"><a id="l03224" name="l03224"></a><span class="lineno"> 3224</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="l03225" name="l03225"></a><span class="lineno"> 3225</span>}</div>
</div>
<div class="line"><a id="l03226" name="l03226"></a><span class="lineno"> 3226</span></div>
<div class="foldopen" id="foldopen03292" data-start="{" data-end="}">
<div class="line"><a id="l03292" name="l03292"></a><span class="lineno"><a class="line" href="decls_8h.html#a7e63f10ff3ea353c8c3944cd836a85ee"> 3292</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a7e63f10ff3ea353c8c3944cd836a85ee">aaruf_get_user_sectors</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint64_t *sectors)</div>
<div class="line"><a id="l03293" name="l03293"></a><span class="lineno"> 3293</span>{</div>
<div class="line"><a id="l03294" name="l03294"></a><span class="lineno"> 3294</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_user_sectors(%p, %p)&quot;</span>, context, sectors);</div>
<div class="line"><a id="l03295" name="l03295"></a><span class="lineno"> 3295</span> </div>
<div class="line"><a id="l03296" name="l03296"></a><span class="lineno"> 3296</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l03297" name="l03297"></a><span class="lineno"> 3297</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l03298" name="l03298"></a><span class="lineno"> 3298</span> {</div>
<div class="line"><a id="l03299" name="l03299"></a><span class="lineno"> 3299</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="l03300" name="l03300"></a><span class="lineno"> 3300</span> </div>
<div class="line"><a id="l03301" name="l03301"></a><span class="lineno"> 3301</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_user_sectors() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l03302" name="l03302"></a><span class="lineno"> 3302</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="l03303" name="l03303"></a><span class="lineno"> 3303</span> }</div>
<div class="line"><a id="l03304" name="l03304"></a><span class="lineno"> 3304</span> </div>
<div class="line"><a id="l03305" name="l03305"></a><span class="lineno"> 3305</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l03306" name="l03306"></a><span class="lineno"> 3306</span> </div>
<div class="line"><a id="l03307" name="l03307"></a><span class="lineno"> 3307</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l03308" name="l03308"></a><span class="lineno"> 3308</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="l03309" name="l03309"></a><span class="lineno"> 3309</span> {</div>
<div class="line"><a id="l03310" name="l03310"></a><span class="lineno"> 3310</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="l03311" name="l03311"></a><span class="lineno"> 3311</span> </div>
<div class="line"><a id="l03312" name="l03312"></a><span class="lineno"> 3312</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_user_sectors() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l03313" name="l03313"></a><span class="lineno"> 3313</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="l03314" name="l03314"></a><span class="lineno"> 3314</span> }</div>
<div class="line"><a id="l03315" name="l03315"></a><span class="lineno"> 3315</span> </div>
<div class="line"><a id="l03316" name="l03316"></a><span class="lineno"> 3316</span> *sectors = 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#a9571c1d556e33537935bab1edba31135">blocks</a>;</div>
<div class="line"><a id="l03317" name="l03317"></a><span class="lineno"> 3317</span> </div>
<div class="line"><a id="l03318" name="l03318"></a><span class="lineno"> 3318</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_user_sectors(%p, %llu) = AARUF_STATUS_OK&quot;</span>, context, *sectors);</div>
<div class="line"><a id="l03319" name="l03319"></a><span class="lineno"> 3319</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="l03320" name="l03320"></a><span class="lineno"> 3320</span>}</div>
</div>
<div class="line"><a id="l03321" name="l03321"></a><span class="lineno"> 3321</span></div>
<div class="foldopen" id="foldopen03417" data-start="{" data-end="}">
<div class="line"><a id="l03417" name="l03417"></a><span class="lineno"><a class="line" href="decls_8h.html#a8e00d26a8e751fbd412868ac4f92a3c0"> 3417</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a8e00d26a8e751fbd412868ac4f92a3c0">aaruf_get_negative_sectors</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint16_t *sectors)</div>
<div class="line"><a id="l03418" name="l03418"></a><span class="lineno"> 3418</span>{</div>
<div class="line"><a id="l03419" name="l03419"></a><span class="lineno"> 3419</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_negative_sectors(%p, %p)&quot;</span>, context, sectors);</div>
<div class="line"><a id="l03420" name="l03420"></a><span class="lineno"> 3420</span> </div>
<div class="line"><a id="l03421" name="l03421"></a><span class="lineno"> 3421</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l03422" name="l03422"></a><span class="lineno"> 3422</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l03423" name="l03423"></a><span class="lineno"> 3423</span> {</div>
<div class="line"><a id="l03424" name="l03424"></a><span class="lineno"> 3424</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="l03425" name="l03425"></a><span class="lineno"> 3425</span> </div>
<div class="line"><a id="l03426" name="l03426"></a><span class="lineno"> 3426</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_negative_sectors() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l03427" name="l03427"></a><span class="lineno"> 3427</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="l03428" name="l03428"></a><span class="lineno"> 3428</span> }</div>
<div class="line"><a id="l03429" name="l03429"></a><span class="lineno"> 3429</span> </div>
<div class="line"><a id="l03430" name="l03430"></a><span class="lineno"> 3430</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l03431" name="l03431"></a><span class="lineno"> 3431</span> </div>
<div class="line"><a id="l03432" name="l03432"></a><span class="lineno"> 3432</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l03433" name="l03433"></a><span class="lineno"> 3433</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="l03434" name="l03434"></a><span class="lineno"> 3434</span> {</div>
<div class="line"><a id="l03435" name="l03435"></a><span class="lineno"> 3435</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="l03436" name="l03436"></a><span class="lineno"> 3436</span> </div>
<div class="line"><a id="l03437" name="l03437"></a><span class="lineno"> 3437</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_negative_sectors() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l03438" name="l03438"></a><span class="lineno"> 3438</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="l03439" name="l03439"></a><span class="lineno"> 3439</span> }</div>
<div class="line"><a id="l03440" name="l03440"></a><span class="lineno"> 3440</span> </div>
<div class="line"><a id="l03441" name="l03441"></a><span class="lineno"> 3441</span> *sectors = 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="l03442" name="l03442"></a><span class="lineno"> 3442</span> </div>
<div class="line"><a id="l03443" name="l03443"></a><span class="lineno"> 3443</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_negative_sectors(%p, %u) = AARUF_STATUS_OK&quot;</span>, context, *sectors);</div>
<div class="line"><a id="l03444" name="l03444"></a><span class="lineno"> 3444</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="l03445" name="l03445"></a><span class="lineno"> 3445</span>}</div>
</div>
<div class="line"><a id="l03446" name="l03446"></a><span class="lineno"> 3446</span></div>
<div class="foldopen" id="foldopen03552" data-start="{" data-end="}">
<div class="line"><a id="l03552" name="l03552"></a><span class="lineno"><a class="line" href="decls_8h.html#aeeae64b120a10bac5e3d757a07a9691a"> 3552</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#aeeae64b120a10bac5e3d757a07a9691a">aaruf_get_overflow_sectors</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, uint16_t *sectors)</div>
<div class="line"><a id="l03553" name="l03553"></a><span class="lineno"> 3553</span>{</div>
<div class="line"><a id="l03554" name="l03554"></a><span class="lineno"> 3554</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_overflow_sectors(%p, %p)&quot;</span>, context, sectors);</div>
<div class="line"><a id="l03555" name="l03555"></a><span class="lineno"> 3555</span> </div>
<div class="line"><a id="l03556" name="l03556"></a><span class="lineno"> 3556</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l03557" name="l03557"></a><span class="lineno"> 3557</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l03558" name="l03558"></a><span class="lineno"> 3558</span> {</div>
<div class="line"><a id="l03559" name="l03559"></a><span class="lineno"> 3559</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="l03560" name="l03560"></a><span class="lineno"> 3560</span> </div>
<div class="line"><a id="l03561" name="l03561"></a><span class="lineno"> 3561</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_overflow_sectors() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l03562" name="l03562"></a><span class="lineno"> 3562</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="l03563" name="l03563"></a><span class="lineno"> 3563</span> }</div>
<div class="line"><a id="l03564" name="l03564"></a><span class="lineno"> 3564</span> </div>
<div class="line"><a id="l03565" name="l03565"></a><span class="lineno"> 3565</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l03566" name="l03566"></a><span class="lineno"> 3566</span> </div>
<div class="line"><a id="l03567" name="l03567"></a><span class="lineno"> 3567</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l03568" name="l03568"></a><span class="lineno"> 3568</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="l03569" name="l03569"></a><span class="lineno"> 3569</span> {</div>
<div class="line"><a id="l03570" name="l03570"></a><span class="lineno"> 3570</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="l03571" name="l03571"></a><span class="lineno"> 3571</span> </div>
<div class="line"><a id="l03572" name="l03572"></a><span class="lineno"> 3572</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_overflow_sectors() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l03573" name="l03573"></a><span class="lineno"> 3573</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="l03574" name="l03574"></a><span class="lineno"> 3574</span> }</div>
<div class="line"><a id="l03575" name="l03575"></a><span class="lineno"> 3575</span> </div>
<div class="line"><a id="l03576" name="l03576"></a><span class="lineno"> 3576</span> *sectors = 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="l03577" name="l03577"></a><span class="lineno"> 3577</span> </div>
<div class="line"><a id="l03578" name="l03578"></a><span class="lineno"> 3578</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_overflow_sectors(%p, %u) = AARUF_STATUS_OK&quot;</span>, context, *sectors);</div>
<div class="line"><a id="l03579" name="l03579"></a><span class="lineno"> 3579</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="l03580" name="l03580"></a><span class="lineno"> 3580</span>}</div>
</div>
<div class="line"><a id="l03581" name="l03581"></a><span class="lineno"> 3581</span></div>
<div class="foldopen" id="foldopen03634" data-start="{" data-end="}">
<div class="line"><a id="l03634" name="l03634"></a><span class="lineno"><a class="line" href="decls_8h.html#a65c73217edb9661accbbe3de4f555b62"> 3634</a></span>int32_t <a class="code hl_function" href="metadata_8c.html#a65c73217edb9661accbbe3de4f555b62">aaruf_get_image_info</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, <a class="code hl_struct" href="structImageInfo.html">ImageInfo</a> *image_info)</div>
<div class="line"><a id="l03635" name="l03635"></a><span class="lineno"> 3635</span>{</div>
<div class="line"><a id="l03636" name="l03636"></a><span class="lineno"> 3636</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Entering aaruf_get_image_info(%p, %p)&quot;</span>, context, image_info);</div>
<div class="line"><a id="l03637" name="l03637"></a><span class="lineno"> 3637</span> </div>
<div class="line"><a id="l03638" name="l03638"></a><span class="lineno"> 3638</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
<div class="line"><a id="l03639" name="l03639"></a><span class="lineno"> 3639</span> <span class="keywordflow">if</span>(context == NULL)</div>
<div class="line"><a id="l03640" name="l03640"></a><span class="lineno"> 3640</span> {</div>
<div class="line"><a id="l03641" name="l03641"></a><span class="lineno"> 3641</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="l03642" name="l03642"></a><span class="lineno"> 3642</span> </div>
<div class="line"><a id="l03643" name="l03643"></a><span class="lineno"> 3643</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_image_info() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l03644" name="l03644"></a><span class="lineno"> 3644</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="l03645" name="l03645"></a><span class="lineno"> 3645</span> }</div>
<div class="line"><a id="l03646" name="l03646"></a><span class="lineno"> 3646</span> </div>
<div class="line"><a id="l03647" name="l03647"></a><span class="lineno"> 3647</span> <span class="keyword">const</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
<div class="line"><a id="l03648" name="l03648"></a><span class="lineno"> 3648</span> </div>
<div class="line"><a id="l03649" name="l03649"></a><span class="lineno"> 3649</span> <span class="comment">// Not a libaaruformat context</span></div>
<div class="line"><a id="l03650" name="l03650"></a><span class="lineno"> 3650</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="l03651" name="l03651"></a><span class="lineno"> 3651</span> {</div>
<div class="line"><a id="l03652" name="l03652"></a><span class="lineno"> 3652</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="l03653" name="l03653"></a><span class="lineno"> 3653</span> </div>
<div class="line"><a id="l03654" name="l03654"></a><span class="lineno"> 3654</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_image_info() = AARUF_ERROR_NOT_AARUFORMAT&quot;</span>);</div>
<div class="line"><a id="l03655" name="l03655"></a><span class="lineno"> 3655</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="l03656" name="l03656"></a><span class="lineno"> 3656</span> }</div>
<div class="line"><a id="l03657" name="l03657"></a><span class="lineno"> 3657</span> </div>
<div class="line"><a id="l03658" name="l03658"></a><span class="lineno"> 3658</span> <span class="keywordflow">if</span>(image_info == NULL)</div>
<div class="line"><a id="l03659" name="l03659"></a><span class="lineno"> 3659</span> {</div>
<div class="line"><a id="l03660" name="l03660"></a><span class="lineno"> 3660</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">&quot;image_info parameter is NULL&quot;</span>);</div>
<div class="line"><a id="l03661" name="l03661"></a><span class="lineno"> 3661</span> </div>
<div class="line"><a id="l03662" name="l03662"></a><span class="lineno"> 3662</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_image_info() = AARUF_ERROR_INCORRECT_DATA_SIZE&quot;</span>);</div>
<div class="line"><a id="l03663" name="l03663"></a><span class="lineno"> 3663</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="l03664" name="l03664"></a><span class="lineno"> 3664</span> }</div>
<div class="line"><a id="l03665" name="l03665"></a><span class="lineno"> 3665</span> </div>
<div class="line"><a id="l03666" name="l03666"></a><span class="lineno"> 3666</span> <span class="comment">// Perform deep copy of the image_info structure</span></div>
<div class="line"><a id="l03667" name="l03667"></a><span class="lineno"> 3667</span> memcpy(image_info, &amp;ctx-&gt;<a class="code hl_variable" href="structaaruformat__context.html#ac970291b3449c04221827b9c2c18ac70">image_info</a>, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structImageInfo.html">ImageInfo</a>));</div>
<div class="line"><a id="l03668" name="l03668"></a><span class="lineno"> 3668</span> </div>
<div class="line"><a id="l03669" name="l03669"></a><span class="lineno"> 3669</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">&quot;Exiting aaruf_get_image_info() = AARUF_STATUS_OK&quot;</span>);</div>
<div class="line"><a id="l03670" name="l03670"></a><span class="lineno"> 3670</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="l03671" name="l03671"></a><span class="lineno"> 3671</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_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="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3a76691ea3f772bf28e7446d171e205db2"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a76691ea3f772bf28e7446d171e205db2">GeometryBlock</a></div><div class="ttdeci">@ GeometryBlock</div><div class="ttdoc">Block containing logical geometry.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00148">enums.h:148</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3a8ac77889f0c345ed861ed653a3063032"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3a8ac77889f0c345ed861ed653a3063032">AaruMetadataJsonBlock</a></div><div class="ttdeci">@ AaruMetadataJsonBlock</div><div class="ttdoc">Block containing JSON version of Aaru Metadata.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00159">enums.h:159</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3aa90947995922dcd8b27c998978aba359"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3aa90947995922dcd8b27c998978aba359">CicmBlock</a></div><div class="ttdeci">@ CicmBlock</div><div class="ttdoc">Block containing CICM XML metadata.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00151">enums.h:151</a></div></div>
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad5a8c9e1ce6a2acd795dc1e7561addf8">MetadataBlock</a></div><div class="ttdeci">@ MetadataBlock</div><div class="ttdoc">Block containing metadata.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00149">enums.h:149</a></div></div>
<div class="ttc" id="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_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_a67753dacbd0ffdd397e563a8a5ecd271"><div class="ttname"><a href="errors_8h.html#a67753dacbd0ffdd397e563a8a5ecd271">AARUF_ERROR_CANNOT_READ_BLOCK</a></div><div class="ttdeci">#define AARUF_ERROR_CANNOT_READ_BLOCK</div><div class="ttdoc">Generic block read failure (seek/read error).</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00046">errors.h:46</a></div></div>
<div class="ttc" id="aerrors_8h_html_a8fc3ecb14777e72bebad62084b6caf16"><div class="ttname"><a href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a></div><div class="ttdeci">#define AARUF_ERROR_INCORRECT_DATA_SIZE</div><div class="ttdoc">Data size does not match expected size.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00065">errors.h:65</a></div></div>
<div class="ttc" id="aerrors_8h_html_a99ff8f6884fd5e21840b2e35240bc265"><div class="ttname"><a href="errors_8h.html#a99ff8f6884fd5e21840b2e35240bc265">AARUF_ERROR_METADATA_NOT_PRESENT</a></div><div class="ttdeci">#define AARUF_ERROR_METADATA_NOT_PRESENT</div><div class="ttdoc">Requested metadata not present in image.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00069">errors.h:69</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_ae7eea5936a22100db46aac3e4312cdae"><div class="ttname"><a href="errors_8h.html#ae7eea5936a22100db46aac3e4312cdae">AARUF_ERROR_BUFFER_TOO_SMALL</a></div><div class="ttdeci">#define AARUF_ERROR_BUFFER_TOO_SMALL</div><div class="ttdoc">Caller-supplied buffer insufficient for data.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00049">errors.h:49</a></div></div>
<div class="ttc" id="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="ametadata_8c_html_a01cf0abe0b137236d4be0b91a29d4818"><div class="ttname"><a href="metadata_8c.html#a01cf0abe0b137236d4be0b91a29d4818">aaruf_get_aaru_json_metadata</a></div><div class="ttdeci">int32_t aaruf_get_aaru_json_metadata(const void *context, uint8_t *buffer, size_t *length)</div><div class="ttdoc">Retrieves the embedded Aaru metadata JSON from the image.</div><div class="ttdef"><b>Definition</b> <a href="#l02099">metadata.c:2099</a></div></div>
<div class="ttc" id="ametadata_8c_html_a0e5be9ff6d87218a8f5b451a27e1b39b"><div class="ttname"><a href="metadata_8c.html#a0e5be9ff6d87218a8f5b451a27e1b39b">aaruf_set_media_barcode</a></div><div class="ttdeci">int32_t aaruf_set_media_barcode(void *context, const uint8_t *data, const int32_t length)</div><div class="ttdoc">Sets the media barcode information for the image.</div><div class="ttdef"><b>Definition</b> <a href="#l01176">metadata.c:1176</a></div></div>
<div class="ttc" id="ametadata_8c_html_a0ed36b14e49f1e924906d9c4b26d6214"><div class="ttname"><a href="metadata_8c.html#a0ed36b14e49f1e924906d9c4b26d6214">aaruf_set_media_model</a></div><div class="ttdeci">int32_t aaruf_set_media_model(void *context, const uint8_t *data, const int32_t length)</div><div class="ttdoc">Sets the media model or product designation for the image.</div><div class="ttdef"><b>Definition</b> <a href="#l00939">metadata.c:939</a></div></div>
<div class="ttc" id="ametadata_8c_html_a10d528163caf65134a7cec4a0c0a33b8"><div class="ttname"><a href="metadata_8c.html#a10d528163caf65134a7cec4a0c0a33b8">aaruf_set_media_sequence</a></div><div class="ttdeci">int32_t aaruf_set_media_sequence(void *context, const int32_t sequence, const int32_t last_sequence)</div><div class="ttdoc">Sets the media sequence information for multi-volume media sets.</div><div class="ttdef"><b>Definition</b> <a href="#l00363">metadata.c:363</a></div></div>
<div class="ttc" id="ametadata_8c_html_a1892cc8395305d7e85d04544ded62131"><div class="ttname"><a href="metadata_8c.html#a1892cc8395305d7e85d04544ded62131">aaruf_get_drive_serial_number</a></div><div class="ttdeci">int32_t aaruf_get_drive_serial_number(const void *context, uint8_t *buffer, int32_t *length)</div><div class="ttdoc">Retrieves the imaging drive&#39;s serial number metadata.</div><div class="ttdef"><b>Definition</b> <a href="#l03108">metadata.c:3108</a></div></div>
<div class="ttc" id="ametadata_8c_html_a223856fa226b26c466997800183c97c4"><div class="ttname"><a href="metadata_8c.html#a223856fa226b26c466997800183c97c4">aaruf_set_drive_manufacturer</a></div><div class="ttdeci">int32_t aaruf_set_drive_manufacturer(void *context, const uint8_t *data, const int32_t length)</div><div class="ttdoc">Sets the drive manufacturer information for the image.</div><div class="ttdef"><b>Definition</b> <a href="#l01412">metadata.c:1412</a></div></div>
<div class="ttc" id="ametadata_8c_html_a29b6c38ce4b3420368ecb84007d8738d"><div class="ttname"><a href="metadata_8c.html#a29b6c38ce4b3420368ecb84007d8738d">aaruf_set_drive_model</a></div><div class="ttdeci">int32_t aaruf_set_drive_model(void *context, const uint8_t *data, const int32_t length)</div><div class="ttdoc">Sets the drive model information for the image.</div><div class="ttdef"><b>Definition</b> <a href="#l01534">metadata.c:1534</a></div></div>
<div class="ttc" id="ametadata_8c_html_a2f344544e412db0bfb46d3dfb509dd91"><div class="ttname"><a href="metadata_8c.html#a2f344544e412db0bfb46d3dfb509dd91">aaruf_set_media_title</a></div><div class="ttdeci">int32_t aaruf_set_media_title(void *context, const uint8_t *data, const int32_t length)</div><div class="ttdoc">Sets the media title or label for the image.</div><div class="ttdef"><b>Definition</b> <a href="#l00720">metadata.c:720</a></div></div>
<div class="ttc" id="ametadata_8c_html_a38d72be7e7854d6cb0bba89172e27b03"><div class="ttname"><a href="metadata_8c.html#a38d72be7e7854d6cb0bba89172e27b03">aaruf_get_creator</a></div><div class="ttdeci">int32_t aaruf_get_creator(const void *context, uint8_t *buffer, int32_t *length)</div><div class="ttdoc">Retrieves the recorded creator (operator) name from the MetadataBlock.</div><div class="ttdef"><b>Definition</b> <a href="#l02404">metadata.c:2404</a></div></div>
<div class="ttc" id="ametadata_8c_html_a3db92f6bebf60195d6ab327e17988cee"><div class="ttname"><a href="metadata_8c.html#a3db92f6bebf60195d6ab327e17988cee">aaruf_get_drive_firmware_revision</a></div><div class="ttdeci">int32_t aaruf_get_drive_firmware_revision(const void *context, uint8_t *buffer, int32_t *length)</div><div class="ttdoc">Retrieves the firmware revision metadata for the imaging drive.</div><div class="ttdef"><b>Definition</b> <a href="#l03178">metadata.c:3178</a></div></div>
<div class="ttc" id="ametadata_8c_html_a42f191c2ea4c70c9d7b373c19b59c812"><div class="ttname"><a href="metadata_8c.html#a42f191c2ea4c70c9d7b373c19b59c812">aaruf_get_cicm_metadata</a></div><div class="ttdeci">int32_t aaruf_get_cicm_metadata(const void *context, uint8_t *buffer, size_t *length)</div><div class="ttdoc">Retrieves the embedded CICM XML metadata sidecar from the image.</div><div class="ttdef"><b>Definition</b> <a href="#l01944">metadata.c:1944</a></div></div>
<div class="ttc" id="ametadata_8c_html_a4cb7b7200e36efb4983cf2c5c5543313"><div class="ttname"><a href="metadata_8c.html#a4cb7b7200e36efb4983cf2c5c5543313">aaruf_get_media_serial_number</a></div><div class="ttdeci">int32_t aaruf_get_media_serial_number(const void *context, uint8_t *buffer, int32_t *length)</div><div class="ttdoc">Retrieves the media serial number recorded in the image metadata.</div><div class="ttdef"><b>Definition</b> <a href="#l02756">metadata.c:2756</a></div></div>
<div class="ttc" id="ametadata_8c_html_a4cdfb46f5630fcf1fe6447b37ad18ae2"><div class="ttname"><a href="metadata_8c.html#a4cdfb46f5630fcf1fe6447b37ad18ae2">aaruf_get_media_part_number</a></div><div class="ttdeci">int32_t aaruf_get_media_part_number(const void *context, uint8_t *buffer, int32_t *length)</div><div class="ttdoc">Retrieves the media part number recorded in the MetadataBlock.</div><div class="ttdef"><b>Definition</b> <a href="#l02896">metadata.c:2896</a></div></div>
<div class="ttc" id="ametadata_8c_html_a509892f76c9a03a030693740d043adfc"><div class="ttname"><a href="metadata_8c.html#a509892f76c9a03a030693740d043adfc">aaruf_get_media_model</a></div><div class="ttdeci">int32_t aaruf_get_media_model(const void *context, uint8_t *buffer, int32_t *length)</div><div class="ttdoc">Retrieves the media model or product designation metadata.</div><div class="ttdef"><b>Definition</b> <a href="#l02686">metadata.c:2686</a></div></div>
<div class="ttc" id="ametadata_8c_html_a515c264f726f8b0a5104778b383ad1d4"><div class="ttname"><a href="metadata_8c.html#a515c264f726f8b0a5104778b383ad1d4">aaruf_get_media_manufacturer</a></div><div class="ttdeci">int32_t aaruf_get_media_manufacturer(const void *context, uint8_t *buffer, int32_t *length)</div><div class="ttdoc">Retrieves the recorded media manufacturer name.</div><div class="ttdef"><b>Definition</b> <a href="#l02616">metadata.c:2616</a></div></div>
<div class="ttc" id="ametadata_8c_html_a54d724659818ea4486f9981672f6d01e"><div class="ttname"><a href="metadata_8c.html#a54d724659818ea4486f9981672f6d01e">aaruf_get_drive_model</a></div><div class="ttdeci">int32_t aaruf_get_drive_model(const void *context, uint8_t *buffer, int32_t *length)</div><div class="ttdoc">Retrieves the device model information for the imaging drive.</div><div class="ttdef"><b>Definition</b> <a href="#l03038">metadata.c:3038</a></div></div>
<div class="ttc" id="ametadata_8c_html_a580c8bf133cf3481deca14779b8b5419"><div class="ttname"><a href="metadata_8c.html#a580c8bf133cf3481deca14779b8b5419">aaruf_get_media_barcode</a></div><div class="ttdeci">int32_t aaruf_get_media_barcode(const void *context, uint8_t *buffer, int32_t *length)</div><div class="ttdoc">Retrieves the barcode assigned to the physical media or its packaging.</div><div class="ttdef"><b>Definition</b> <a href="#l02825">metadata.c:2825</a></div></div>
<div class="ttc" id="ametadata_8c_html_a5d487a858c48838bcc9f3bba4b5944a1"><div class="ttname"><a href="metadata_8c.html#a5d487a858c48838bcc9f3bba4b5944a1">aaruf_get_drive_manufacturer</a></div><div class="ttdeci">int32_t aaruf_get_drive_manufacturer(const void *context, uint8_t *buffer, int32_t *length)</div><div class="ttdoc">Retrieves the drive manufacturer metadata captured during imaging.</div><div class="ttdef"><b>Definition</b> <a href="#l02968">metadata.c:2968</a></div></div>
<div class="ttc" id="ametadata_8c_html_a65c73217edb9661accbbe3de4f555b62"><div class="ttname"><a href="metadata_8c.html#a65c73217edb9661accbbe3de4f555b62">aaruf_get_image_info</a></div><div class="ttdeci">int32_t aaruf_get_image_info(const void *context, ImageInfo *image_info)</div><div class="ttdoc">Retrieves a deep copy of the ImageInfo structure from the AaruFormat image.</div><div class="ttdef"><b>Definition</b> <a href="#l03634">metadata.c:3634</a></div></div>
<div class="ttc" id="ametadata_8c_html_a7e63f10ff3ea353c8c3944cd836a85ee"><div class="ttname"><a href="metadata_8c.html#a7e63f10ff3ea353c8c3944cd836a85ee">aaruf_get_user_sectors</a></div><div class="ttdeci">int32_t aaruf_get_user_sectors(const void *context, uint64_t *sectors)</div><div class="ttdoc">Retrieves the total number of user-accessible sectors in the AaruFormat image.</div><div class="ttdef"><b>Definition</b> <a href="#l03292">metadata.c:3292</a></div></div>
<div class="ttc" id="ametadata_8c_html_a8090a039e00ee003569939332d21094e"><div class="ttname"><a href="metadata_8c.html#a8090a039e00ee003569939332d21094e">aaruf_set_aaru_json_metadata</a></div><div class="ttdeci">int32_t aaruf_set_aaru_json_metadata(void *context, uint8_t *data, size_t length)</div><div class="ttdoc">Sets the Aaru metadata JSON for the image during creation.</div><div class="ttdef"><b>Definition</b> <a href="#l02258">metadata.c:2258</a></div></div>
<div class="ttc" id="ametadata_8c_html_a8e00d26a8e751fbd412868ac4f92a3c0"><div class="ttname"><a href="metadata_8c.html#a8e00d26a8e751fbd412868ac4f92a3c0">aaruf_get_negative_sectors</a></div><div class="ttdeci">int32_t aaruf_get_negative_sectors(const void *context, uint16_t *sectors)</div><div class="ttdoc">Retrieves the number of negative (pre-gap) sectors in the AaruFormat image.</div><div class="ttdef"><b>Definition</b> <a href="#l03417">metadata.c:3417</a></div></div>
<div class="ttc" id="ametadata_8c_html_a9628bcfd2642649a6bcbf1f46d6b6705"><div class="ttname"><a href="metadata_8c.html#a9628bcfd2642649a6bcbf1f46d6b6705">aaruf_get_comments</a></div><div class="ttdeci">int32_t aaruf_get_comments(const void *context, uint8_t *buffer, int32_t *length)</div><div class="ttdoc">Retrieves the user comments or notes stored in the MetadataBlock.</div><div class="ttdef"><b>Definition</b> <a href="#l02476">metadata.c:2476</a></div></div>
<div class="ttc" id="ametadata_8c_html_aa683ff7387ba3f505b1756da1b408f7e"><div class="ttname"><a href="metadata_8c.html#aa683ff7387ba3f505b1756da1b408f7e">aaruf_get_media_sequence</a></div><div class="ttdeci">int32_t aaruf_get_media_sequence(const void *context, int32_t *sequence, int32_t *last_sequence)</div><div class="ttdoc">Retrieves the media sequence metadata for multi-volume image sets.</div><div class="ttdef"><b>Definition</b> <a href="#l02337">metadata.c:2337</a></div></div>
<div class="ttc" id="ametadata_8c_html_abbcf276c3518b3e666885ab250fd374e"><div class="ttname"><a href="metadata_8c.html#abbcf276c3518b3e666885ab250fd374e">aaruf_get_geometry</a></div><div class="ttdeci">int32_t aaruf_get_geometry(const void *context, uint32_t *cylinders, uint32_t *heads, uint32_t *sectors_per_track)</div><div class="ttdoc">Retrieves the logical CHS geometry from the AaruFormat image.</div><div class="ttdef"><b>Definition</b> <a href="#l00094">metadata.c:94</a></div></div>
<div class="ttc" id="ametadata_8c_html_ac7c87ae51a242428ceb6d2b0a75e0b70"><div class="ttname"><a href="metadata_8c.html#ac7c87ae51a242428ceb6d2b0a75e0b70">aaruf_set_media_part_number</a></div><div class="ttdeci">int32_t aaruf_set_media_part_number(void *context, const uint8_t *data, const int32_t length)</div><div class="ttdoc">Sets the media part number or model designation for the image.</div><div class="ttdef"><b>Definition</b> <a href="#l01297">metadata.c:1297</a></div></div>
<div class="ttc" id="ametadata_8c_html_ad06ae4d49d6de002ef565108c73451e1"><div class="ttname"><a href="metadata_8c.html#ad06ae4d49d6de002ef565108c73451e1">aaruf_set_media_serial_number</a></div><div class="ttdeci">int32_t aaruf_set_media_serial_number(void *context, const uint8_t *data, const int32_t length)</div><div class="ttdoc">Sets the media serial number for the image.</div><div class="ttdef"><b>Definition</b> <a href="#l01054">metadata.c:1054</a></div></div>
<div class="ttc" id="ametadata_8c_html_ad0b5b12288f159780d065b12ba12bdcc"><div class="ttname"><a href="metadata_8c.html#ad0b5b12288f159780d065b12ba12bdcc">aaruf_set_geometry</a></div><div class="ttdeci">int32_t aaruf_set_geometry(void *context, const uint32_t cylinders, const uint32_t heads, const uint32_t sectors_per_track)</div><div class="ttdoc">Sets the logical CHS geometry for the AaruFormat image.</div><div class="ttdef"><b>Definition</b> <a href="#l00229">metadata.c:229</a></div></div>
<div class="ttc" id="ametadata_8c_html_ad24b15e067720825c47610e9477bfc2a"><div class="ttname"><a href="metadata_8c.html#ad24b15e067720825c47610e9477bfc2a">aaruf_set_comments</a></div><div class="ttdeci">int32_t aaruf_set_comments(void *context, const uint8_t *data, const int32_t length)</div><div class="ttdoc">Sets user comments or notes for the image.</div><div class="ttdef"><b>Definition</b> <a href="#l00607">metadata.c:607</a></div></div>
<div class="ttc" id="ametadata_8c_html_adaa13a82dfc90987efd6c9a366904dc4"><div class="ttname"><a href="metadata_8c.html#adaa13a82dfc90987efd6c9a366904dc4">aaruf_set_drive_firmware_revision</a></div><div class="ttdeci">int32_t aaruf_set_drive_firmware_revision(void *context, const uint8_t *data, const int32_t length)</div><div class="ttdoc">Sets the drive firmware revision for the image.</div><div class="ttdef"><b>Definition</b> <a href="#l01793">metadata.c:1793</a></div></div>
<div class="ttc" id="ametadata_8c_html_add92b8c91ede6a62dfda5f8980c3ce6d"><div class="ttname"><a href="metadata_8c.html#add92b8c91ede6a62dfda5f8980c3ce6d">aaruf_set_media_manufacturer</a></div><div class="ttdeci">int32_t aaruf_set_media_manufacturer(void *context, const uint8_t *data, const int32_t length)</div><div class="ttdoc">Sets the media manufacturer information for the image.</div><div class="ttdef"><b>Definition</b> <a href="#l00832">metadata.c:832</a></div></div>
<div class="ttc" id="ametadata_8c_html_ae6b0a57476896bb90ee7bb8472e1078f"><div class="ttname"><a href="metadata_8c.html#ae6b0a57476896bb90ee7bb8472e1078f">aaruf_set_drive_serial_number</a></div><div class="ttdeci">int32_t aaruf_set_drive_serial_number(void *context, const uint8_t *data, const int32_t length)</div><div class="ttdoc">Sets the drive serial number for the image.</div><div class="ttdef"><b>Definition</b> <a href="#l01658">metadata.c:1658</a></div></div>
<div class="ttc" id="ametadata_8c_html_aeeae64b120a10bac5e3d757a07a9691a"><div class="ttname"><a href="metadata_8c.html#aeeae64b120a10bac5e3d757a07a9691a">aaruf_get_overflow_sectors</a></div><div class="ttdeci">int32_t aaruf_get_overflow_sectors(const void *context, uint16_t *sectors)</div><div class="ttdoc">Retrieves the number of overflow (post-gap) sectors in the AaruFormat image.</div><div class="ttdef"><b>Definition</b> <a href="#l03552">metadata.c:3552</a></div></div>
<div class="ttc" id="ametadata_8c_html_af1ca27c052c6cde38a8d6d71e10936db"><div class="ttname"><a href="metadata_8c.html#af1ca27c052c6cde38a8d6d71e10936db">aaruf_get_media_title</a></div><div class="ttdeci">int32_t aaruf_get_media_title(const void *context, uint8_t *buffer, int32_t *length)</div><div class="ttdoc">Retrieves the media title or label captured during image creation.</div><div class="ttdef"><b>Definition</b> <a href="#l02546">metadata.c:2546</a></div></div>
<div class="ttc" id="ametadata_8c_html_af28837461d12252d8258032e370585ae"><div class="ttname"><a href="metadata_8c.html#af28837461d12252d8258032e370585ae">aaruf_set_creator</a></div><div class="ttdeci">int32_t aaruf_set_creator(void *context, const uint8_t *data, const int32_t length)</div><div class="ttdoc">Sets the creator (person/operator) information for the image.</div><div class="ttdef"><b>Definition</b> <a href="#l00493">metadata.c:493</a></div></div>
<div class="ttc" id="astructAaruMetadataJsonBlockHeader_html_a5e3db5d08dc09206cad6ea1b88b2db7d"><div class="ttname"><a href="structAaruMetadataJsonBlockHeader.html#a5e3db5d08dc09206cad6ea1b88b2db7d">AaruMetadataJsonBlockHeader::identifier</a></div><div class="ttdeci">uint32_t identifier</div><div class="ttdoc">Block identifier, must be BlockType::AaruMetadataJsonBlock.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00121">metadata.h:121</a></div></div>
<div class="ttc" id="astructAaruMetadataJsonBlockHeader_html_aa9e35df2ccc7294a24187fff4bb559a9"><div class="ttname"><a href="structAaruMetadataJsonBlockHeader.html#aa9e35df2ccc7294a24187fff4bb559a9">AaruMetadataJsonBlockHeader::length</a></div><div class="ttdeci">uint32_t length</div><div class="ttdoc">Length in bytes of the Aaru metadata JSON payload that follows.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00122">metadata.h:122</a></div></div>
<div class="ttc" id="astructCicmMetadataBlock_html_a660c22d42c504d290f386f187707956f"><div class="ttname"><a href="structCicmMetadataBlock.html#a660c22d42c504d290f386f187707956f">CicmMetadataBlock::length</a></div><div class="ttdeci">uint32_t length</div><div class="ttdoc">Length in bytes of the CICM metadata payload that follows.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00110">metadata.h:110</a></div></div>
<div class="ttc" id="astructCicmMetadataBlock_html_aee270357b6dc394ed9ac5f22c9903c90"><div class="ttname"><a href="structCicmMetadataBlock.html#aee270357b6dc394ed9ac5f22c9903c90">CicmMetadataBlock::identifier</a></div><div class="ttdeci">uint32_t identifier</div><div class="ttdoc">Block identifier, must be BlockType::CicmBlock.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00109">metadata.h:109</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_a9571c1d556e33537935bab1edba31135"><div class="ttname"><a href="structDdtHeader2.html#a9571c1d556e33537935bab1edba31135">DdtHeader2::blocks</a></div><div class="ttdeci">uint64_t blocks</div><div class="ttdoc">Total internal span (negative + usable + overflow) in logical sectors.</div><div class="ttdef"><b>Definition</b> <a href="ddt_8h_source.html#l00150">ddt.h:150</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="astructGeometryBlockHeader_html_a233b19be8361b1c3c1963d8521924138"><div class="ttname"><a href="structGeometryBlockHeader.html#a233b19be8361b1c3c1963d8521924138">GeometryBlockHeader::identifier</a></div><div class="ttdeci">uint32_t identifier</div><div class="ttdoc">Block identifier, must be BlockType::GeometryBlock.</div><div class="ttdef"><b>Definition</b> <a href="data_8h_source.html#l00092">data.h:92</a></div></div>
<div class="ttc" id="astructGeometryBlockHeader_html_a38855dea9b1773ea7f6b837c973106d9"><div class="ttname"><a href="structGeometryBlockHeader.html#a38855dea9b1773ea7f6b837c973106d9">GeometryBlockHeader::cylinders</a></div><div class="ttdeci">uint32_t cylinders</div><div class="ttdoc">Number of cylinders.</div><div class="ttdef"><b>Definition</b> <a href="data_8h_source.html#l00093">data.h:93</a></div></div>
<div class="ttc" id="astructGeometryBlockHeader_html_a9ed0a8f6307eb38589ef4502cef533ee"><div class="ttname"><a href="structGeometryBlockHeader.html#a9ed0a8f6307eb38589ef4502cef533ee">GeometryBlockHeader::heads</a></div><div class="ttdeci">uint32_t heads</div><div class="ttdoc">Number of heads (tracks per cylinder).</div><div class="ttdef"><b>Definition</b> <a href="data_8h_source.html#l00094">data.h:94</a></div></div>
<div class="ttc" id="astructGeometryBlockHeader_html_aea5822d390ac6b2a3b8b2c6250046cd6"><div class="ttname"><a href="structGeometryBlockHeader.html#aea5822d390ac6b2a3b8b2c6250046cd6">GeometryBlockHeader::sectorsPerTrack</a></div><div class="ttdeci">uint32_t sectorsPerTrack</div><div class="ttdoc">Number of sectors per track.</div><div class="ttdef"><b>Definition</b> <a href="data_8h_source.html#l00095">data.h:95</a></div></div>
<div class="ttc" id="astructImageInfo_html"><div class="ttname"><a href="structImageInfo.html">ImageInfo</a></div><div class="ttdoc">High-level summary of an opened Aaru image containing metadata and media characteristics.</div><div class="ttdef"><b>Definition</b> <a href="aaru_8h_source.html#l00869">aaru.h:870</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_a0bbbf0b6d7b48ebdc07d4a5e1138044f"><div class="ttname"><a href="structMetadataBlockHeader.html#a0bbbf0b6d7b48ebdc07d4a5e1138044f">MetadataBlockHeader::commentsLength</a></div><div class="ttdeci">uint32_t commentsLength</div><div class="ttdoc">Length in bytes (including null) of comments string.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00078">metadata.h:78</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_a1359ce7deda764ea267459f3f5906473"><div class="ttname"><a href="structMetadataBlockHeader.html#a1359ce7deda764ea267459f3f5906473">MetadataBlockHeader::mediaSequence</a></div><div class="ttdeci">int32_t mediaSequence</div><div class="ttdoc">Sequence number within a multi-disc / multi-volume set (0-based or 1-based as producer defines).</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00072">metadata.h:72</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_a16f0be711a2a0ddb48a0f092716e93dc"><div class="ttname"><a href="structMetadataBlockHeader.html#a16f0be711a2a0ddb48a0f092716e93dc">MetadataBlockHeader::identifier</a></div><div class="ttdeci">uint32_t identifier</div><div class="ttdoc">Block identifier, must be BlockType::MetadataBlock.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00070">metadata.h:70</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_a3757158a1386964537beb387b5bc03d2"><div class="ttname"><a href="structMetadataBlockHeader.html#a3757158a1386964537beb387b5bc03d2">MetadataBlockHeader::driveModelLength</a></div><div class="ttdeci">uint32_t driveModelLength</div><div class="ttdoc">Length in bytes (including null) of drive model string.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00094">metadata.h:94</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_a380656568f47a838a8a3833844789064"><div class="ttname"><a href="structMetadataBlockHeader.html#a380656568f47a838a8a3833844789064">MetadataBlockHeader::driveManufacturerLength</a></div><div class="ttdeci">uint32_t driveManufacturerLength</div><div class="ttdoc">Length in bytes (including null) of drive manufacturer string.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00092">metadata.h:92</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_a68deb35b7b070dcc18c790289192741c"><div class="ttname"><a href="structMetadataBlockHeader.html#a68deb35b7b070dcc18c790289192741c">MetadataBlockHeader::mediaTitleLength</a></div><div class="ttdeci">uint32_t mediaTitleLength</div><div class="ttdoc">Length in bytes (including null) of media title string.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00080">metadata.h:80</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_a78213f42c28f31038e6a9f130c660ad8"><div class="ttname"><a href="structMetadataBlockHeader.html#a78213f42c28f31038e6a9f130c660ad8">MetadataBlockHeader::driveSerialNumberLength</a></div><div class="ttdeci">uint32_t driveSerialNumberLength</div><div class="ttdoc">Length in bytes (including null) of drive serial number string.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00096">metadata.h:96</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_a7f2956f787d72b6981a22c050c0889cf"><div class="ttname"><a href="structMetadataBlockHeader.html#a7f2956f787d72b6981a22c050c0889cf">MetadataBlockHeader::mediaManufacturerLength</a></div><div class="ttdeci">uint32_t mediaManufacturerLength</div><div class="ttdoc">Length in bytes (including null) of media manufacturer string.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00082">metadata.h:82</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_a9438f57b0304b42912b8c66e5a0f1051"><div class="ttname"><a href="structMetadataBlockHeader.html#a9438f57b0304b42912b8c66e5a0f1051">MetadataBlockHeader::mediaModelLength</a></div><div class="ttdeci">uint32_t mediaModelLength</div><div class="ttdoc">Length in bytes (including null) of media model string.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00084">metadata.h:84</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_aacd243f7f5a78c6087b797328197f522"><div class="ttname"><a href="structMetadataBlockHeader.html#aacd243f7f5a78c6087b797328197f522">MetadataBlockHeader::lastMediaSequence</a></div><div class="ttdeci">int32_t lastMediaSequence</div><div class="ttdoc">Total number of media in the set; 0 or 1 if single item.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00074">metadata.h:74</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_aeae9bce28abec33ffa90005f2a247e34"><div class="ttname"><a href="structMetadataBlockHeader.html#aeae9bce28abec33ffa90005f2a247e34">MetadataBlockHeader::mediaSerialNumberLength</a></div><div class="ttdeci">uint32_t mediaSerialNumberLength</div><div class="ttdoc">Length in bytes (including null) of media serial number string.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00086">metadata.h:86</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_aef055916275048b6496f1f74eef2f1ac"><div class="ttname"><a href="structMetadataBlockHeader.html#aef055916275048b6496f1f74eef2f1ac">MetadataBlockHeader::mediaPartNumberLength</a></div><div class="ttdeci">uint32_t mediaPartNumberLength</div><div class="ttdoc">Length in bytes (including null) of media part number string.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00090">metadata.h:90</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_aef456689422a0514489b1c900ee2c741"><div class="ttname"><a href="structMetadataBlockHeader.html#aef456689422a0514489b1c900ee2c741">MetadataBlockHeader::mediaBarcodeLength</a></div><div class="ttdeci">uint32_t mediaBarcodeLength</div><div class="ttdoc">Length in bytes (including null) of media barcode string.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00088">metadata.h:88</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_af620858c254ea17f2d75b065134239c8"><div class="ttname"><a href="structMetadataBlockHeader.html#af620858c254ea17f2d75b065134239c8">MetadataBlockHeader::creatorLength</a></div><div class="ttdeci">uint32_t creatorLength</div><div class="ttdoc">Length in bytes (including null) of creator string (0 if absent).</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00076">metadata.h:76</a></div></div>
<div class="ttc" id="astructMetadataBlockHeader_html_afbf024f5492e45a3643ea7a1652b6420"><div class="ttname"><a href="structMetadataBlockHeader.html#afbf024f5492e45a3643ea7a1652b6420">MetadataBlockHeader::driveFirmwareRevisionLength</a></div><div class="ttdeci">uint32_t driveFirmwareRevisionLength</div><div class="ttdoc">Length in bytes (including null) of drive firmware revision string.</div><div class="ttdef"><b>Definition</b> <a href="metadata_8h_source.html#l00098">metadata.h:98</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_a04aa232b37b939d9e815c4addc68a7a3"><div class="ttname"><a href="structaaruformat__context.html#a04aa232b37b939d9e815c4addc68a7a3">aaruformat_context::media_barcode</a></div><div class="ttdeci">uint8_t * media_barcode</div><div class="ttdoc">Barcode of the media represented by the image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00222">context.h:222</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_a0c15ef634690890bf80719046faa0230"><div class="ttname"><a href="structaaruformat__context.html#a0c15ef634690890bf80719046faa0230">aaruformat_context::creator</a></div><div class="ttdeci">uint8_t * creator</div><div class="ttdoc">Who (person) created the image?</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00216">context.h:216</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a154fda29a2c9292cfca51ca6b54eee4a"><div class="ttname"><a href="structaaruformat__context.html#a154fda29a2c9292cfca51ca6b54eee4a">aaruformat_context::cicm_block</a></div><div class="ttdeci">uint8_t * cicm_block</div><div class="ttdoc">CICM XML payload.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00214">context.h:214</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a29c17435980ac94547f471485a891f54"><div class="ttname"><a href="structaaruformat__context.html#a29c17435980ac94547f471485a891f54">aaruformat_context::cylinders</a></div><div class="ttdeci">uint32_t cylinders</div><div class="ttdoc">Cylinders of the media represented by the image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00234">context.h:234</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a329dda508cb897dc7871d2d1c0434792"><div class="ttname"><a href="structaaruformat__context.html#a329dda508cb897dc7871d2d1c0434792">aaruformat_context::drive_firmware_revision</a></div><div class="ttdeci">uint8_t * drive_firmware_revision</div><div class="ttdoc">Firmware revision of the drive used to read the media represented by the image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00228">context.h:228</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a33b54e4325c94ad69d97f9cf5bdae68f"><div class="ttname"><a href="structaaruformat__context.html#a33b54e4325c94ad69d97f9cf5bdae68f">aaruformat_context::media_serial_number</a></div><div class="ttdeci">uint8_t * media_serial_number</div><div class="ttdoc">Serial number of the media represented by the image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00221">context.h:221</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a3e2bbe8986b7cd7d36c13b48d6e7e3ce"><div class="ttname"><a href="structaaruformat__context.html#a3e2bbe8986b7cd7d36c13b48d6e7e3ce">aaruformat_context::metadata_block_header</a></div><div class="ttdeci">MetadataBlockHeader metadata_block_header</div><div class="ttdoc">Metadata block header.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00230">context.h:230</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a4ecbf4064d4ab0440e922e1c096b38dc"><div class="ttname"><a href="structaaruformat__context.html#a4ecbf4064d4ab0440e922e1c096b38dc">aaruformat_context::media_model</a></div><div class="ttdeci">uint8_t * media_model</div><div class="ttdoc">Model of the media represented by the image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00220">context.h:220</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a505f32de424a033246348d9fa35f9b19"><div class="ttname"><a href="structaaruformat__context.html#a505f32de424a033246348d9fa35f9b19">aaruformat_context::drive_serial_number</a></div><div class="ttdeci">uint8_t * drive_serial_number</div><div class="ttdoc">Serial number of the drive used to read the media represented by the image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00226">context.h:226</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a614d6f01d563ea57650ce0bbfecfa08d"><div class="ttname"><a href="structaaruformat__context.html#a614d6f01d563ea57650ce0bbfecfa08d">aaruformat_context::drive_manufacturer</a></div><div class="ttdeci">uint8_t * drive_manufacturer</div><div class="ttdoc">Manufacturer of the drive used to read the media represented by the image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00224">context.h:224</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_a73005ba88069ba590ffc9660dc2bc7a5"><div class="ttname"><a href="structaaruformat__context.html#a73005ba88069ba590ffc9660dc2bc7a5">aaruformat_context::cicm_block_header</a></div><div class="ttdeci">CicmMetadataBlock cicm_block_header</div><div class="ttdoc">CICM metadata header (if present).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00231">context.h:231</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a77d9c8c852de1d955bceb4cfc50557ce"><div class="ttname"><a href="structaaruformat__context.html#a77d9c8c852de1d955bceb4cfc50557ce">aaruformat_context::drive_model</a></div><div class="ttdeci">uint8_t * drive_model</div><div class="ttdoc">Model of the drive used to read the media represented by the image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00225">context.h:225</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_a9ac9d12e8fde7a69c01cdf2dc32f33bd"><div class="ttname"><a href="structaaruformat__context.html#a9ac9d12e8fde7a69c01cdf2dc32f33bd">aaruformat_context::geometry_block</a></div><div class="ttdeci">GeometryBlockHeader geometry_block</div><div class="ttdoc">Logical geometry block (if present).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00229">context.h:229</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_a9e7ebc6897142938452338bc5a882dd8"><div class="ttname"><a href="structaaruformat__context.html#a9e7ebc6897142938452338bc5a882dd8">aaruformat_context::json_block</a></div><div class="ttdeci">uint8_t * json_block</div><div class="ttdoc">JSON metadata block payload (UTF-8).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00215">context.h:215</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_aa3d0670124a4fbe88c485c2b67d1ddbc"><div class="ttname"><a href="structaaruformat__context.html#aa3d0670124a4fbe88c485c2b67d1ddbc">aaruformat_context::media_part_number</a></div><div class="ttdeci">uint8_t * media_part_number</div><div class="ttdoc">Part number of the media represented by the image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00223">context.h:223</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_aaa66c73269576f55c8946c741e02e34f"><div class="ttname"><a href="structaaruformat__context.html#aaa66c73269576f55c8946c741e02e34f">aaruformat_context::json_block_header</a></div><div class="ttdeci">AaruMetadataJsonBlockHeader json_block_header</div><div class="ttdoc">JSON metadata block header (if present).</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00233">context.h:233</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_aaeb71d74c7d9236d80186a25066326a1"><div class="ttname"><a href="structaaruformat__context.html#aaeb71d74c7d9236d80186a25066326a1">aaruformat_context::sectors_per_track</a></div><div class="ttdeci">uint32_t sectors_per_track</div><div class="ttdoc">Sectors per track of the media represented by the image (for variable image, the smallest)</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00236">context.h:236</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_ab08395cd8ed98def2b5886c35fbad605"><div class="ttname"><a href="structaaruformat__context.html#ab08395cd8ed98def2b5886c35fbad605">aaruformat_context::comments</a></div><div class="ttdeci">uint8_t * comments</div><div class="ttdoc">Image comments.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00218">context.h:218</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_ab213059edf055cf1c3e2021bc395c78e"><div class="ttname"><a href="structaaruformat__context.html#ab213059edf055cf1c3e2021bc395c78e">aaruformat_context::heads</a></div><div class="ttdeci">uint32_t heads</div><div class="ttdoc">Heads of the media represented by the image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00235">context.h:235</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_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_aeb5bda76e0ea176598a04be97b7d5683"><div class="ttname"><a href="structaaruformat__context.html#aeb5bda76e0ea176598a04be97b7d5683">aaruformat_context::media_title</a></div><div class="ttdeci">uint8_t * media_title</div><div class="ttdoc">Title of the media represented by the image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00217">context.h:217</a></div></div>
<div class="ttc" id="astructaaruformat__context_html_afd13345e6ab5072d97d9b3bbe238ecea"><div class="ttname"><a href="structaaruformat__context.html#afd13345e6ab5072d97d9b3bbe238ecea">aaruformat_context::media_manufacturer</a></div><div class="ttdeci">uint8_t * media_manufacturer</div><div class="ttdoc">Manufacturer of the media represented by the image.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00219">context.h:219</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="metadata_8c.html">metadata.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>