ToyGine2 26.2.0
Game Engine for retro consoles
Loading...
Searching...
No Matches
hashes.cpp File Reference

Table-driven implementations of toy::crc8(), toy::crc16(), and toy::crc32(). More...

#include "core.hpp"
Include dependency graph for hashes.cpp:

Namespaces

namespace  toy
 Root namespace containing all engine modules.

Functions

uint8_t toy::crc8 (const void *src, size_t size, uint8_t crc=0x00) noexcept
 Computes Dallas/Maxim CRC-8 (polynomial 0x31, reflected 8-bit CRC).
uint16_t toy::crc16 (const void *src, size_t size, uint16_t crc=0x0000) noexcept
 Computes CRC-16-IBM / ARC (polynomial 0x8005, reflected).
uint32_t toy::crc32 (const void *src, size_t size, uint32_t crc=0x00000000) noexcept
 Computes CRC-32 per IEEE 802.3 / Ethernet (polynomial 0x04C11DB7, reflected).

Variables

static constexpr array< uint8_t, 256 > toy::_crc8Table
 CRC-8 lookup table using Dallas/Maxim polynomial (0x31).
static constexpr array< uint16_t, 256 > toy::_crc16Table
 CRC-16 lookup table using IBM/ARC polynomial (0x8005).
static constexpr array< uint32_t, 256 > toy::_crc32Table
 CRC-32 lookup table using IEEE 802.3 polynomial (0x04C11DB7).

Detailed Description

Table-driven implementations of toy::crc8(), toy::crc16(), and toy::crc32().

Uses static lookup tables (no heap). Declarations are in hashes.hpp.