<trclass="memdesc:ab17964dacc36dca03ec5e75aa40a4502"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Size in bytes (UTF-16LE) of application name field (32 UTF-16 code units). <br/></td></tr>
<trclass="memdesc:a57c99b24137b82f12950e79ffbd2fb7a"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Size in bytes of GUID / UUID-like binary identifier. <br/></td></tr>
<divclass="textblock"><p>On-disk container header structures (v1 and v2) for Aaru images. </p>
<p>These packed headers appear at the very beginning (offset 0) of every Aaru image file and advertise container format version, creator application, indexing offset and optional extended feature capability bitfields (v2+). All multi-byte integers are little-endian. Strings stored in the fixed-size application field are UTF‑16LE and zero padded (not necessarily NUL-terminated if fully filled). The GUID field (v2) allows derivative / child images to reference an origin.</p>
<p>Version progression:</p><ul>
<li>v1: <aclass="el"href="structAaruHeader.html">AaruHeader</a> (no GUID, no alignment or shift metadata, no feature bitfields).</li>
<li>v2: <aclass="el"href="structAaruHeaderV2.html">AaruHeaderV2</a> introduces GUID, block/data/table shift hints (mirroring DDT metadata), and three 64‑bit feature bitmaps to negotiate reader/writer compatibility.</li>
</ul>
<p>Compatibility handling (recommended logic for consumers):</p><oltype="1">
<li>If any bit set in featureIncompatible is not implemented by the reader: abort (cannot safely read/write).</li>
<li>Else if any bit set in featureCompatibleRo is not implemented: allow read‑only operations.</li>
<li>Bits only present in featureCompatible but not implemented MAY be ignored for both read/write while still preserving round‑trip capability (writer should not clear unknown bits when re‑saving).</li>
</ol>
<p>Alignment & shift semantics (duplicated here for quick reference, see <aclass="el"href="structDdtHeader2.html"title="Header preceding a version 2 hierarchical deduplication table.">DdtHeader2</a> for full details):</p><ul>
<li>blockAlignmentShift: underlying blocks are aligned to 2^blockAlignmentShift bytes.</li>
<li>For v2: sizeof(AaruHeaderV2) exact; indexOffset > 0; blockAlignmentShift, dataShift, tableShift within sane bounds (e.g. < 63). Zero is permissible only for the shift fields (not for indexOffset).</li>
</ul>
<p>Security / robustness considerations:</p><ul>
<li>Always bounds-check indexOffset against file size before seeking.</li>
<li>Treat application field as untrusted UTF‑16LE; validate surrogate pairs if necessary.</li>
<li>Unknown feature bits MUST be preserved if a file is rewritten to avoid capability loss. </li>
</ul>
<pclass="definition">Definition in file <aclass="el"href="header_8h_source.html">header.h</a>.</p>
<p>Size in bytes (UTF-16LE) of application name field (32 UTF-16 code units). </p>
<pclass="definition">Definition at line <aclass="el"href="header_8h_source.html#l00059">59</a> of file <aclass="el"href="header_8h_source.html">header.h</a>.</p>
<pclass="reference">Referenced by <aclass="el"href="create_8c_source.html#l00279">aaruf_create()</a>, and <aclass="el"href="open_8c_source.html#l00125">aaruf_open()</a>.</p>
<p>Size in bytes of GUID / UUID-like binary identifier. </p>
<pclass="definition">Definition at line <aclass="el"href="header_8h_source.html#l00060">60</a> of file <aclass="el"href="header_8h_source.html">header.h</a>.</p>
<liclass="footer">Generated by <ahref="https://www.doxygen.org/index.html"><imgclass="footer"src="doxygen.svg"width="104"height="31"alt="doxygen"/></a> 1.14.0 </li>