1*ff78bca1SCarter Chen // SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 2*ff78bca1SCarter Chen #ifndef LIBPLDM_SRC_UTILS_H 3*ff78bca1SCarter Chen #define LIBPLDM_SRC_UTILS_H 4*ff78bca1SCarter Chen 5*ff78bca1SCarter Chen #include <errno.h> 6*ff78bca1SCarter Chen #include <stdint.h> 7*ff78bca1SCarter Chen #include <stddef.h> 8*ff78bca1SCarter Chen 9*ff78bca1SCarter Chen /** 10*ff78bca1SCarter Chen * @brief Validate the CRC32 checksum of the given data. 11*ff78bca1SCarter Chen * 12*ff78bca1SCarter Chen * @param[in] expected The expected CRC32 value. 13*ff78bca1SCarter Chen * @param[in] data Pointer to the data to validate. 14*ff78bca1SCarter Chen * @param[in] size Size of the data in bytes. 15*ff78bca1SCarter Chen * @return 0 if the checksum matches, 16*ff78bca1SCarter Chen * -EUCLEAN if the checksum mismatches, 17*ff78bca1SCarter Chen * -EINVAL if the arguments are invalid 18*ff78bca1SCarter Chen */ 19*ff78bca1SCarter Chen int pldm_edac_crc32_validate(uint32_t expected, const void *data, size_t size); 20*ff78bca1SCarter Chen #endif 21