Raef Coles | 15a37f8 | 2021-12-07 15:59:14 +0000 | [diff] [blame] | 1 | /* |
Raef Coles | a5d031b | 2023-07-04 10:45:33 +0100 | [diff] [blame^] | 2 | * Copyright (c) 2021-2023, Arm Limited. All rights reserved. |
Raef Coles | 15a37f8 | 2021-12-07 15:59:14 +0000 | [diff] [blame] | 3 | * |
4 | * SPDX-License-Identifier: BSD-3-Clause | ||||
5 | * | ||||
6 | */ | ||||
7 | |||||
8 | #include "util.h" | ||||
9 | |||||
Raef Coles | 15a37f8 | 2021-12-07 15:59:14 +0000 | [diff] [blame] | 10 | #include "fih.h" |
Raef Coles | a5d031b | 2023-07-04 10:45:33 +0100 | [diff] [blame^] | 11 | #include <string.h> |
Raef Coles | 15a37f8 | 2021-12-07 15:59:14 +0000 | [diff] [blame] | 12 | |
Raef Coles | a5d031b | 2023-07-04 10:45:33 +0100 | [diff] [blame^] | 13 | #ifdef TFM_FIH_PROFILE_ON |
14 | fih_int bl_fih_memeql(const void *ptr1, const void *ptr2, size_t num) | ||||
Raef Coles | 15a37f8 | 2021-12-07 15:59:14 +0000 | [diff] [blame] | 15 | { |
Raef Coles | a5d031b | 2023-07-04 10:45:33 +0100 | [diff] [blame^] | 16 | size_t idx; |
Raef Coles | 15a37f8 | 2021-12-07 15:59:14 +0000 | [diff] [blame] | 17 | |
Raef Coles | a5d031b | 2023-07-04 10:45:33 +0100 | [diff] [blame^] | 18 | for (idx = 0; idx < num; idx++) { |
19 | if (((uint8_t *)ptr1)[idx] != ((uint8_t *)ptr2)[idx]) { | ||||
20 | FIH_RET(FIH_FAILURE); | ||||
Raef Coles | 15a37f8 | 2021-12-07 15:59:14 +0000 | [diff] [blame] | 21 | } |
22 | |||||
Raef Coles | a5d031b | 2023-07-04 10:45:33 +0100 | [diff] [blame^] | 23 | fih_delay(); |
Raef Coles | 15a37f8 | 2021-12-07 15:59:14 +0000 | [diff] [blame] | 24 | |
Raef Coles | a5d031b | 2023-07-04 10:45:33 +0100 | [diff] [blame^] | 25 | if (((uint8_t *)ptr1)[idx] != ((uint8_t *)ptr2)[idx]) { |
26 | FIH_RET(FIH_FAILURE); | ||||
Raef Coles | 15a37f8 | 2021-12-07 15:59:14 +0000 | [diff] [blame] | 27 | } |
Raef Coles | 15a37f8 | 2021-12-07 15:59:14 +0000 | [diff] [blame] | 28 | } |
29 | |||||
Raef Coles | a5d031b | 2023-07-04 10:45:33 +0100 | [diff] [blame^] | 30 | if (idx != num) { |
31 | FIH_RET(FIH_FAILURE); | ||||
Raef Coles | 15a37f8 | 2021-12-07 15:59:14 +0000 | [diff] [blame] | 32 | } |
33 | |||||
34 | FIH_RET(FIH_SUCCESS); | ||||
35 | } | ||||
Raef Coles | a5d031b | 2023-07-04 10:45:33 +0100 | [diff] [blame^] | 36 | #else |
37 | fih_int bl_fih_memeql(const void *ptr1, const void *ptr2, size_t num) | ||||
38 | { | ||||
39 | /* Only return 1 or 0 */ | ||||
40 | return memcmp(ptr1, ptr2, num) != 0; | ||||
41 | } | ||||
42 | #endif /* TFM_FIH_PROFILE_ON */ |