{ "reference": "EterBase/CRC32.cpp", "reference_sha256": "80bbbc71a273097830279d96c7d7ac28df6d043675711eb1b6f28a9801a83016", "priority": "P4", "contracts": [], "functions": { "GetCRC32": { "impl": [ "src/platform/EterBase/CRC32.cpp:GetCRC32" ], "status": "ADAPTED", "note": "platform CRC32 table implementation; same polynomial and GetCRC32 values (checked against every stored filename_crc)", "test": "tests/port/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)" }, "GetCaseCRC32": { "status": "PORTED", "impl": [ "src/platform/EterBase/CRC32.cpp:GetCaseCRC32" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "Verbatim 40250 loop (UPPER fold); CRCTable generated from 0xEDB88320, identical to the literal 40250 table." }, "GetHFILECRC32": { "status": "ADAPTED", "impl": [ "src/platform/EterBase/CRC32.cpp:GetHFILECRC32" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "40250 maps the file (CreateFile + CreateFileMapping/MapViewOfFile from offset 0) and CRCs the whole view; the port reads the whole FILE* into a buffer. Invariant: same CRC of the full file, the handle's position is unchanged, 0 when the file cannot be opened." }, "GetFileCRC32": { "status": "ADAPTED", "impl": [ "src/platform/EterBase/CRC32.cpp:GetFileCRC32" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "40250 maps the file (CreateFile + CreateFileMapping/MapViewOfFile from offset 0) and CRCs the whole view; the port reads the whole FILE* into a buffer. Invariant: same CRC of the full file, the handle's position is unchanged, 0 when the file cannot be opened. Callers: GuildMarkUploader/GuildMarkDownloader symbol CRC, root pack CRC report." }, "GetFileSize": { "status": "ADAPTED", "impl": [ "src/platform/EterBase/CRC32.cpp:GetFileSize" ], "test": [ "tests/port/port_utils_test.cpp" ], "note": "CreateFile + GetFileSize -> fopen + ftell(SEEK_END); 0 when the file is missing (40250 returns 0 on INVALID_HANDLE_VALUE). Caller: GuildMarkDownloader symbol size." } } }