diff options
| author | Amlal <amlal@nekernel.org> | 2025-08-10 08:56:01 +0200 |
|---|---|---|
| committer | Amlal <amlal@nekernel.org> | 2025-08-10 08:56:01 +0200 |
| commit | 5cb6a8b5b1a1262fff847071e62ca22cf565cbac (patch) | |
| tree | 3ffa4d0ffc3c72c624d6e1aaa17edf2c655e45a7 /dev/kernel/src | |
| parent | 57d0e32e7fdbe9dfe7dfd64d87b900a0cc31bd16 (diff) | |
feat: api/crc32: reworked crc32 api using new portable types.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src')
| -rw-r--r-- | dev/kernel/src/Crc32.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/dev/kernel/src/Crc32.cc b/dev/kernel/src/Crc32.cc index fddcb095..46a1d940 100644 --- a/dev/kernel/src/Crc32.cc +++ b/dev/kernel/src/Crc32.cc @@ -49,11 +49,13 @@ UInt32 kChecksumPolys[kCrcCnt] = { /// @param in the data to compute. /// @param len the length of the data. /// @return CRC32 of **in**. -UInt32 ke_calculate_crc32(const Char* in, Int32 len) noexcept { - if (!in || *in == 0) return ~0; +UInt32 ke_calculate_crc32(const VoidPtr inp, Int32 len) noexcept { + if (!inp) return ~0; UInt32 crc = 0xffffffff; + Char* in = static_cast<Char*>(inp); + while ((len--) > 0) crc = (crc >> 8) ^ kChecksumPolys[(crc ^ *(in++)) & 0xFF]; return ~crc; |
