nuttx/libs
hanzhijian 87d84e437a libc/crc32: add IEEE-compatible crc32_ieee for Linux/zlib interop
Add crc32_ieee() and crc32_ieeepart() that produce CRC32 values
compatible with Linux/zlib. The difference from the existing crc32():

  crc32():        init=0, no final XOR (NuttX native)
  crc32_ieee():   init=0xFFFFFFFF, final XOR 0xFFFFFFFF (Linux/zlib)

The existing crc32() and crc32part() are unchanged to avoid breaking
existing callers (bbsram, sbram, etc.).

New functions:
  crc32_ieee(src, len)              - full CRC, Linux-compatible
  crc32_ieeepart(src, len, crcval)  - incremental CRC, Linux-compatible

Verified on sim:nsh against known Linux zlib test vectors:
  crc32_ieee("hello")     = 0x3610a686 (Linux: 0x3610a686) PASS
  crc32_ieee("123456789") = 0xcbf43926 (Linux: 0xcbf43926) PASS
  crc32_ieee("")           = 0x00000000 (Linux: 0x00000000) PASS
  crc32_ieeepart incremental  = 0xcbf43926               PASS
  crc32("hello")          = 0xf032519b (unchanged)       PASS

Signed-off-by: hanzhijian <hanzhijian@zepp.com>
2026-07-03 10:18:28 +08:00
..
libbuiltin fix(compiler-rt): avoid duplicate builtins dir on sim 2026-05-13 10:01:26 -03:00
libc libc/crc32: add IEEE-compatible crc32_ieee for Linux/zlib interop 2026-07-03 10:18:28 +08:00
libdsp Makefile: Remove make depend files by make distclean 2026-02-16 16:27:57 +01:00
libm libs/libm: correct implementation of truncl if long double is double 2026-07-02 09:02:21 -03:00
libnx include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
libxx libs\libxx: Fix Make style 2026-03-23 18:16:46 -04:00
CMakeLists.txt libs: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00