blob: a58e5fe7721fff5c74c922cfb6cc3582b63e6785 [file] [edit]
/*
* Copyright (c) 2025-2026, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef IDTE3_H
#define IDTE3_H
#ifdef IMAGE_BL31
#include <arch.h>
#include <bl31/sync_handle.h>
#include <context.h>
#include <lib/el3_runtime/cpu_data.h>
#if ENABLE_FEAT_IDTE3
void idte3_enable(cpu_context_t *ctx);
int handle_idreg_trap(uint8_t rt, uint64_t idreg, cpu_context_t *ctx,
u_register_t flags);
void idte3_init_cached_idregs_per_world(size_t security_state);
void idte3_init_percpu_once_regs(size_t security_state);
#else
static inline void idte3_enable(cpu_context_t *ctx)
{
}
static inline int handle_idreg_trap(uint8_t rt, uint64_t idreg,
cpu_context_t *ctx, u_register_t flags)
{
return TRAP_RET_UNHANDLED;
}
static inline void idte3_init_percpu_once_regs(size_t security_state)
{
}
static inline void idte3_init_cached_idregs_per_world(size_t security_state)
{
}
#endif /* ENABLE_FEAT_IDTE3 */
#endif /* IMAGE_BL31 */
#endif /* IDTE3_H */