Files
libaaruformat/docs/html/structDdtHeader.html

330 lines
17 KiB
HTML
Raw Normal View History

2025-10-11 01:35:43 +01:00
<!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: DdtHeader Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">libaaruformat<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Aaru Data Preservation Suite - Format Library</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('structDdtHeader.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">DdtHeader Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Header preceding a version 1 (flat) deduplication table body.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="ddt_8h_source.html">aaruformat/structs/ddt.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-pub-attribs" class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:a640bdd80a0bab66d82d36e9d25ed86a4" id="r_a640bdd80a0bab66d82d36e9d25ed86a4"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a640bdd80a0bab66d82d36e9d25ed86a4">identifier</a></td></tr>
<tr class="memdesc:a640bdd80a0bab66d82d36e9d25ed86a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Block identifier, must be BlockType::DeDuplicationTable. <br /></td></tr>
<tr class="memitem:a7d0eb9ac1d810626e9f86b7f8c8655f5" id="r_a7d0eb9ac1d810626e9f86b7f8c8655f5"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7d0eb9ac1d810626e9f86b7f8c8655f5">type</a></td></tr>
<tr class="memdesc:a7d0eb9ac1d810626e9f86b7f8c8655f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data classification (<a class="el" href="enums_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>) for sectors referenced by this table. <br /></td></tr>
<tr class="memitem:a582d814208475da3a610e7773a3b2ded" id="r_a582d814208475da3a610e7773a3b2ded"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a582d814208475da3a610e7773a3b2ded">compression</a></td></tr>
<tr class="memdesc:a582d814208475da3a610e7773a3b2ded"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compression algorithm for the table body (<a class="el" href="enums_8h.html#affec749ed88365143745313ae9168263">CompressionType</a>). <br /></td></tr>
<tr class="memitem:a3d12905ae4eefa62cff390bf694f96ea" id="r_a3d12905ae4eefa62cff390bf694f96ea"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3d12905ae4eefa62cff390bf694f96ea">shift</a></td></tr>
<tr class="memdesc:a3d12905ae4eefa62cff390bf694f96ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Left shift applied to per-entry file offset component forming logicalEntryValue. <br /></td></tr>
<tr class="memitem:a74eb3f36e0c52cc59849fcc7b283d84d" id="r_a74eb3f36e0c52cc59849fcc7b283d84d"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a74eb3f36e0c52cc59849fcc7b283d84d">entries</a></td></tr>
<tr class="memdesc:a74eb3f36e0c52cc59849fcc7b283d84d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of deduplication entries contained in (uncompressed) table. <br /></td></tr>
<tr class="memitem:a683a82d49a20adf6348fbcde58e2ecd9" id="r_a683a82d49a20adf6348fbcde58e2ecd9"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a683a82d49a20adf6348fbcde58e2ecd9">cmpLength</a></td></tr>
<tr class="memdesc:a683a82d49a20adf6348fbcde58e2ecd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size in bytes of compressed entries payload. <br /></td></tr>
<tr class="memitem:a6c427b746b3fa0fd161094ba0adf3f56" id="r_a6c427b746b3fa0fd161094ba0adf3f56"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6c427b746b3fa0fd161094ba0adf3f56">length</a></td></tr>
<tr class="memdesc:a6c427b746b3fa0fd161094ba0adf3f56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size in bytes of uncompressed entries payload. <br /></td></tr>
<tr class="memitem:ab3c100c0dc3e5f6ef97366a6a27e642f" id="r_ab3c100c0dc3e5f6ef97366a6a27e642f"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab3c100c0dc3e5f6ef97366a6a27e642f">cmpCrc64</a></td></tr>
<tr class="memdesc:ab3c100c0dc3e5f6ef97366a6a27e642f"><td class="mdescLeft">&#160;</td><td class="mdescRight">CRC64-ECMA of the compressed payload. <br /></td></tr>
<tr class="memitem:a1b533f6a2db8316e66d2615f0bdcbb47" id="r_a1b533f6a2db8316e66d2615f0bdcbb47"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1b533f6a2db8316e66d2615f0bdcbb47">crc64</a></td></tr>
<tr class="memdesc:a1b533f6a2db8316e66d2615f0bdcbb47"><td class="mdescLeft">&#160;</td><td class="mdescRight">CRC64-ECMA of the uncompressed payload. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Header preceding a version 1 (flat) deduplication table body. </p>
<p>Immediately after this header there are <a class="el" href="#a74eb3f36e0c52cc59849fcc7b283d84d">entries</a> table records (compressed if <a class="el" href="#a582d814208475da3a610e7773a3b2ded">compression</a> != None). Each table record encodes a pointer using an 8-bit file offset component and a sector offset inside a block: logicalEntryValue = ((uint64_t)fileByteOffset &lt;&lt; shift) + sectorOffsetWithinBlock where fileByteOffset is measured in bytes (granularity depends on shift) and sectorOffsetWithinBlock is relative to the start of the referenced data block. The sector size must be taken from the corresponding data block(s) (see <a class="el" href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb" title="Size in bytes of each logical sector represented in this block.">BlockHeader::sectorSize</a>) or higher-level metadata.</p>
<p>Invariants:</p><ul>
<li>cmpLength == length if compression == CompressionType::None</li>
<li>length % (entrySize) == 0 after decompression (implementation-defined entry size)</li>
<li>entries * entrySize == length</li>
<li>entries &gt; 0 implies length &gt; 0 </li>
</ul>
<p class="definition">Definition at line <a class="el" href="ddt_8h_source.html#l00065">65</a> of file <a class="el" href="ddt_8h_source.html">ddt.h</a>.</p>
</div><a name="doc-variable-members" id="doc-variable-members"></a><h2 id="header-doc-variable-members" class="groupheader">Field Documentation</h2>
<a id="ab3c100c0dc3e5f6ef97366a6a27e642f" name="ab3c100c0dc3e5f6ef97366a6a27e642f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3c100c0dc3e5f6ef97366a6a27e642f">&#9670;&#160;</a></span>cmpCrc64</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t DdtHeader::cmpCrc64</td>
</tr>
</table>
</div><div class="memdoc">
<p>CRC64-ECMA of the compressed payload. </p>
<p class="definition">Definition at line <a class="el" href="ddt_8h_source.html#l00074">74</a> of file <a class="el" href="ddt_8h_source.html">ddt.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="verify_8c_source.html#l00130">aaruf_verify_image()</a>.</p>
</div>
</div>
<a id="a683a82d49a20adf6348fbcde58e2ecd9" name="a683a82d49a20adf6348fbcde58e2ecd9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a683a82d49a20adf6348fbcde58e2ecd9">&#9670;&#160;</a></span>cmpLength</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t DdtHeader::cmpLength</td>
</tr>
</table>
</div><div class="memdoc">
<p>Size in bytes of compressed entries payload. </p>
<p class="definition">Definition at line <a class="el" href="ddt_8h_source.html#l00072">72</a> of file <a class="el" href="ddt_8h_source.html">ddt.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="verify_8c_source.html#l00130">aaruf_verify_image()</a>, and <a class="el" href="ddt__v1_8c_source.html#l00085">process_ddt_v1()</a>.</p>
</div>
</div>
<a id="a582d814208475da3a610e7773a3b2ded" name="a582d814208475da3a610e7773a3b2ded"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a582d814208475da3a610e7773a3b2ded">&#9670;&#160;</a></span>compression</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t DdtHeader::compression</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compression algorithm for the table body (<a class="el" href="enums_8h.html#affec749ed88365143745313ae9168263">CompressionType</a>). </p>
<p class="definition">Definition at line <a class="el" href="ddt_8h_source.html#l00069">69</a> of file <a class="el" href="ddt_8h_source.html">ddt.h</a>.</p>
2025-12-12 12:25:02 +00:00
<p class="reference">Referenced by <a class="el" href="verify_8c_source.html#l00130">aaruf_verify_image()</a>, and <a class="el" href="ddt__v1_8c_source.html#l00085">process_ddt_v1()</a>.</p>
2025-10-11 01:35:43 +01:00
</div>
</div>
<a id="a1b533f6a2db8316e66d2615f0bdcbb47" name="a1b533f6a2db8316e66d2615f0bdcbb47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b533f6a2db8316e66d2615f0bdcbb47">&#9670;&#160;</a></span>crc64</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t DdtHeader::crc64</td>
</tr>
</table>
</div><div class="memdoc">
<p>CRC64-ECMA of the uncompressed payload. </p>
<p class="definition">Definition at line <a class="el" href="ddt_8h_source.html#l00075">75</a> of file <a class="el" href="ddt_8h_source.html">ddt.h</a>.</p>
</div>
</div>
<a id="a74eb3f36e0c52cc59849fcc7b283d84d" name="a74eb3f36e0c52cc59849fcc7b283d84d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74eb3f36e0c52cc59849fcc7b283d84d">&#9670;&#160;</a></span>entries</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t DdtHeader::entries</td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of deduplication entries contained in (uncompressed) table. </p>
<p class="definition">Definition at line <a class="el" href="ddt_8h_source.html#l00071">71</a> of file <a class="el" href="ddt_8h_source.html">ddt.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="ddt__v1_8c_source.html#l00085">process_ddt_v1()</a>.</p>
</div>
</div>
<a id="a640bdd80a0bab66d82d36e9d25ed86a4" name="a640bdd80a0bab66d82d36e9d25ed86a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a640bdd80a0bab66d82d36e9d25ed86a4">&#9670;&#160;</a></span>identifier</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t DdtHeader::identifier</td>
</tr>
</table>
</div><div class="memdoc">
<p>Block identifier, must be BlockType::DeDuplicationTable. </p>
<p class="definition">Definition at line <a class="el" href="ddt_8h_source.html#l00067">67</a> of file <a class="el" href="ddt_8h_source.html">ddt.h</a>.</p>
</div>
</div>
<a id="a6c427b746b3fa0fd161094ba0adf3f56" name="a6c427b746b3fa0fd161094ba0adf3f56"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c427b746b3fa0fd161094ba0adf3f56">&#9670;&#160;</a></span>length</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t DdtHeader::length</td>
</tr>
</table>
</div><div class="memdoc">
<p>Size in bytes of uncompressed entries payload. </p>
<p class="definition">Definition at line <a class="el" href="ddt_8h_source.html#l00073">73</a> of file <a class="el" href="ddt_8h_source.html">ddt.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="ddt__v1_8c_source.html#l00085">process_ddt_v1()</a>.</p>
</div>
</div>
<a id="a3d12905ae4eefa62cff390bf694f96ea" name="a3d12905ae4eefa62cff390bf694f96ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d12905ae4eefa62cff390bf694f96ea">&#9670;&#160;</a></span>shift</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t DdtHeader::shift</td>
</tr>
</table>
</div><div class="memdoc">
<p>Left shift applied to per-entry file offset component forming logicalEntryValue. </p>
<p class="definition">Definition at line <a class="el" href="ddt_8h_source.html#l00070">70</a> of file <a class="el" href="ddt_8h_source.html">ddt.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="ddt__v1_8c_source.html#l00085">process_ddt_v1()</a>.</p>
</div>
</div>
<a id="a7d0eb9ac1d810626e9f86b7f8c8655f5" name="a7d0eb9ac1d810626e9f86b7f8c8655f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d0eb9ac1d810626e9f86b7f8c8655f5">&#9670;&#160;</a></span>type</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t DdtHeader::type</td>
</tr>
</table>
</div><div class="memdoc">
<p>Data classification (<a class="el" href="enums_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>) for sectors referenced by this table. </p>
<p class="definition">Definition at line <a class="el" href="ddt_8h_source.html#l00068">68</a> of file <a class="el" href="ddt_8h_source.html">ddt.h</a>.</p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>include/aaruformat/structs/<a class="el" href="ddt_8h_source.html">ddt.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="structDdtHeader.html">DdtHeader</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>