Files
libaaruformat/docs/spec/blocks/geom.adoc

47 lines
1.2 KiB
Plaintext
Raw Normal View History

=== Geometry Block (`GEOM`)
The geometry block encapsulates metadata that defines the disks geometry, primarily to support transformations between CHS (Cylinder-Head-Sector) and LBA (Logical Block Addressing) addressing schemes.
Note that the stored geometry may not reflect the medias actual physical layout.
Instead, it typically represents the translation parameters active at the time the drive image was acquired.
[source,c]
#define GEOM_MAGIC 0x4D4F4547
/**Geometry block, contains physical geometry information */
typedef struct GeometryBlockHeader
{
2025-10-11 13:17:26 +01:00
uint32_t identifier; ///< Block identifier, must be BlockType::GeometryBlock.
uint32_t cylinders; ///< Number of cylinders.
uint32_t heads; ///< Number of heads (tracks per cylinder).
uint32_t sectorsPerTrack; ///< Number of sectors per track.
} GeometryBlockHeader;
==== Field Descriptions
[cols="2,2,2,6",options="header"]
|===
|Type
|Size
|Name
|Description
|uint32_t
|4 bytes
|identifier
|The geometry table identifier, always `GEOM`
|uint32_t
|4 bytes
|cylinders
|The number of cylinders.
|uint32_t
|4 bytes
|heads
|The number of heads.
|uint32_t
|4 bytes
|sectorsPerTrack
|The number of sectors per track.
|===