Introduce index block version 3 with enhanced fault tolerance and previous block referencing

This commit is contained in:
2025-08-02 01:45:27 +01:00
parent d518458a63
commit 5de2fc8f84
6 changed files with 79 additions and 46 deletions

View File

@@ -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 */

View File

@@ -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
{