xref: /openbmc/libpldm/src/utils.h (revision ff78bca13a098d0a279b6bab419042c93c2b329d)
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