uint32_t crc_common()

in src/crc.c [10:24]


uint32_t crc_common(
    uint32_t (*checksum_fn)(const uint8_t *, int, uint32_t),
    const uint8_t *buffer,
    size_t length,
    uint32_t previous) {

    uint32_t val = previous;
    while (length > INT_MAX) {
        val = checksum_fn(buffer, INT_MAX, val);
        buffer += (size_t)INT_MAX;
        length -= (size_t)INT_MAX;
    }
    val = checksum_fn(buffer, (int)length, val);
    return val;
}