|
libaaruformat 1.0
Aaru Data Preservation Suite - Format Library
|
Central runtime context structures for libaaruformat (image state, caches, checksum buffers). More...
#include "blake3.h"#include "crc64.h"#include "hash_map.h"#include "lru.h"#include "md5.h"#include "sha1.h"#include "sha256.h"#include "spamsum.h"#include "structs.h"#include "utarray.h"Go to the source code of this file.
Data Structures | |
| struct | CdEccContext |
| Lookup tables and state for Compact Disc EDC/ECC (P/Q) regeneration / verification. More... | |
| struct | Checksums |
| Collected whole‑image checksums / hashes present in a checksum block. More... | |
| struct | mediaTagEntry |
| Hash table entry for an arbitrary media tag (e.g., proprietary drive/medium descriptor). More... | |
| struct | TapeFileHashEntry |
| struct | TapePartitionHashEntry |
| struct | TapeDdtHashEntry |
| struct | aaruformat_context |
| Master context representing an open or in‑creation Aaru image. More... | |
| struct | DumpHardwareEntriesWithData |
| In-memory representation of a dump hardware entry plus decoded variable-length fields & extents. More... | |
| struct | DumpExtent |
| Inclusive [start,end] logical sector range contributed by a single hardware environment. More... | |
Macros | |
| #define | MD5_DIGEST_LENGTH 16 |
Typedefs | |
| typedef struct CdEccContext | CdEccContext |
| typedef struct Checksums | Checksums |
| typedef struct mediaTagEntry | mediaTagEntry |
| typedef struct TapeFileHashEntry | tapeFileHashEntry |
| typedef struct TapePartitionHashEntry | TapePartitionHashEntry |
| typedef struct TapeDdtHashEntry | TapeDdtHashEntry |
| typedef struct aaruformat_context | aaruformat_context |
| typedef struct DumpHardwareEntriesWithData | DumpHardwareEntriesWithData |
| typedef struct DumpExtent | DumpExtent |
Central runtime context structures for libaaruformat (image state, caches, checksum buffers).
The principal structure, aaruformat_context, aggregates: header metadata, open stream handle, deduplication tables (DDT) currently in memory, optical disc auxiliary data (sector prefix/suffix/subchannel), track listings, geometry & metadata blocks, checksum accumulators, CRC & ECC helper contexts, hash map for deduplication, and transient write buffers.
Memory ownership model (unless otherwise stated): if a pointer field is non-NULL it is owned by the context and will be freed (or otherwise released) during context close / destruction. Callers must not free or reallocate these pointers directly. External callers should treat all internal buffers as read‑only unless explicitly writing.
Threading: a single context instance is NOT thread-safe; serialize access if used across threads. Lifetime: allocate, initialize/open, perform read/write/verify operations, then close/free.
Deduplication tables (DDT): only a subset (primary table + an active secondary + optional cache) is retained in RAM; large images may rely on lazy loading of secondary tables. Flags (inMemoryDdt, userDataDdt*, cachedSecondary*) indicate what is currently resident.
Optical auxiliary buffers (sectorPrefix / sectorSuffix / subchannel / corrected variants) are populated only for images where those components exist (e.g., raw CD dumps). They may be NULL for block devices / non‑optical media.
Index handling: indexEntries (UT_array) holds a flattened list of IndexEntry structures (regardless of v1/v2/v3). hash_map_t *sectorHashMap provides fast duplicate detection keyed by content fingerprint / sparse sector key.
Invariants / sanity expectations (not strictly enforced everywhere):
Definition in file context.h.
| #define MD5_DIGEST_LENGTH 16 |
Definition at line 69 of file context.h.
Referenced by process_checksum_block(), and write_checksum_block().
| typedef struct aaruformat_context aaruformat_context |
| typedef struct CdEccContext CdEccContext |
| typedef struct Checksums Checksums |
| typedef struct DumpExtent DumpExtent |
| typedef struct DumpHardwareEntriesWithData DumpHardwareEntriesWithData |
| typedef struct mediaTagEntry mediaTagEntry |
| typedef struct TapeDdtHashEntry TapeDdtHashEntry |
| typedef struct TapeFileHashEntry tapeFileHashEntry |
| typedef struct TapePartitionHashEntry TapePartitionHashEntry |