/* * Copyright (c) 2021-2023, Arm Limited. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * */ #include "util.h" #include "fih.h" #include #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 */