blob: a28d94350e2d32befd4be7956eda4797b5299a45 [file] [log] [blame]
/*
* Copyright (c) 2021-2023, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
*/
#include "util.h"
#include "fih.h"
#include <string.h>
#ifdef TFM_FIH_PROFILE_ON
fih_int bl_fih_memeql(const void *ptr1, const void *ptr2, size_t num)
{
size_t idx;
for (idx = 0; idx < num; idx++) {
if (((uint8_t *)ptr1)[idx] != ((uint8_t *)ptr2)[idx]) {
FIH_RET(FIH_FAILURE);
}
fih_delay();
if (((uint8_t *)ptr1)[idx] != ((uint8_t *)ptr2)[idx]) {
FIH_RET(FIH_FAILURE);
}
}
if (idx != num) {
FIH_RET(FIH_FAILURE);
}
FIH_RET(FIH_SUCCESS);
}
#else
fih_int bl_fih_memeql(const void *ptr1, const void *ptr2, size_t num)
{
/* Only return 1 or 0 */
return memcmp(ptr1, ptr2, num) != 0;
}
#endif /* TFM_FIH_PROFILE_ON */