<trclass="memdesc:"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Header preceding the compressed data payload of a data block (BlockType::DataBlock). <ahref="structBlockHeader.html#details">More...</a><br/></td></tr>
<divclass="textblock"><p>On-disk layout structures for data-bearing and geometry blocks. </p>
<p>These packed structures describe the headers that precede variable-length payloads inside blocks whose identifiers are enumerated in <aclass="el"href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3">BlockType</a>. All integer fields are stored little-endian on disk. The library currently assumes a little-endian host; if ported to a big-endian architecture explicit byte swapping will be required.</p>
<p>Layout of a data block (BlockType::DataBlock): <aclass="el"href="structBlockHeader.html"title="Header preceding the compressed data payload of a data block (BlockType::DataBlock).">BlockHeader</a> (sizeof(BlockHeader) bytes) Compressed payload (cmpLength bytes)</p>
<p>Payload decoding:</p><ul>
<li>Apply the algorithm indicated by <aclass="el"href="structBlockHeader.html#ad68963422fd2a5f6d0e0be751cbef559">BlockHeader::compression</a> (<aclass="el"href="enums_8h.html#affec749ed88365143745313ae9168263">CompressionType</a>) to the cmpLength bytes following the header to obtain exactly <aclass="el"href="structBlockHeader.html#a1f9f3204a10090709b28d0df4bb547e5">BlockHeader::length</a> bytes.</li>
<li>The uncompressed data MUST be an integer multiple of <aclass="el"href="structBlockHeader.html#a5bd50f95c8c1f91e5013a1a154690beb">BlockHeader::sectorSize</a>.</li>
<li>A CRC64-ECMA is provided for both compressed (cmpCrc64) and uncompressed (crc64) forms to allow validation at either stage of the pipeline.</li>
</ul>
<p>Geometry block (BlockType::GeometryBlock) has a <aclass="el"href="structGeometryBlockHeader.html">GeometryBlockHeader</a> followed by no additional fixed payload in the current format version; it conveys legacy CHS-style logical geometry metadata.</p>
<dlclass="section warning"><dt>Warning</dt><dd>These structs are packed; do not take their address and assume natural alignment. </dd></dl>
<dlclass="section see"><dt>See also</dt><dd><aclass="el"href="enums_8h.html#a54420623f26ab6bb61042b41cccf37a3"title="List of known block types contained in an Aaru image.">BlockType</a></dd>
<dd>
<aclass="el"href="enums_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6"title="List of known data types stored within an Aaru image.">DataType</a></dd>
<dd>
<aclass="el"href="enums_8h.html#affec749ed88365143745313ae9168263"title="List of known compression types.">CompressionType</a></dd></dl>
<pclass="definition">Definition in file <aclass="el"href="data_8h_source.html">data.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.15.0 </li>