mirror of
https://github.com/aaru-dps/libaaruformat.git
synced 2025-12-16 19:24:40 +00:00
48 lines
1.1 KiB
Plaintext
48 lines
1.1 KiB
Plaintext
|
|
=== The geometry block (`GEOM`)
|
|||
|
|
|
|||
|
|
The geometry block encapsulates metadata that defines the disk’s 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 media’s 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
|
|||
|
|
{
|
|||
|
|
/**Identifier, <see cref="BlockType.GeometryBlock" /> */
|
|||
|
|
uint32_t identifier;
|
|||
|
|
uint32_t cylinders;
|
|||
|
|
uint32_t heads;
|
|||
|
|
uint32_t sectorsPerTrack;
|
|||
|
|
} 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.
|
|||
|
|
|===
|