mirror of
https://github.com/aaru-dps/libaaruformat.git
synced 2025-12-16 19:24:40 +00:00
Introduce index block version 3 with enhanced fault tolerance and previous block referencing
This commit is contained in:
@@ -210,6 +210,8 @@ typedef enum
|
||||
IndexBlock = 0x58444E49,
|
||||
/** Block containing the index v2 */
|
||||
IndexBlock2 = 0x32584449,
|
||||
/** Block containing the index v3 */
|
||||
IndexBlock3 = 0x33584449,
|
||||
/** Block containing logical geometry */
|
||||
GeometryBlock = 0x4D4F4547,
|
||||
/** Block containing metadata */
|
||||
|
||||
@@ -43,6 +43,19 @@ typedef struct IndexHeader2
|
||||
uint64_t crc64;
|
||||
} IndexHeader2;
|
||||
|
||||
/**Header for the index, followed by entries */
|
||||
typedef struct IndexHeader3
|
||||
{
|
||||
/**Identifier, <see cref="BlockType.Index" /> */
|
||||
uint32_t identifier;
|
||||
/**How many entries follow this header */
|
||||
uint64_t entries;
|
||||
/**CRC64-ECMA of the index */
|
||||
uint64_t crc64;
|
||||
/**Pointer to the previous index header */
|
||||
uint64_t previous;
|
||||
} IndexHeader3;
|
||||
|
||||
/**Index entry */
|
||||
typedef struct IndexEntry
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user