|
libaaruformat 1.0
Aaru Data Preservation Suite - Format Library
|
Version 2 container header with GUID, alignment shifts, and feature negotiation bitmaps. More...
#include <aaruformat/structs/header.h>
Data Fields | |
| uint64_t | identifier |
| File magic (AARU_MAGIC). | |
| uint8_t | application [64] |
| UTF-8 creator application name (fixed 64 bytes). | |
| uint8_t | imageMajorVersion |
| Container format major version. | |
| uint8_t | imageMinorVersion |
| Container format minor version. | |
| uint8_t | applicationMajorVersion |
| Creator application major version. | |
| uint8_t | applicationMinorVersion |
| Creator application minor / patch version. | |
| uint32_t | mediaType |
| Media type enumeration (value from MediaType). | |
| uint64_t | indexOffset |
| Absolute byte offset to primary index block (MUST be > 0; 0 => corrupt/unreadable). | |
| int64_t | creationTime |
| Creation FILETIME (100 ns since 1601-01-01 UTC). | |
| int64_t | lastWrittenTime |
| Last modification FILETIME (100 ns since 1601-01-01 UTC). | |
| uint8_t | guid [16] |
| 128-bit image GUID (binary, not text); stable across children. | |
| uint8_t | blockAlignmentShift |
| log2 block alignment (block size alignment = 2^blockAlignmentShift bytes). | |
| uint8_t | dataShift |
| log2 sectors/items per block-index increment in DDT entries (2^dataShift). | |
| uint8_t | tableShift |
| log2 sectors spanned by each primary DDT entry (0 = single-level). | |
| uint64_t | featureCompatible |
| Feature bits: unimplemented bits are ignorable (still R/W safe). | |
| uint64_t | featureCompatibleRo |
| Feature bits: unimplemented -> degrade to read-only access. | |
| uint64_t | featureIncompatible |
| Feature bits: any unimplemented -> abort (cannot open safely). | |
Version 2 container header with GUID, alignment shifts, and feature negotiation bitmaps.
Additions over v1:
Feature bitmask semantics:
Readers should AND their supported bit set with the header masks to decide access level (see file documentation). Writers must preserve unknown bits when saving an existing image.
| uint8_t AaruHeaderV2::application[64] |
UTF-8 creator application name (fixed 64 bytes).
Definition at line 109 of file header.h.
Referenced by aaruf_create(), and aaruf_open().
| uint8_t AaruHeaderV2::applicationMajorVersion |
Creator application major version.
Definition at line 112 of file header.h.
Referenced by aaruf_create(), and aaruf_open().
| uint8_t AaruHeaderV2::applicationMinorVersion |
Creator application minor / patch version.
Definition at line 113 of file header.h.
Referenced by aaruf_create(), and aaruf_open().
| uint8_t AaruHeaderV2::blockAlignmentShift |
| int64_t AaruHeaderV2::creationTime |
Creation FILETIME (100 ns since 1601-01-01 UTC).
Definition at line 116 of file header.h.
Referenced by aaruf_create(), and aaruf_open().
| uint8_t AaruHeaderV2::dataShift |
| uint64_t AaruHeaderV2::featureCompatible |
Feature bits: unimplemented bits are ignorable (still R/W safe).
Definition at line 122 of file header.h.
Referenced by write_checksum_block().
| uint64_t AaruHeaderV2::featureCompatibleRo |
| uint64_t AaruHeaderV2::featureIncompatible |
| uint8_t AaruHeaderV2::guid[16] |
128-bit image GUID (binary, not text); stable across children.
Definition at line 118 of file header.h.
Referenced by aaruf_create().
| uint64_t AaruHeaderV2::identifier |
File magic (AARU_MAGIC).
Definition at line 108 of file header.h.
Referenced by aaruf_create(), and aaruf_open().
| uint8_t AaruHeaderV2::imageMajorVersion |
Container format major version.
Definition at line 110 of file header.h.
Referenced by aaruf_create(), aaruf_open(), aaruf_verify_image(), process_data_block(), process_dumphw_block(), process_tracks_block(), verify_index_v1(), verify_index_v2(), and verify_index_v3().
| uint8_t AaruHeaderV2::imageMinorVersion |
Container format minor version.
Definition at line 111 of file header.h.
Referenced by aaruf_create(), and aaruf_open().
| uint64_t AaruHeaderV2::indexOffset |
Absolute byte offset to primary index block (MUST be > 0; 0 => corrupt/unreadable).
Definition at line 115 of file header.h.
Referenced by aaruf_create(), aaruf_open(), aaruf_verify_image(), process_index_v1(), process_index_v2(), process_index_v3(), verify_index_v1(), verify_index_v2(), verify_index_v3(), and write_index_block().
| int64_t AaruHeaderV2::lastWrittenTime |
Last modification FILETIME (100 ns since 1601-01-01 UTC).
Definition at line 117 of file header.h.
Referenced by aaruf_create(), and aaruf_open().
| uint32_t AaruHeaderV2::mediaType |
Media type enumeration (value from MediaType).
Definition at line 114 of file header.h.
Referenced by aaruf_create(), and aaruf_open().
| uint8_t AaruHeaderV2::tableShift |