1
0
Fork 0
qemu/roms/skiboot/libmctp/crc32.c
Daniel Baumann ea34ddeea6
Adding upstream version 1:10.0.2+ds.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 14:27:05 +02:00

25 lines
433 B
C

/* SPDX-License-Identifier: Apache-2.0 */
/* Copyright 2021 IBM Corp. */
#include "crc32.h"
#include <limits.h>
/* Very dumb CRC-32 implementation */
uint32_t crc32(const void *buf, size_t len)
{
const uint8_t *buf8 = buf;
uint32_t rem = 0xffffffff;
for (; len; len--) {
int i;
rem = rem ^ *buf8;
for (i = 0; i < CHAR_BIT; i++)
rem = (rem >> 1) ^ ((rem & 1) * 0xEDB88320);
buf8++;
}
return rem ^ 0xffffffff;
}