mirror of
https://github.com/aaru-dps/libaaruformat.git
synced 2025-12-16 19:24:40 +00:00
562 lines
109 KiB
HTML
562 lines
109 KiB
HTML
<!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/dump.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"> 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('dump_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">dump.c</div></div>
|
||
</div><!--header-->
|
||
<div class="contents">
|
||
<a href="dump_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 <http://www.gnu.org/licenses/>.</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 <stdint.h></span></div>
|
||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include <stdlib.h></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 "<a class="code" href="aaruformat_8h.html">aaruformat.h</a>"</span></div>
|
||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include "<a class="code" href="internal_8h.html">internal.h</a>"</span></div>
|
||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include "<a class="code" href="log_8h.html">log.h</a>"</span></div>
|
||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
|
||
<div class="foldopen" id="foldopen00026" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="dump_8c.html#ab98a236ef7ac4de15fb37a2e3c3ce633"> 26</a></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="dump_8c.html#ab98a236ef7ac4de15fb37a2e3c3ce633">free_dump_hardware_entries</a>(<a class="code hl_struct" href="structDumpHardwareEntriesWithData.html">DumpHardwareEntriesWithData</a> *entries, uint32_t count)</div>
|
||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span>{</div>
|
||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordflow">if</span>(entries == NULL) <span class="keywordflow">return</span>;</div>
|
||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
|
||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordflow">for</span>(uint32_t e = 0; e < count; e++)</div>
|
||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> {</div>
|
||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> free(entries[e].manufacturer);</div>
|
||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> free(entries[e].model);</div>
|
||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> free(entries[e].revision);</div>
|
||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> free(entries[e].firmware);</div>
|
||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> free(entries[e].serial);</div>
|
||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> free(entries[e].softwareName);</div>
|
||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> free(entries[e].softwareVersion);</div>
|
||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> free(entries[e].softwareOperatingSystem);</div>
|
||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> free(entries[e].extents);</div>
|
||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> }</div>
|
||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
|
||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> free(entries);</div>
|
||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>}</div>
|
||
</div>
|
||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span></div>
|
||
<div class="foldopen" id="foldopen00186" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="decls_8h.html#a36af83897e131ba792c51ae8caec9984"> 186</a></span><a class="code hl_define" href="decls_8h.html#a9001412c35f3c92d3a9320d27b0d97f9">AARU_EXPORT</a> int32_t <a class="code hl_define" href="decls_8h.html#a018e0da1c1f7e4f6187a982c0e40e056">AARU_CALL</a> <a class="code hl_function" href="dump_8c.html#a36af83897e131ba792c51ae8caec9984">aaruf_get_dumphw</a>(<span class="keywordtype">void</span> *context, uint8_t *buffer, <span class="keywordtype">size_t</span> *length)</div>
|
||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span>{</div>
|
||
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordtype">size_t</span> length_value = 0;</div>
|
||
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordflow">if</span>(length != NULL) length_value = *length;</div>
|
||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> </div>
|
||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Entering aaruf_get_dumphw(%p, %p, %zu)"</span>, context, buffer, length_value);</div>
|
||
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> </div>
|
||
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = NULL;</div>
|
||
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
|
||
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keywordflow">if</span>(context == NULL)</div>
|
||
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> {</div>
|
||
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Invalid context"</span>);</div>
|
||
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
|
||
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_get_dumphw() = AARUF_ERROR_NOT_AARUFORMAT"</span>);</div>
|
||
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</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="l00201" name="l00201"></a><span class="lineno"> 201</span> }</div>
|
||
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
|
||
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keywordflow">if</span>(length == NULL)</div>
|
||
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> {</div>
|
||
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Invalid length pointer"</span>);</div>
|
||
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> </div>
|
||
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_get_dumphw() = AARUF_ERROR_INCORRECT_DATA_SIZE"</span>);</div>
|
||
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</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="l00209" name="l00209"></a><span class="lineno"> 209</span> }</div>
|
||
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> </div>
|
||
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> ctx = context;</div>
|
||
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
|
||
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="comment">// Not a libaaruformat context</span></div>
|
||
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="keywordflow">if</span>(ctx-><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="l00215" name="l00215"></a><span class="lineno"> 215</span> {</div>
|
||
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Invalid context"</span>);</div>
|
||
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div>
|
||
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_get_dumphw() = AARUF_ERROR_NOT_AARUFORMAT"</span>);</div>
|
||
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</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="l00220" name="l00220"></a><span class="lineno"> 220</span> }</div>
|
||
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> </div>
|
||
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keywordflow">if</span>(ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a> == NULL || ctx-><a class="code hl_variable" href="structaaruformat__context.html#accbbc605e1a1607fdf9b6f54f7a9af2f">dump_hardware_header</a>.<a class="code hl_variable" href="structDumpHardwareHeader.html#aee1b5c61324635638fbfbb2518fb86d8">entries</a> == 0 ||</div>
|
||
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#accbbc605e1a1607fdf9b6f54f7a9af2f">dump_hardware_header</a>.<a class="code hl_variable" href="structDumpHardwareHeader.html#aa5764ab144eef9a32c08f4475254442d">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad33812deb344562478c4e0d208a114db">DumpHardwareBlock</a>)</div>
|
||
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> {</div>
|
||
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"No dump hardware information present"</span>);</div>
|
||
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> </div>
|
||
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_get_dumphw() = AARUF_ERROR_CANNOT_READ_BLOCK"</span>);</div>
|
||
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</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="l00229" name="l00229"></a><span class="lineno"> 229</span> }</div>
|
||
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> </div>
|
||
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordtype">size_t</span> required_length = <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareHeader.html">DumpHardwareHeader</a>) + (<span class="keywordtype">size_t</span>)ctx-><a class="code hl_variable" href="structaaruformat__context.html#accbbc605e1a1607fdf9b6f54f7a9af2f">dump_hardware_header</a>.<a class="code hl_variable" href="structDumpHardwareHeader.html#acc565625096da115c80e7e390e78a1fa">length</a>;</div>
|
||
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">if</span>(required_length < <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareHeader.html">DumpHardwareHeader</a>))</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_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Dump hardware payload length overflow"</span>);</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_get_dumphw() = AARUF_ERROR_INCORRECT_DATA_SIZE"</span>);</div>
|
||
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</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="l00238" name="l00238"></a><span class="lineno"> 238</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> <span class="keywordflow">if</span>(buffer == NULL || *length < required_length)</div>
|
||
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> {</div>
|
||
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Buffer too small for dump hardware block, required %zu bytes"</span>, required_length);</div>
|
||
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> *length = required_length;</div>
|
||
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> </div>
|
||
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_get_dumphw() = AARUF_ERROR_BUFFER_TOO_SMALL"</span>);</div>
|
||
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</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="l00247" name="l00247"></a><span class="lineno"> 247</span> }</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> *length = required_length;</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> <span class="comment">// Start to iterate and copy the data</span></div>
|
||
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keywordtype">size_t</span> offset = 0;</div>
|
||
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="keywordflow">for</span>(uint32_t i = 0; i < ctx-><a class="code hl_variable" href="structaaruformat__context.html#accbbc605e1a1607fdf9b6f54f7a9af2f">dump_hardware_header</a>.<a class="code hl_variable" href="structDumpHardwareHeader.html#aee1b5c61324635638fbfbb2518fb86d8">entries</a>; i++)</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="keywordtype">size_t</span> entry_size = <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareEntry.html">DumpHardwareEntry</a>);</div>
|
||
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> </div>
|
||
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDumpHardwareEntry.html">DumpHardwareEntry</a> *entry = &ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>;</div>
|
||
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> </div>
|
||
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> extent_bytes = (size_t)entry-><a class="code hl_variable" href="structDumpHardwareEntry.html#a558ff77451f13188e00f5b8da4c595ad">extents</a> * <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpExtent.html">DumpExtent</a>);</div>
|
||
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keywordflow">if</span>(entry-><a class="code hl_variable" href="structDumpHardwareEntry.html#a558ff77451f13188e00f5b8da4c595ad">extents</a> != 0 && extent_bytes / <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpExtent.html">DumpExtent</a>) != entry-><a class="code hl_variable" href="structDumpHardwareEntry.html#a558ff77451f13188e00f5b8da4c595ad">extents</a>)</div>
|
||
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> {</div>
|
||
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Dump hardware extent size overflow"</span>);</div>
|
||
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_get_dumphw() = AARUF_ERROR_INCORRECT_DATA_SIZE"</span>);</div>
|
||
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</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="l00265" name="l00265"></a><span class="lineno"> 265</span> }</div>
|
||
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> </div>
|
||
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> additive_lengths[] = {entry-><a class="code hl_variable" href="structDumpHardwareEntry.html#a38a2c1b15dc4cabc02b4124b3a52c8db">manufacturerLength</a>,</div>
|
||
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> entry-><a class="code hl_variable" href="structDumpHardwareEntry.html#a81f6da3ced18e060c27a3bc3ac4387c3">modelLength</a>,</div>
|
||
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> entry-><a class="code hl_variable" href="structDumpHardwareEntry.html#aca3e85fe2b6b8dd49afde691e5cf1ee8">revisionLength</a>,</div>
|
||
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> entry-><a class="code hl_variable" href="structDumpHardwareEntry.html#a52948ae4f0d07e4d861e79def4a0deec">firmwareLength</a>,</div>
|
||
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> entry-><a class="code hl_variable" href="structDumpHardwareEntry.html#ab363d118785e94df2acc0c8dc1a9d1b5">serialLength</a>,</div>
|
||
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> entry-><a class="code hl_variable" href="structDumpHardwareEntry.html#a20025e2e89599dd60a83ca623fc9a200">softwareNameLength</a>,</div>
|
||
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> entry-><a class="code hl_variable" href="structDumpHardwareEntry.html#a4b4d1afcec5c3a0ec0e5f61fc481171d">softwareVersionLength</a>,</div>
|
||
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> entry-><a class="code hl_variable" href="structDumpHardwareEntry.html#adea9ba6d578c27ee86524e7ff91dcbdd">softwareOperatingSystemLength</a>,</div>
|
||
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> extent_bytes};</div>
|
||
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> </div>
|
||
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> j = 0; j < <span class="keyword">sizeof</span>(additive_lengths) / <span class="keyword">sizeof</span>(additive_lengths[0]); j++)</div>
|
||
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> {</div>
|
||
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="keywordflow">if</span>(additive_lengths[j] > SIZE_MAX - entry_size)</div>
|
||
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> {</div>
|
||
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Dump hardware entry size overflow"</span>);</div>
|
||
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_get_dumphw() = AARUF_ERROR_INCORRECT_DATA_SIZE"</span>);</div>
|
||
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</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="l00284" name="l00284"></a><span class="lineno"> 284</span> }</div>
|
||
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> entry_size += additive_lengths[j];</div>
|
||
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> }</div>
|
||
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> </div>
|
||
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">if</span>(offset + entry_size > *length)</div>
|
||
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> {</div>
|
||
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Calculated size exceeds provided buffer length"</span>);</div>
|
||
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_get_dumphw() = AARUF_ERROR_BUFFER_TOO_SMALL"</span>);</div>
|
||
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</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="l00293" name="l00293"></a><span class="lineno"> 293</span> }</div>
|
||
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> </div>
|
||
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> memcpy(buffer + offset, &ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareEntry.html">DumpHardwareEntry</a>));</div>
|
||
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> offset += <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareEntry.html">DumpHardwareEntry</a>);</div>
|
||
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keywordflow">if</span>(ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a38a2c1b15dc4cabc02b4124b3a52c8db">manufacturerLength</a> > 0 &&</div>
|
||
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a4dbc57a5f46892c5e0cde65c55c11e33">manufacturer</a> != NULL)</div>
|
||
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> {</div>
|
||
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> memcpy(buffer + offset, ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a4dbc57a5f46892c5e0cde65c55c11e33">manufacturer</a>,</div>
|
||
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a38a2c1b15dc4cabc02b4124b3a52c8db">manufacturerLength</a>);</div>
|
||
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> offset += ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a38a2c1b15dc4cabc02b4124b3a52c8db">manufacturerLength</a>;</div>
|
||
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> }</div>
|
||
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <span class="keywordflow">if</span>(ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a81f6da3ced18e060c27a3bc3ac4387c3">modelLength</a> > 0 &&</div>
|
||
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a160651cc2a5247b99c9ebe38511cc475">model</a> != NULL)</div>
|
||
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> {</div>
|
||
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> memcpy(buffer + offset, ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a160651cc2a5247b99c9ebe38511cc475">model</a>,</div>
|
||
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a81f6da3ced18e060c27a3bc3ac4387c3">modelLength</a>);</div>
|
||
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> offset += ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a81f6da3ced18e060c27a3bc3ac4387c3">modelLength</a>;</div>
|
||
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> }</div>
|
||
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> <span class="keywordflow">if</span>(ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#aca3e85fe2b6b8dd49afde691e5cf1ee8">revisionLength</a> > 0 &&</div>
|
||
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a05cc1da940a0009621038a0327719a91">revision</a> != NULL)</div>
|
||
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> {</div>
|
||
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> memcpy(buffer + offset, ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a05cc1da940a0009621038a0327719a91">revision</a>,</div>
|
||
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#aca3e85fe2b6b8dd49afde691e5cf1ee8">revisionLength</a>);</div>
|
||
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> offset += ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#aca3e85fe2b6b8dd49afde691e5cf1ee8">revisionLength</a>;</div>
|
||
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> }</div>
|
||
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <span class="keywordflow">if</span>(ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a52948ae4f0d07e4d861e79def4a0deec">firmwareLength</a> > 0 &&</div>
|
||
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a04e71aaa515a5a88171f5730e371abbf">firmware</a> != NULL)</div>
|
||
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> {</div>
|
||
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> memcpy(buffer + offset, ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a04e71aaa515a5a88171f5730e371abbf">firmware</a>,</div>
|
||
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a52948ae4f0d07e4d861e79def4a0deec">firmwareLength</a>);</div>
|
||
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> offset += ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a52948ae4f0d07e4d861e79def4a0deec">firmwareLength</a>;</div>
|
||
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> }</div>
|
||
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <span class="keywordflow">if</span>(ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#ab363d118785e94df2acc0c8dc1a9d1b5">serialLength</a> > 0 &&</div>
|
||
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a6d328a63bbde6fc49d5a507a22801107">serial</a> != NULL)</div>
|
||
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> {</div>
|
||
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> memcpy(buffer + offset, ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a6d328a63bbde6fc49d5a507a22801107">serial</a>,</div>
|
||
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#ab363d118785e94df2acc0c8dc1a9d1b5">serialLength</a>);</div>
|
||
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> offset += ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#ab363d118785e94df2acc0c8dc1a9d1b5">serialLength</a>;</div>
|
||
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> }</div>
|
||
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> <span class="keywordflow">if</span>(ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a20025e2e89599dd60a83ca623fc9a200">softwareNameLength</a> > 0 &&</div>
|
||
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a31b56a2fa1f210aaa023eb031572e70b">softwareName</a> != NULL)</div>
|
||
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> {</div>
|
||
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> memcpy(buffer + offset, ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a31b56a2fa1f210aaa023eb031572e70b">softwareName</a>,</div>
|
||
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a20025e2e89599dd60a83ca623fc9a200">softwareNameLength</a>);</div>
|
||
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> offset += ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a20025e2e89599dd60a83ca623fc9a200">softwareNameLength</a>;</div>
|
||
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> }</div>
|
||
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> <span class="keywordflow">if</span>(ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a4b4d1afcec5c3a0ec0e5f61fc481171d">softwareVersionLength</a> > 0 &&</div>
|
||
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a5766ab6474f43fac96fb0342136766cc">softwareVersion</a> != NULL)</div>
|
||
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> {</div>
|
||
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> memcpy(buffer + offset, ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a5766ab6474f43fac96fb0342136766cc">softwareVersion</a>,</div>
|
||
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a4b4d1afcec5c3a0ec0e5f61fc481171d">softwareVersionLength</a>);</div>
|
||
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> offset += ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a4b4d1afcec5c3a0ec0e5f61fc481171d">softwareVersionLength</a>;</div>
|
||
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> }</div>
|
||
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> <span class="keywordflow">if</span>(ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#adea9ba6d578c27ee86524e7ff91dcbdd">softwareOperatingSystemLength</a> > 0 &&</div>
|
||
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#acfd385853ac00bbdbd5ef603aebfb44d">softwareOperatingSystem</a> != NULL)</div>
|
||
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> {</div>
|
||
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> memcpy(buffer + offset, ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#acfd385853ac00bbdbd5ef603aebfb44d">softwareOperatingSystem</a>,</div>
|
||
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#adea9ba6d578c27ee86524e7ff91dcbdd">softwareOperatingSystemLength</a>);</div>
|
||
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> offset += ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#adea9ba6d578c27ee86524e7ff91dcbdd">softwareOperatingSystemLength</a>;</div>
|
||
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> }</div>
|
||
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> <span class="keywordflow">if</span>(entry-><a class="code hl_variable" href="structDumpHardwareEntry.html#a558ff77451f13188e00f5b8da4c595ad">extents</a> > 0 && ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a34453672c41a27c7d1b9a5df28f7df1a">extents</a> != NULL)</div>
|
||
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> {</div>
|
||
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> memcpy(buffer + offset, ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>[i].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a34453672c41a27c7d1b9a5df28f7df1a">extents</a>, extent_bytes);</div>
|
||
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> offset += extent_bytes;</div>
|
||
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> }</div>
|
||
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> }</div>
|
||
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> </div>
|
||
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> <span class="comment">// Calculate CRC64</span></div>
|
||
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#accbbc605e1a1607fdf9b6f54f7a9af2f">dump_hardware_header</a>.<a class="code hl_variable" href="structDumpHardwareHeader.html#a0dbdec7b89e7081706cd07dfa00403a7">crc64</a> =</div>
|
||
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> <a class="code hl_function" href="decls_8h.html#a0fee4834bf0747bcd933c4e754aa4692">aaruf_crc64_data</a>(buffer + <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareHeader.html">DumpHardwareHeader</a>), ctx-><a class="code hl_variable" href="structaaruformat__context.html#accbbc605e1a1607fdf9b6f54f7a9af2f">dump_hardware_header</a>.<a class="code hl_variable" href="structDumpHardwareHeader.html#acc565625096da115c80e7e390e78a1fa">length</a>);</div>
|
||
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> </div>
|
||
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="comment">// Copy header</span></div>
|
||
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> memcpy(buffer, &ctx-><a class="code hl_variable" href="structaaruformat__context.html#accbbc605e1a1607fdf9b6f54f7a9af2f">dump_hardware_header</a>, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareHeader.html">DumpHardwareHeader</a>));</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_get_dumphw() = AARUF_STATUS_OK"</span>);</div>
|
||
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</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="l00369" name="l00369"></a><span class="lineno"> 369</span>}</div>
|
||
</div>
|
||
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span></div>
|
||
<div class="foldopen" id="foldopen00531" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"><a class="line" href="decls_8h.html#ad98012dc12a51d9eadbd79a25aab8299"> 531</a></span><a class="code hl_define" href="decls_8h.html#a9001412c35f3c92d3a9320d27b0d97f9">AARU_EXPORT</a> int32_t <a class="code hl_define" href="decls_8h.html#a018e0da1c1f7e4f6187a982c0e40e056">AARU_CALL</a> <a class="code hl_function" href="dump_8c.html#ad98012dc12a51d9eadbd79a25aab8299">aaruf_set_dumphw</a>(<span class="keywordtype">void</span> *context, uint8_t *data, <span class="keywordtype">size_t</span> length)</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#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Entering aaruf_set_dumphw(%p, %p, %zu)"</span>, context, data, length);</div>
|
||
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> </div>
|
||
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> <span class="comment">// Check context is correct AaruFormat context</span></div>
|
||
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> <span class="keywordflow">if</span>(context == NULL)</div>
|
||
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> {</div>
|
||
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Invalid context"</span>);</div>
|
||
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> </div>
|
||
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_set_dumphw() = AARUF_ERROR_NOT_AARUFORMAT"</span>);</div>
|
||
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</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="l00542" name="l00542"></a><span class="lineno"> 542</span> }</div>
|
||
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> </div>
|
||
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> <a class="code hl_struct" href="structaaruformat__context.html">aaruformat_context</a> *ctx = context;</div>
|
||
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> </div>
|
||
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="comment">// Not a libaaruformat context</span></div>
|
||
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> <span class="keywordflow">if</span>(ctx-><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="l00548" name="l00548"></a><span class="lineno"> 548</span> {</div>
|
||
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Invalid context"</span>);</div>
|
||
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> </div>
|
||
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_set_dumphw() = AARUF_ERROR_NOT_AARUFORMAT"</span>);</div>
|
||
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</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="l00553" name="l00553"></a><span class="lineno"> 553</span> }</div>
|
||
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> </div>
|
||
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> <span class="comment">// Check we are writing</span></div>
|
||
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> <span class="keywordflow">if</span>(!ctx-><a class="code hl_variable" href="structaaruformat__context.html#a6f61f9ea20f4e3b791a0d6388dd43651">is_writing</a>)</div>
|
||
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> {</div>
|
||
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Trying to write a read-only image"</span>);</div>
|
||
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> </div>
|
||
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_set_dumphw() = AARUF_READ_ONLY"</span>);</div>
|
||
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a1df49eaa19eaa14891b6aaab966a9bc6">AARUF_READ_ONLY</a>;</div>
|
||
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> }</div>
|
||
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> </div>
|
||
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> <span class="keywordflow">if</span>(data == NULL || length == 0)</div>
|
||
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> {</div>
|
||
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Invalid data or length"</span>);</div>
|
||
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> </div>
|
||
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_set_dumphw() = AARUF_ERROR_INCORRECT_DATA_SIZE"</span>);</div>
|
||
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</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="l00570" name="l00570"></a><span class="lineno"> 570</span> }</div>
|
||
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> </div>
|
||
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> <span class="keywordflow">if</span>(length < <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareHeader.html">DumpHardwareHeader</a>))</div>
|
||
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> {</div>
|
||
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Dump hardware block shorter than header"</span>);</div>
|
||
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> </div>
|
||
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_set_dumphw() = AARUF_ERROR_INCORRECT_DATA_SIZE"</span>);</div>
|
||
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</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="l00578" name="l00578"></a><span class="lineno"> 578</span> }</div>
|
||
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> </div>
|
||
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> <a class="code hl_struct" href="structDumpHardwareHeader.html">DumpHardwareHeader</a> header;</div>
|
||
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> memcpy(&header, data, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareHeader.html">DumpHardwareHeader</a>));</div>
|
||
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> <span class="keywordflow">if</span>(header.<a class="code hl_variable" href="structDumpHardwareHeader.html#aa5764ab144eef9a32c08f4475254442d">identifier</a> != <a class="code hl_enumvalue" href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad33812deb344562478c4e0d208a114db">DumpHardwareBlock</a>)</div>
|
||
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> {</div>
|
||
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Invalid dump hardware block identifier"</span>);</div>
|
||
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> </div>
|
||
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_set_dumphw() = AARUF_ERROR_CANNOT_READ_BLOCK"</span>);</div>
|
||
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</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="l00588" name="l00588"></a><span class="lineno"> 588</span> }</div>
|
||
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> </div>
|
||
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> <span class="keywordflow">if</span>(length != <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareHeader.html">DumpHardwareHeader</a>) + header.<a class="code hl_variable" href="structDumpHardwareHeader.html#acc565625096da115c80e7e390e78a1fa">length</a>)</div>
|
||
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> {</div>
|
||
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Invalid dump hardware block length"</span>);</div>
|
||
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> </div>
|
||
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_set_dumphw() = AARUF_ERROR_INCORRECT_DATA_SIZE"</span>);</div>
|
||
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a8fc3ecb14777e72bebad62084b6caf16">AARUF_ERROR_INCORRECT_DATA_SIZE</a>;</div>
|
||
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> }</div>
|
||
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> </div>
|
||
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> uint64_t crc64 = <a class="code hl_function" href="decls_8h.html#a0fee4834bf0747bcd933c4e754aa4692">aaruf_crc64_data</a>(data + <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareHeader.html">DumpHardwareHeader</a>), header.<a class="code hl_variable" href="structDumpHardwareHeader.html#acc565625096da115c80e7e390e78a1fa">length</a>);</div>
|
||
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> <span class="keywordflow">if</span>(header.<a class="code hl_variable" href="structDumpHardwareHeader.html#a0dbdec7b89e7081706cd07dfa00403a7">crc64</a> != crc64)</div>
|
||
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> {</div>
|
||
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Invalid dump hardware block CRC64"</span>);</div>
|
||
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> </div>
|
||
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_set_dumphw() = AARUF_ERROR_INVALID_BLOCK_CRC"</span>);</div>
|
||
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#aa8dcb9cad962fc5f5f84d5e1ec41fae7">AARUF_ERROR_INVALID_BLOCK_CRC</a>;</div>
|
||
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> }</div>
|
||
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> </div>
|
||
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <a class="code hl_struct" href="structDumpHardwareEntriesWithData.html">DumpHardwareEntriesWithData</a> *copy = NULL;</div>
|
||
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <span class="keywordflow">if</span>(header.<a class="code hl_variable" href="structDumpHardwareHeader.html#aee1b5c61324635638fbfbb2518fb86d8">entries</a> > 0)</div>
|
||
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> {</div>
|
||
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> copy = calloc(header.<a class="code hl_variable" href="structDumpHardwareHeader.html#aee1b5c61324635638fbfbb2518fb86d8">entries</a>, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareEntriesWithData.html">DumpHardwareEntriesWithData</a>));</div>
|
||
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> <span class="keywordflow">if</span>(copy == NULL)</div>
|
||
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> {</div>
|
||
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Could not allocate memory for dump hardware block entries"</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#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_set_dumphw() = AARUF_ERROR_NOT_ENOUGH_MEMORY"</span>);</div>
|
||
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</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="l00616" name="l00616"></a><span class="lineno"> 616</span> }</div>
|
||
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> }</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> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Processing %u dump hardware block entries"</span>, header.<a class="code hl_variable" href="structDumpHardwareHeader.html#aee1b5c61324635638fbfbb2518fb86d8">entries</a>);</div>
|
||
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> </div>
|
||
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> <span class="keywordtype">size_t</span> pos = <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareHeader.html">DumpHardwareHeader</a>);</div>
|
||
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> </div>
|
||
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span><span class="preprocessor">#define COPY_STRING_FIELD(field) \</span></div>
|
||
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span><span class="preprocessor"> do { \</span></div>
|
||
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span><span class="preprocessor"> const size_t field##_length = copy[e].entry.field##Length; \</span></div>
|
||
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span><span class="preprocessor"> if(field##_length > 0) \</span></div>
|
||
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span><span class="preprocessor"> { \</span></div>
|
||
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span><span class="preprocessor"> if(field##_length > length - pos) goto invalid_data; \</span></div>
|
||
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span><span class="preprocessor"> copy[e].field = (uint8_t *)calloc(1, field##_length + 1); \</span></div>
|
||
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span><span class="preprocessor"> if(copy[e].field == NULL) goto free_copy_and_error; \</span></div>
|
||
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span><span class="preprocessor"> memcpy(copy[e].field, data + pos, field##_length); \</span></div>
|
||
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span><span class="preprocessor"> pos += field##_length; \</span></div>
|
||
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span><span class="preprocessor"> } \</span></div>
|
||
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span><span class="preprocessor"> } while(0)</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> <span class="keywordflow">for</span>(uint32_t e = 0; e < header.<a class="code hl_variable" href="structDumpHardwareHeader.html#aee1b5c61324635638fbfbb2518fb86d8">entries</a>; e++)</div>
|
||
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> {</div>
|
||
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> <span class="keywordflow">if</span>(length - pos < <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareEntry.html">DumpHardwareEntry</a>)) <span class="keywordflow">goto</span> invalid_data;</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> memcpy(&copy[e].entry, data + pos, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareEntry.html">DumpHardwareEntry</a>));</div>
|
||
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> pos += <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpHardwareEntry.html">DumpHardwareEntry</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> <a class="code hl_define" href="dump_8c.html#a6b41f4a00a255e6704583614ef33571f">COPY_STRING_FIELD</a>(manufacturer);</div>
|
||
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> <a class="code hl_define" href="dump_8c.html#a6b41f4a00a255e6704583614ef33571f">COPY_STRING_FIELD</a>(model);</div>
|
||
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> <a class="code hl_define" href="dump_8c.html#a6b41f4a00a255e6704583614ef33571f">COPY_STRING_FIELD</a>(revision);</div>
|
||
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> <a class="code hl_define" href="dump_8c.html#a6b41f4a00a255e6704583614ef33571f">COPY_STRING_FIELD</a>(firmware);</div>
|
||
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> <a class="code hl_define" href="dump_8c.html#a6b41f4a00a255e6704583614ef33571f">COPY_STRING_FIELD</a>(serial);</div>
|
||
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <a class="code hl_define" href="dump_8c.html#a6b41f4a00a255e6704583614ef33571f">COPY_STRING_FIELD</a>(softwareName);</div>
|
||
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> <a class="code hl_define" href="dump_8c.html#a6b41f4a00a255e6704583614ef33571f">COPY_STRING_FIELD</a>(softwareVersion);</div>
|
||
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> <a class="code hl_define" href="dump_8c.html#a6b41f4a00a255e6704583614ef33571f">COPY_STRING_FIELD</a>(softwareOperatingSystem);</div>
|
||
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> </div>
|
||
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> <span class="keyword">const</span> uint32_t extent_count = copy[e].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">entry</a>.<a class="code hl_variable" href="structDumpHardwareEntry.html#a558ff77451f13188e00f5b8da4c595ad">extents</a>;</div>
|
||
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> <span class="keywordflow">if</span>(extent_count > 0)</div>
|
||
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> {</div>
|
||
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> extent_bytes = (size_t)extent_count * <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpExtent.html">DumpExtent</a>);</div>
|
||
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> <span class="keywordflow">if</span>(extent_bytes / <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpExtent.html">DumpExtent</a>) != extent_count || extent_bytes > length - pos) <span class="keywordflow">goto</span> invalid_data;</div>
|
||
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> </div>
|
||
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> copy[e].<a class="code hl_variable" href="structDumpHardwareEntriesWithData.html#a34453672c41a27c7d1b9a5df28f7df1a">extents</a> = (<a class="code hl_struct" href="structDumpExtent.html">DumpExtent</a> *)malloc(extent_bytes);</div>
|
||
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> <span class="keywordflow">if</span>(copy[e].extents == NULL) <span class="keywordflow">goto</span> free_copy_and_error;</div>
|
||
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> </div>
|
||
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> memcpy(copy[e].extents, data + pos, extent_bytes);</div>
|
||
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> pos += extent_bytes;</div>
|
||
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> </div>
|
||
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> qsort(copy[e].extents, extent_count, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structDumpExtent.html">DumpExtent</a>), <a class="code hl_function" href="internal_8h.html#ac93ebc6d918745be56b680e19bf7e8d5">compare_extents</a>);</div>
|
||
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Sorted %u extents for entry %u"</span>, extent_count, e);</div>
|
||
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> }</div>
|
||
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> }</div>
|
||
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> </div>
|
||
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span><span class="preprocessor">#undef COPY_STRING_FIELD</span></div>
|
||
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> </div>
|
||
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <span class="keywordflow">if</span>(pos != length)</div>
|
||
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> {</div>
|
||
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> <a class="code hl_define" href="log_8h.html#a053d6037d543b84ce59308ce71d15cd1">FATAL</a>(<span class="stringliteral">"Dump hardware block contains trailing data"</span>);</div>
|
||
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="keywordflow">goto</span> invalid_data;</div>
|
||
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> }</div>
|
||
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> </div>
|
||
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> <a class="code hl_function" href="dump_8c.html#ab98a236ef7ac4de15fb37a2e3c3ce633">free_dump_hardware_entries</a>(ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a>, ctx-><a class="code hl_variable" href="structaaruformat__context.html#accbbc605e1a1607fdf9b6f54f7a9af2f">dump_hardware_header</a>.<a class="code hl_variable" href="structDumpHardwareHeader.html#aee1b5c61324635638fbfbb2518fb86d8">entries</a>);</div>
|
||
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">dump_hardware_entries_with_data</a> = copy;</div>
|
||
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> ctx-><a class="code hl_variable" href="structaaruformat__context.html#accbbc605e1a1607fdf9b6f54f7a9af2f">dump_hardware_header</a> = header;</div>
|
||
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> </div>
|
||
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_set_dumphw() = AARUF_STATUS_OK"</span>);</div>
|
||
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</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="l00683" name="l00683"></a><span class="lineno"> 683</span> </div>
|
||
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span>invalid_data:</div>
|
||
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Dump hardware block truncated or malformed"</span>);</div>
|
||
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> <a class="code hl_function" href="dump_8c.html#ab98a236ef7ac4de15fb37a2e3c3ce633">free_dump_hardware_entries</a>(copy, header.<a class="code hl_variable" href="structDumpHardwareHeader.html#aee1b5c61324635638fbfbb2518fb86d8">entries</a>);</div>
|
||
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_set_dumphw() = AARUF_ERROR_INCORRECT_DATA_SIZE"</span>);</div>
|
||
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</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="l00689" name="l00689"></a><span class="lineno"> 689</span> </div>
|
||
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span>free_copy_and_error:</div>
|
||
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> <a class="code hl_function" href="dump_8c.html#ab98a236ef7ac4de15fb37a2e3c3ce633">free_dump_hardware_entries</a>(copy, header.<a class="code hl_variable" href="structDumpHardwareHeader.html#aee1b5c61324635638fbfbb2518fb86d8">entries</a>);</div>
|
||
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> <a class="code hl_define" href="log_8h.html#a21cc0459b78d5f2d7bd737e5aae1278a">TRACE</a>(<span class="stringliteral">"Exiting aaruf_set_dumphw() = AARUF_ERROR_NOT_ENOUGH_MEMORY"</span>);</div>
|
||
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> <span class="keywordflow">return</span> <a class="code hl_define" href="errors_8h.html#a35a771e3648bf971a004d4b2be9b5ec4">AARUF_ERROR_NOT_ENOUGH_MEMORY</a>;</div>
|
||
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</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 "AARUFRMT").</div><div class="ttdef"><b>Definition</b> <a href="consts_8h_source.html#l00064">consts.h:64</a></div></div>
|
||
<div class="ttc" id="adecls_8h_html_a018e0da1c1f7e4f6187a982c0e40e056"><div class="ttname"><a href="decls_8h.html#a018e0da1c1f7e4f6187a982c0e40e056">AARU_CALL</a></div><div class="ttdeci">#define AARU_CALL</div><div class="ttdef"><b>Definition</b> <a href="decls_8h_source.html#l00045">decls.h:45</a></div></div>
|
||
<div class="ttc" id="adecls_8h_html_a0fee4834bf0747bcd933c4e754aa4692"><div class="ttname"><a href="decls_8h.html#a0fee4834bf0747bcd933c4e754aa4692">aaruf_crc64_data</a></div><div class="ttdeci">uint64_t aaruf_crc64_data(const uint8_t *data, uint32_t len)</div><div class="ttdef"><b>Definition</b> <a href="crc64_8c_source.html#l00160">crc64.c:160</a></div></div>
|
||
<div class="ttc" id="adecls_8h_html_a9001412c35f3c92d3a9320d27b0d97f9"><div class="ttname"><a href="decls_8h.html#a9001412c35f3c92d3a9320d27b0d97f9">AARU_EXPORT</a></div><div class="ttdeci">#define AARU_EXPORT</div><div class="ttdef"><b>Definition</b> <a href="decls_8h_source.html#l00054">decls.h:54</a></div></div>
|
||
<div class="ttc" id="adump_8c_html_a36af83897e131ba792c51ae8caec9984"><div class="ttname"><a href="dump_8c.html#a36af83897e131ba792c51ae8caec9984">aaruf_get_dumphw</a></div><div class="ttdeci">int32_t aaruf_get_dumphw(void *context, uint8_t *buffer, size_t *length)</div><div class="ttdoc">Retrieves the dump hardware block containing acquisition environment information.</div><div class="ttdef"><b>Definition</b> <a href="#l00186">dump.c:186</a></div></div>
|
||
<div class="ttc" id="adump_8c_html_a6b41f4a00a255e6704583614ef33571f"><div class="ttname"><a href="dump_8c.html#a6b41f4a00a255e6704583614ef33571f">COPY_STRING_FIELD</a></div><div class="ttdeci">#define COPY_STRING_FIELD(field)</div></div>
|
||
<div class="ttc" id="adump_8c_html_ab98a236ef7ac4de15fb37a2e3c3ce633"><div class="ttname"><a href="dump_8c.html#ab98a236ef7ac4de15fb37a2e3c3ce633">free_dump_hardware_entries</a></div><div class="ttdeci">static void free_dump_hardware_entries(DumpHardwareEntriesWithData *entries, uint32_t count)</div><div class="ttdef"><b>Definition</b> <a href="#l00026">dump.c:26</a></div></div>
|
||
<div class="ttc" id="adump_8c_html_ad98012dc12a51d9eadbd79a25aab8299"><div class="ttname"><a href="dump_8c.html#ad98012dc12a51d9eadbd79a25aab8299">aaruf_set_dumphw</a></div><div class="ttdeci">int32_t aaruf_set_dumphw(void *context, uint8_t *data, size_t length)</div><div class="ttdoc">Sets the dump hardware block for the image during creation.</div><div class="ttdef"><b>Definition</b> <a href="#l00531">dump.c:531</a></div></div>
|
||
<div class="ttc" id="aenums_8h_html_a54420623f26ab6bb61042b41cccf37a3ad33812deb344562478c4e0d208a114db"><div class="ttname"><a href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3ad33812deb344562478c4e0d208a114db">DumpHardwareBlock</a></div><div class="ttdeci">@ DumpHardwareBlock</div><div class="ttdoc">Block containing an array of hardware used to create the image.</div><div class="ttdef"><b>Definition</b> <a href="enums_8h_source.html#l00156">enums.h:156</a></div></div>
|
||
<div class="ttc" id="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_aa8dcb9cad962fc5f5f84d5e1ec41fae7"><div class="ttname"><a href="errors_8h.html#aa8dcb9cad962fc5f5f84d5e1ec41fae7">AARUF_ERROR_INVALID_BLOCK_CRC</a></div><div class="ttdeci">#define AARUF_ERROR_INVALID_BLOCK_CRC</div><div class="ttdoc">CRC64 mismatch indicating corruption.</div><div class="ttdef"><b>Definition</b> <a href="errors_8h_source.html#l00057">errors.h:57</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="ainternal_8h_html"><div class="ttname"><a href="internal_8h.html">internal.h</a></div></div>
|
||
<div class="ttc" id="ainternal_8h_html_ac93ebc6d918745be56b680e19bf7e8d5"><div class="ttname"><a href="internal_8h.html#ac93ebc6d918745be56b680e19bf7e8d5">compare_extents</a></div><div class="ttdeci">int compare_extents(const void *a, const void *b)</div><div class="ttdoc">Comparison function for sorting DumpExtent arrays by start sector.</div><div class="ttdef"><b>Definition</b> <a href="helpers_8c_source.html#l00451">helpers.c:451</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="astructDumpExtent_html"><div class="ttname"><a href="structDumpExtent.html">DumpExtent</a></div><div class="ttdoc">Inclusive [start,end] logical sector range contributed by a single hardware environment.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00332">context.h:333</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntriesWithData_html"><div class="ttname"><a href="structDumpHardwareEntriesWithData.html">DumpHardwareEntriesWithData</a></div><div class="ttdoc">In-memory representation of a dump hardware entry plus decoded variable-length fields & extents.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00313">context.h:314</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntriesWithData_html_a04e71aaa515a5a88171f5730e371abbf"><div class="ttname"><a href="structDumpHardwareEntriesWithData.html#a04e71aaa515a5a88171f5730e371abbf">DumpHardwareEntriesWithData::firmware</a></div><div class="ttdeci">uint8_t * firmware</div><div class="ttdoc">Firmware version string or NULL.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00320">context.h:320</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntriesWithData_html_a05cc1da940a0009621038a0327719a91"><div class="ttname"><a href="structDumpHardwareEntriesWithData.html#a05cc1da940a0009621038a0327719a91">DumpHardwareEntriesWithData::revision</a></div><div class="ttdeci">uint8_t * revision</div><div class="ttdoc">Hardware revision string or NULL.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00319">context.h:319</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntriesWithData_html_a160651cc2a5247b99c9ebe38511cc475"><div class="ttname"><a href="structDumpHardwareEntriesWithData.html#a160651cc2a5247b99c9ebe38511cc475">DumpHardwareEntriesWithData::model</a></div><div class="ttdeci">uint8_t * model</div><div class="ttdoc">Model string or NULL.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00318">context.h:318</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntriesWithData_html_a31b56a2fa1f210aaa023eb031572e70b"><div class="ttname"><a href="structDumpHardwareEntriesWithData.html#a31b56a2fa1f210aaa023eb031572e70b">DumpHardwareEntriesWithData::softwareName</a></div><div class="ttdeci">uint8_t * softwareName</div><div class="ttdoc">Dump software name or NULL.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00322">context.h:322</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntriesWithData_html_a34453672c41a27c7d1b9a5df28f7df1a"><div class="ttname"><a href="structDumpHardwareEntriesWithData.html#a34453672c41a27c7d1b9a5df28f7df1a">DumpHardwareEntriesWithData::extents</a></div><div class="ttdeci">struct DumpExtent * extents</div><div class="ttdoc">Array of extents (entry.extents elements) or NULL.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00316">context.h:316</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntriesWithData_html_a4dbc57a5f46892c5e0cde65c55c11e33"><div class="ttname"><a href="structDumpHardwareEntriesWithData.html#a4dbc57a5f46892c5e0cde65c55c11e33">DumpHardwareEntriesWithData::manufacturer</a></div><div class="ttdeci">uint8_t * manufacturer</div><div class="ttdoc">Manufacturer string (UTF-8) or NULL.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00317">context.h:317</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntriesWithData_html_a5766ab6474f43fac96fb0342136766cc"><div class="ttname"><a href="structDumpHardwareEntriesWithData.html#a5766ab6474f43fac96fb0342136766cc">DumpHardwareEntriesWithData::softwareVersion</a></div><div class="ttdeci">uint8_t * softwareVersion</div><div class="ttdoc">Dump software version or NULL.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00323">context.h:323</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntriesWithData_html_a6d328a63bbde6fc49d5a507a22801107"><div class="ttname"><a href="structDumpHardwareEntriesWithData.html#a6d328a63bbde6fc49d5a507a22801107">DumpHardwareEntriesWithData::serial</a></div><div class="ttdeci">uint8_t * serial</div><div class="ttdoc">Serial number string or NULL.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00321">context.h:321</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntriesWithData_html_a9b5f7b438c99ede6988179b7b89915df"><div class="ttname"><a href="structDumpHardwareEntriesWithData.html#a9b5f7b438c99ede6988179b7b89915df">DumpHardwareEntriesWithData::entry</a></div><div class="ttdeci">DumpHardwareEntry entry</div><div class="ttdoc">Fixed-size header with lengths & counts.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00315">context.h:315</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntriesWithData_html_acfd385853ac00bbdbd5ef603aebfb44d"><div class="ttname"><a href="structDumpHardwareEntriesWithData.html#acfd385853ac00bbdbd5ef603aebfb44d">DumpHardwareEntriesWithData::softwareOperatingSystem</a></div><div class="ttdeci">uint8_t * softwareOperatingSystem</div><div class="ttdoc">Host operating system string or NULL.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00324">context.h:324</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntry_html"><div class="ttname"><a href="structDumpHardwareEntry.html">DumpHardwareEntry</a></div><div class="ttdoc">Per-environment length table describing subsequent UTF-8 strings and optional extent array.</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00112">dump.h:113</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntry_html_a20025e2e89599dd60a83ca623fc9a200"><div class="ttname"><a href="structDumpHardwareEntry.html#a20025e2e89599dd60a83ca623fc9a200">DumpHardwareEntry::softwareNameLength</a></div><div class="ttdeci">uint32_t softwareNameLength</div><div class="ttdoc">Length in bytes of dumping software name string.</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00119">dump.h:119</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntry_html_a38a2c1b15dc4cabc02b4124b3a52c8db"><div class="ttname"><a href="structDumpHardwareEntry.html#a38a2c1b15dc4cabc02b4124b3a52c8db">DumpHardwareEntry::manufacturerLength</a></div><div class="ttdeci">uint32_t manufacturerLength</div><div class="ttdoc">Length in bytes of manufacturer UTF-8 string.</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00114">dump.h:114</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntry_html_a4b4d1afcec5c3a0ec0e5f61fc481171d"><div class="ttname"><a href="structDumpHardwareEntry.html#a4b4d1afcec5c3a0ec0e5f61fc481171d">DumpHardwareEntry::softwareVersionLength</a></div><div class="ttdeci">uint32_t softwareVersionLength</div><div class="ttdoc">Length in bytes of dumping software version string.</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00120">dump.h:120</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntry_html_a52948ae4f0d07e4d861e79def4a0deec"><div class="ttname"><a href="structDumpHardwareEntry.html#a52948ae4f0d07e4d861e79def4a0deec">DumpHardwareEntry::firmwareLength</a></div><div class="ttdeci">uint32_t firmwareLength</div><div class="ttdoc">Length in bytes of firmware version string.</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00117">dump.h:117</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntry_html_a558ff77451f13188e00f5b8da4c595ad"><div class="ttname"><a href="structDumpHardwareEntry.html#a558ff77451f13188e00f5b8da4c595ad">DumpHardwareEntry::extents</a></div><div class="ttdeci">uint32_t extents</div><div class="ttdoc">Number of DumpExtent records following the strings (0 = none).</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00122">dump.h:122</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntry_html_a81f6da3ced18e060c27a3bc3ac4387c3"><div class="ttname"><a href="structDumpHardwareEntry.html#a81f6da3ced18e060c27a3bc3ac4387c3">DumpHardwareEntry::modelLength</a></div><div class="ttdeci">uint32_t modelLength</div><div class="ttdoc">Length in bytes of model UTF-8 string.</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00115">dump.h:115</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntry_html_ab363d118785e94df2acc0c8dc1a9d1b5"><div class="ttname"><a href="structDumpHardwareEntry.html#ab363d118785e94df2acc0c8dc1a9d1b5">DumpHardwareEntry::serialLength</a></div><div class="ttdeci">uint32_t serialLength</div><div class="ttdoc">Length in bytes of device serial number string.</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00118">dump.h:118</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntry_html_aca3e85fe2b6b8dd49afde691e5cf1ee8"><div class="ttname"><a href="structDumpHardwareEntry.html#aca3e85fe2b6b8dd49afde691e5cf1ee8">DumpHardwareEntry::revisionLength</a></div><div class="ttdeci">uint32_t revisionLength</div><div class="ttdoc">Length in bytes of revision / hardware revision string.</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00116">dump.h:116</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareEntry_html_adea9ba6d578c27ee86524e7ff91dcbdd"><div class="ttname"><a href="structDumpHardwareEntry.html#adea9ba6d578c27ee86524e7ff91dcbdd">DumpHardwareEntry::softwareOperatingSystemLength</a></div><div class="ttdeci">uint32_t softwareOperatingSystemLength</div><div class="ttdoc">Length in bytes of host operating system string.</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00121">dump.h:121</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareHeader_html"><div class="ttname"><a href="structDumpHardwareHeader.html">DumpHardwareHeader</a></div><div class="ttdoc">Header that precedes a sequence of dump hardware entries and their variable-length payload.</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00090">dump.h:91</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareHeader_html_a0dbdec7b89e7081706cd07dfa00403a7"><div class="ttname"><a href="structDumpHardwareHeader.html#a0dbdec7b89e7081706cd07dfa00403a7">DumpHardwareHeader::crc64</a></div><div class="ttdeci">uint64_t crc64</div><div class="ttdoc">CRC64-ECMA of the payload (byte-swapped for legacy v1 images, handled automatically).</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00095">dump.h:95</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareHeader_html_aa5764ab144eef9a32c08f4475254442d"><div class="ttname"><a href="structDumpHardwareHeader.html#aa5764ab144eef9a32c08f4475254442d">DumpHardwareHeader::identifier</a></div><div class="ttdeci">uint32_t identifier</div><div class="ttdoc">Block identifier, must be BlockType::DumpHardwareBlock.</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00092">dump.h:92</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareHeader_html_acc565625096da115c80e7e390e78a1fa"><div class="ttname"><a href="structDumpHardwareHeader.html#acc565625096da115c80e7e390e78a1fa">DumpHardwareHeader::length</a></div><div class="ttdeci">uint32_t length</div><div class="ttdoc">Total payload bytes after this header (sum of entries, strings, and extents arrays).</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00094">dump.h:94</a></div></div>
|
||
<div class="ttc" id="astructDumpHardwareHeader_html_aee1b5c61324635638fbfbb2518fb86d8"><div class="ttname"><a href="structDumpHardwareHeader.html#aee1b5c61324635638fbfbb2518fb86d8">DumpHardwareHeader::entries</a></div><div class="ttdeci">uint16_t entries</div><div class="ttdoc">Number of DumpHardwareEntry records that follow.</div><div class="ttdef"><b>Definition</b> <a href="dump_8h_source.html#l00093">dump.h:93</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 in‑creation 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_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_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_a8ffb62d849b6e0fbe5a4865b2ca7328f"><div class="ttname"><a href="structaaruformat__context.html#a8ffb62d849b6e0fbe5a4865b2ca7328f">aaruformat_context::dump_hardware_entries_with_data</a></div><div class="ttdeci">struct DumpHardwareEntriesWithData * dump_hardware_entries_with_data</div><div class="ttdoc">Array of dump hardware entries + strings.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00212">context.h:212</a></div></div>
|
||
<div class="ttc" id="astructaaruformat__context_html_accbbc605e1a1607fdf9b6f54f7a9af2f"><div class="ttname"><a href="structaaruformat__context.html#accbbc605e1a1607fdf9b6f54f7a9af2f">aaruformat_context::dump_hardware_header</a></div><div class="ttdeci">DumpHardwareHeader dump_hardware_header</div><div class="ttdoc">Dump hardware header.</div><div class="ttdef"><b>Definition</b> <a href="context_8h_source.html#l00232">context.h:232</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="dump_8c.html">dump.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>
|