Loading...
Searching...
No Matches
FluxHeader Struct Reference

Header structure for a FluxDataBlock containing flux capture metadata. More...

`#include <aaruformat/structs/flux.h>`

## Data Fields

uint32_t | identifier
| Block identifier, must be BlockType::FluxDataBlock (0x58554C46, "FLUX").
uint16_t | entries
| Number of FluxEntry records following this header. Maximum value: 65535.
uint8_t | blockAlignmentShift
| Block alignment shift: 2^blockAlignmentShift = block alignment boundary in bytes.
uint64_t | crc64
| CRC64-ECMA checksum of the FluxEntry array (header excluded).

## Detailed Description

Header structure for a FluxDataBlock containing flux capture metadata.

This structure is the header of a FluxDataBlock, which lists all flux captures in the image. The block contains this header followed by an array of FluxEntry structures, one for each flux capture.

The header includes a CRC64 checksum computed over the FluxEntry array to ensure data integrity. The identifier field must match BlockType::FluxDataBlock (0x58554C46, "FLUX" in ASCII).

The blockAlignmentShift field stores the block alignment shift value used to decode the payloadOffset values in FluxEntry structures. This makes the block self-contained, similar to DDT headers, allowing correct decoding of offsets without requiring access to the main image header.

Note
  Only one FluxDataBlock is allowed per image.
  The entries field is limited to UINT16_MAX (65535) captures per image.
  The blockAlignmentShift field is stored in the header to support reliable decoding of payloadOffset values, which are stored divided by (1 << blockAlignmentShift).

Definition at line 116 of file flux.h.

## Field Documentation

## blockAlignmentShift

uint8_t FluxHeader::blockAlignmentShift

Block alignment shift: 2^blockAlignmentShift = block alignment boundary in bytes.

Definition at line 120 of file flux.h.

Referenced by aaruf_read_flux_capture(), and write_flux_blocks().

## crc64

uint64_t FluxHeader::crc64

CRC64-ECMA checksum of the FluxEntry array (header excluded).

Definition at line 121 of file flux.h.

Referenced by aaruf_write_flux_capture(), process_flux_data_block(), and write_flux_blocks().

## entries

uint16_t FluxHeader::entries

Number of FluxEntry records following this header. Maximum value: 65535.

Definition at line 119 of file flux.h.

Referenced by aaruf_get_flux_captures(), aaruf_read_flux_capture(), aaruf_write_flux_capture(), ensure_flux_entries_loaded(), find_flux_entry_by_key(), flux_map_rebuild_from_entries(), process_flux_data_block(), and write_flux_blocks().

## identifier

uint32_t FluxHeader::identifier

Block identifier, must be BlockType::FluxDataBlock (0x58554C46, "FLUX").

Definition at line 118 of file flux.h.

Referenced by aaruf_write_flux_capture(), process_flux_data_block(), and write_flux_blocks().

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

- include/aaruformat/structs/flux.h