/* * Copyright (c) 2022, Arm Limited. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #ifndef COMMON_CRC32_H #define COMMON_CRC32_H #include #include #ifdef __cplusplus extern "C" { #endif /** * \brief Initialize CRC32 to use HW acceleration if available */ void crc32_init(void); /** * \brief Calculate a CRC32 over the provided data * * \param[in] crc_prev The starting CRC for previous data * \param[in] buf The buffer to calculate the CRC over * \param[in] size Number of bytes in the buffer * * \return The calculated CRC32 */ extern uint32_t (*crc32)(uint32_t crc_prev, const uint8_t *buf, size_t size); #ifdef __cplusplus } #endif #endif /* COMMON_CRC32_H */