xref: /rk3399_ARM-atf/include/lib/extensions/idte3.h (revision e7e231d39c68083e870cdaaa89ecc4e5045fdd64)
1 /*
2  * Copyright (c) 2025-2026, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef IDTE3_H
8 #define IDTE3_H
9 
10 #ifdef IMAGE_BL31
11 #include <arch.h>
12 #include <bl31/sync_handle.h>
13 #include <context.h>
14 #include <lib/el3_runtime/cpu_data.h>
15 
16 #if ENABLE_FEAT_IDTE3
17 void idte3_enable(cpu_context_t *ctx);
18 int handle_idreg_trap(uint8_t rt, uint64_t idreg, cpu_context_t *ctx,
19 		      u_register_t flags);
20 void idte3_init_cached_idregs_per_world(size_t security_state);
21 void idte3_init_percpu_once_regs(size_t security_state);
22 #else
idte3_enable(cpu_context_t * ctx)23 static inline void idte3_enable(cpu_context_t *ctx)
24 {
25 }
handle_idreg_trap(uint8_t rt,uint64_t idreg,cpu_context_t * ctx,u_register_t flags)26 static inline int handle_idreg_trap(uint8_t rt, uint64_t idreg,
27 				    cpu_context_t *ctx, u_register_t flags)
28 {
29 	return TRAP_RET_UNHANDLED;
30 }
idte3_init_percpu_once_regs(size_t security_state)31 static inline void idte3_init_percpu_once_regs(size_t security_state)
32 {
33 }
idte3_init_cached_idregs_per_world(size_t security_state)34 static inline void idte3_init_cached_idregs_per_world(size_t security_state)
35 {
36 }
37 #endif /* ENABLE_FEAT_IDTE3 */
38 #endif /* IMAGE_BL31 */
39 #endif /* IDTE3_H */
40