Ken Liu | 91d44da | 2018-09-20 22:42:31 +0800 | [diff] [blame] | 1 | /* |
Ken Liu | c25558c | 2021-05-20 15:31:28 +0800 | [diff] [blame^] | 2 | * Copyright (c) 2018-2021, Arm Limited. All rights reserved. |
Ken Liu | 91d44da | 2018-09-20 22:42:31 +0800 | [diff] [blame] | 3 | * |
4 | * SPDX-License-Identifier: BSD-3-Clause | ||||
5 | * | ||||
6 | */ | ||||
7 | #ifndef __TFM_UTILS_H__ | ||||
8 | #define __TFM_UTILS_H__ | ||||
9 | |||||
Summer Qin | 8321492 | 2020-06-22 15:07:08 +0800 | [diff] [blame] | 10 | #include <stdbool.h> |
Edison Ai | 93dabfd | 2019-12-03 13:44:45 +0800 | [diff] [blame] | 11 | #include <stdio.h> |
12 | |||||
13 | /* | ||||
14 | * CPU spin here. | ||||
15 | * Note: this function is used to handle PROGRAMMER ERROR. | ||||
16 | */ | ||||
Edison Ai | 9059ea0 | 2019-11-28 13:46:14 +0800 | [diff] [blame] | 17 | void tfm_core_panic(void); |
Ken Liu | 91d44da | 2018-09-20 22:42:31 +0800 | [diff] [blame] | 18 | |
Ken Liu | f250b8b | 2019-12-27 16:31:24 +0800 | [diff] [blame] | 19 | /* Core assert and spin */ |
20 | #ifndef NDEBUG | ||||
21 | #define TFM_CORE_ASSERT(cond) \ | ||||
Ken Liu | 91d44da | 2018-09-20 22:42:31 +0800 | [diff] [blame] | 22 | do { \ |
23 | if (!(cond)) { \ | ||||
Ken Liu | 91d44da | 2018-09-20 22:42:31 +0800 | [diff] [blame] | 24 | while (1) \ |
25 | ; \ | ||||
26 | } \ | ||||
27 | } while (0) | ||||
Ken Liu | f250b8b | 2019-12-27 16:31:24 +0800 | [diff] [blame] | 28 | #else |
29 | #define TFM_CORE_ASSERT(cond) | ||||
30 | #endif | ||||
Ken Liu | 91d44da | 2018-09-20 22:42:31 +0800 | [diff] [blame] | 31 | |
Edison Ai | 1e5822f | 2018-09-21 14:56:08 +0800 | [diff] [blame] | 32 | /* Get container structure start address from member */ |
Ken Liu | c25558c | 2021-05-20 15:31:28 +0800 | [diff] [blame^] | 33 | #define TO_CONTAINER(ptr, type, member) \ |
Edison Ai | 1e5822f | 2018-09-21 14:56:08 +0800 | [diff] [blame] | 34 | (type *)((unsigned long)(ptr) - offsetof(type, member)) |
35 | |||||
Summer Qin | 8321492 | 2020-06-22 15:07:08 +0800 | [diff] [blame] | 36 | #define ERROR_MSG(msg) |
37 | |||||
Ken Liu | f250b8b | 2019-12-27 16:31:24 +0800 | [diff] [blame] | 38 | #endif /* __TFM_UTILS_H__ */ |