libaaruformat 1.0
Aaru Data Preservation Suite - Format Library
Loading...
Searching...
No Matches
ErasureCodingMapHeader Struct Reference

Header for the Erasure Coding Map Block (BlockType::ErasureCodingMapBlock). More...

#include <aaruformat/structs/erasure.h>

Data Fields

uint32_t identifier
 Block identifier, must be BlockType::ErasureCodingMapBlock (0x424D4345).
uint8_t algorithm
 Erasure coding algorithm (ErasureCodingAlgorithm).
uint8_t stripeGroupCount
 Number of stripe groups in payload (typically 5).
uint16_t compression
 Compression algorithm for the mapping payload (CompressionType).
uint64_t cmpLength
 Size in bytes of the compressed mapping payload.
uint64_t length
 Size in bytes of the uncompressed mapping payload.
uint64_t cmpCrc64
 CRC64-ECMA of the compressed mapping payload.
uint64_t crc64
 CRC64-ECMA of the uncompressed mapping payload.

Detailed Description

Header for the Erasure Coding Map Block (BlockType::ErasureCodingMapBlock).

The ECMB stores the master recovery map: stripe parameters and block-offset mapping for all five protection groups (data, DDT-secondary, DDT-primary, metadata, index). It is written after the index block and found via the recovery footer, NOT via the index (since the index itself may need recovery).

Payload (cmpLength bytes) contains an array of StripeGroupDescriptor followed by per-stripe StripeDescriptor records, optionally compressed.

Definition at line 49 of file erasure.h.

Field Documentation

◆ algorithm

uint8_t ErasureCodingMapHeader::algorithm

Erasure coding algorithm (ErasureCodingAlgorithm).

Definition at line 52 of file erasure.h.

Referenced by ec_finalize(), and ec_load_ecmb().

◆ cmpCrc64

uint64_t ErasureCodingMapHeader::cmpCrc64

CRC64-ECMA of the compressed mapping payload.

Definition at line 57 of file erasure.h.

Referenced by ec_finalize().

◆ cmpLength

uint64_t ErasureCodingMapHeader::cmpLength

Size in bytes of the compressed mapping payload.

Definition at line 55 of file erasure.h.

Referenced by ec_finalize(), and ec_load_ecmb().

◆ compression

uint16_t ErasureCodingMapHeader::compression

Compression algorithm for the mapping payload (CompressionType).

Definition at line 54 of file erasure.h.

Referenced by ec_finalize(), and ec_load_ecmb().

◆ crc64

uint64_t ErasureCodingMapHeader::crc64

CRC64-ECMA of the uncompressed mapping payload.

Definition at line 58 of file erasure.h.

Referenced by ec_finalize(), and ec_load_ecmb().

◆ identifier

uint32_t ErasureCodingMapHeader::identifier

Block identifier, must be BlockType::ErasureCodingMapBlock (0x424D4345).

Definition at line 51 of file erasure.h.

Referenced by ec_finalize(), and ec_load_ecmb().

◆ length

uint64_t ErasureCodingMapHeader::length

Size in bytes of the uncompressed mapping payload.

Definition at line 56 of file erasure.h.

Referenced by ec_finalize(), and ec_load_ecmb().

◆ stripeGroupCount

uint8_t ErasureCodingMapHeader::stripeGroupCount

Number of stripe groups in payload (typically 5).

Definition at line 53 of file erasure.h.

Referenced by ec_finalize(), and ec_load_ecmb().


The documentation for this struct was generated from the following file: