|
libaaruformat 1.0
Aaru Data Preservation Suite - Format Library
|
CRC64 (ECMA-182) core context and precomputed slicing-by-4 tables. More...
#include <stdint.h>Go to the source code of this file.
Data Structures | |
| struct | crc64_ctx |
| Minimal ECMA-182 CRC64 incremental state container (running value only). More... | |
Macros | |
| #define | CRC64_ECMA_POLY 0xC96C5795D7870F42ULL |
| ECMA-182 reflected polynomial constant. | |
| #define | CRC64_ECMA_SEED 0xFFFFFFFFFFFFFFFFULL |
| ECMA-182 initial seed (all bits set). | |
Variables | |
| static const uint64_t | crc64_table [4][256] |
| Precomputed slicing-by-4 ECMA-182 CRC64 lookup tables (4 * 256 * 8 = 8192 bytes). | |
CRC64 (ECMA-182) core context and precomputed slicing-by-4 tables.
Exposes:
Algorithm characteristics:
Table layout & optimization: Four 256-entry tables are used (slicing-by-4) allowing 4-byte chunks to be folded per iteration, reducing data dependency chains compared to a single-table approach. This improves throughput on modern CPUs with abundant ILP.
Incremental usage (pseudo-code):
Thread safety: The table is read-only; each thread must use its own crc64_ctx. Endianness: Table values are host-endian 64-bit constants; algorithm result is endianness-agnostic.
Definition in file crc64.h.
| #define CRC64_ECMA_POLY 0xC96C5795D7870F42ULL |
| #define CRC64_ECMA_SEED 0xFFFFFFFFFFFFFFFFULL |
ECMA-182 initial seed (all bits set).
Definition at line 280 of file crc64.h.
Referenced by aaruf_crc64_final(), and aaruf_crc64_init().
|
static |
Precomputed slicing-by-4 ECMA-182 CRC64 lookup tables (4 * 256 * 8 = 8192 bytes).
Each row corresponds to one byte lane in a 4-byte block update; actual folding logic resides in the implementation. Content generated offline; do not modify manually.
Definition at line 66 of file crc64.h.
Referenced by aaruf_crc64_slicing().