1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2021-2023, Arm Limited. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef SYS_REG_TRACE_H 8*91f16700Schasinglulu #define SYS_REG_TRACE_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include <context.h> 11*91f16700Schasinglulu 12*91f16700Schasinglulu #if ENABLE_SYS_REG_TRACE_FOR_NS 13*91f16700Schasinglulu 14*91f16700Schasinglulu #if __aarch64__ 15*91f16700Schasinglulu void sys_reg_trace_enable_per_world(per_world_context_t *per_world_ctx); 16*91f16700Schasinglulu void sys_reg_trace_disable_per_world(per_world_context_t *per_world_ctx); 17*91f16700Schasinglulu void sys_reg_trace_init_el2_unused(void); 18*91f16700Schasinglulu #else 19*91f16700Schasinglulu void sys_reg_trace_init_el3(void); 20*91f16700Schasinglulu #endif /* __aarch64__ */ 21*91f16700Schasinglulu 22*91f16700Schasinglulu #else /* !ENABLE_SYS_REG_TRACE_FOR_NS */ 23*91f16700Schasinglulu 24*91f16700Schasinglulu #if __aarch64__ 25*91f16700Schasinglulu static inline void sys_reg_trace_enable_per_world(per_world_context_t *per_world_ctx) 26*91f16700Schasinglulu { 27*91f16700Schasinglulu } 28*91f16700Schasinglulu static inline void sys_reg_trace_disable_per_world(per_world_context_t *per_world_ctx) 29*91f16700Schasinglulu { 30*91f16700Schasinglulu } 31*91f16700Schasinglulu static inline void sys_reg_trace_init_el2_unused(void) 32*91f16700Schasinglulu { 33*91f16700Schasinglulu } 34*91f16700Schasinglulu #else 35*91f16700Schasinglulu static inline void sys_reg_trace_init_el3(void) 36*91f16700Schasinglulu { 37*91f16700Schasinglulu } 38*91f16700Schasinglulu #endif /* __aarch64__ */ 39*91f16700Schasinglulu 40*91f16700Schasinglulu #endif /* ENABLE_SYS_REG_TRACE_FOR_NS */ 41*91f16700Schasinglulu 42*91f16700Schasinglulu #endif /* SYS_REG_TRACE_H */ 43