Add doxygen documentation

This commit is contained in:
2025-10-11 01:35:43 +01:00
parent 61850a9520
commit 697b755b1e
646 changed files with 124953 additions and 0 deletions

View File

@@ -0,0 +1,238 @@
<!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: TapeFileEntry 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('structTapeFileEntry.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">TapeFileEntry Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Describes a single logical file on a tape medium.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="tape_8h_source.html">aaruformat/structs/tape.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:a1e5786e5762aaecbd270f9e26777f344" id="r_a1e5786e5762aaecbd270f9e26777f344"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1e5786e5762aaecbd270f9e26777f344">File</a></td></tr>
<tr class="memdesc:a1e5786e5762aaecbd270f9e26777f344"><td class="mdescLeft">&#160;</td><td class="mdescRight">File number (unique within the partition). <br /></td></tr>
<tr class="memitem:acef4f9b9acac33d1e5f08f6cd62afab3" id="r_acef4f9b9acac33d1e5f08f6cd62afab3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acef4f9b9acac33d1e5f08f6cd62afab3">Partition</a></td></tr>
<tr class="memdesc:acef4f9b9acac33d1e5f08f6cd62afab3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Partition number containing this file. <br /></td></tr>
<tr class="memitem:a8bc76d9c2d9c43e14680e39d3fc728ca" id="r_a8bc76d9c2d9c43e14680e39d3fc728ca"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8bc76d9c2d9c43e14680e39d3fc728ca">FirstBlock</a></td></tr>
<tr class="memdesc:a8bc76d9c2d9c43e14680e39d3fc728ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">First block of the file (inclusive). <br /></td></tr>
<tr class="memitem:a7cd5974b8f4d7bf691428d856be1e54b" id="r_a7cd5974b8f4d7bf691428d856be1e54b"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7cd5974b8f4d7bf691428d856be1e54b">LastBlock</a></td></tr>
<tr class="memdesc:a7cd5974b8f4d7bf691428d856be1e54b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Last block of the file (inclusive). <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Describes a single logical file on a tape medium. </p>
<p>A tape file is a contiguous sequence of blocks that represents a discrete logical unit of data. Files are the primary organizational unit on tape media, analogous to files on a filesystem but simpler in structure. Each file is identified by a file number and exists within a specific partition.</p>
<p><b>File Number:</b> The file number uniquely identifies the file within its partition. File numbering typically starts from 0 or 1 depending on the tape format. Sequential files are numbered consecutively, though gaps may exist if files were deleted or the tape was formatted with specific file positions reserved.</p>
<p><b>Partition Association:</b> Each file belongs to exactly one partition. Multi-partition tapes can have files with the same file number in different partitions - the combination of partition number and file number uniquely identifies a file on the tape.</p>
<p><b>Block Range:</b> The FirstBlock and LastBlock fields define the inclusive range of blocks that comprise the file. Both endpoints are included in the file. For example:</p><ul>
<li>FirstBlock=0, LastBlock=0: A single-block file (block 0)</li>
<li>FirstBlock=10, LastBlock=19: A ten-block file (blocks 10-19 inclusive)</li>
<li>FirstBlock=100, LastBlock=99: Invalid (FirstBlock must be ≤ LastBlock)</li>
</ul>
<p><b>Physical Layout:</b> Files occupy contiguous blocks on tape. There are no block pointers or allocation tables as found in disk filesystems. The physical ordering matches the logical ordering defined by the block range.</p>
<p><b>File Marks:</b> On physical tape, files are typically separated by filemarks (also called tape marks). This structure represents the logical file boundaries; the actual filemarks may be implicit in the block numbering or explicitly stored in the tape data stream.</p>
<p><b>Size Calculation:</b> File size in blocks = (LastBlock - FirstBlock + 1) File size in bytes = file_size_in_blocks × block_size (where block_size is tape-format-specific, commonly 512, 1024, or variable)</p>
<dl class="section note"><dt>Note</dt><dd>File numbers and block addresses are format-specific. Some formats use 0-based numbering while others use 1-based. The Aaru format preserves the original numbering scheme.</dd>
<dd>
Files cannot span partitions. If a logical dataset crosses partition boundaries, it would be represented as separate files in each partition.</dd>
<dd>
Empty files (where FirstBlock == LastBlock but containing no data) may exist on some tape formats to serve as markers or placeholders. </dd></dl>
<p class="definition">Definition at line <a class="el" href="tape_8h_source.html#l00133">133</a> of file <a class="el" href="tape_8h_source.html">tape.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="a1e5786e5762aaecbd270f9e26777f344" name="a1e5786e5762aaecbd270f9e26777f344"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e5786e5762aaecbd270f9e26777f344">&#9670;&#160;</a></span>File</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t TapeFileEntry::File</td>
</tr>
</table>
</div><div class="memdoc">
<p>File number (unique within the partition). </p>
<p>Identifies this file among all files in the same partition. Numbering scheme is tape-format-dependent. </p>
<p class="definition">Definition at line <a class="el" href="tape_8h_source.html#l00135">135</a> of file <a class="el" href="tape_8h_source.html">tape.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="tape_8c_source.html#l00770">aaruf_set_tape_file()</a>.</p>
</div>
</div>
<a id="a8bc76d9c2d9c43e14680e39d3fc728ca" name="a8bc76d9c2d9c43e14680e39d3fc728ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8bc76d9c2d9c43e14680e39d3fc728ca">&#9670;&#160;</a></span>FirstBlock</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t TapeFileEntry::FirstBlock</td>
</tr>
</table>
</div><div class="memdoc">
<p>First block of the file (inclusive). </p>
<p>This is the starting block address of the file data. Block addresses are 0-based within the partition. </p>
<p class="definition">Definition at line <a class="el" href="tape_8h_source.html#l00139">139</a> of file <a class="el" href="tape_8h_source.html">tape.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="tape_8c_source.html#l00569">aaruf_get_tape_file()</a>, and <a class="el" href="tape_8c_source.html#l00770">aaruf_set_tape_file()</a>.</p>
</div>
</div>
<a id="a7cd5974b8f4d7bf691428d856be1e54b" name="a7cd5974b8f4d7bf691428d856be1e54b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7cd5974b8f4d7bf691428d856be1e54b">&#9670;&#160;</a></span>LastBlock</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t TapeFileEntry::LastBlock</td>
</tr>
</table>
</div><div class="memdoc">
<p>Last block of the file (inclusive). </p>
<p>This is the ending block address of the file data. Must be ≥ FirstBlock. The file contains all blocks from FirstBlock through LastBlock inclusive. </p>
<p class="definition">Definition at line <a class="el" href="tape_8h_source.html#l00142">142</a> of file <a class="el" href="tape_8h_source.html">tape.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="tape_8c_source.html#l00569">aaruf_get_tape_file()</a>, and <a class="el" href="tape_8c_source.html#l00770">aaruf_set_tape_file()</a>.</p>
</div>
</div>
<a id="acef4f9b9acac33d1e5f08f6cd62afab3" name="acef4f9b9acac33d1e5f08f6cd62afab3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acef4f9b9acac33d1e5f08f6cd62afab3">&#9670;&#160;</a></span>Partition</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t TapeFileEntry::Partition</td>
</tr>
</table>
</div><div class="memdoc">
<p>Partition number containing this file. </p>
<p>References a partition defined in the <a class="el" href="structTapePartitionHeader.html" title="Header for a tape partition metadata block containing partition layout information.">TapePartitionHeader</a> block. Valid range: 0-255. </p>
<p class="definition">Definition at line <a class="el" href="tape_8h_source.html#l00137">137</a> of file <a class="el" href="tape_8h_source.html">tape.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="tape_8c_source.html#l00770">aaruf_set_tape_file()</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="tape_8h_source.html">tape.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="structTapeFileEntry.html">TapeFileEntry</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>