1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /* 3 * Copyright (c) 2019, Linaro Limited 4 * Copyright (c) 2021, Arm Limited 5 */ 6 7 #ifndef __KERNEL_USER_MODE_CTX_H 8 #define __KERNEL_USER_MODE_CTX_H 9 10 #include <assert.h> 11 #include <kernel/secure_partition.h> 12 #include <kernel/stmm_sp.h> 13 #include <kernel/user_mode_ctx_struct.h> 14 #include <kernel/user_ta.h> 15 #include <stdbool.h> 16 is_user_mode_ctx(struct ts_ctx * ctx)17static inline bool is_user_mode_ctx(struct ts_ctx *ctx) 18 { 19 return is_user_ta_ctx(ctx) || is_stmm_ctx(ctx) || is_sp_ctx(ctx); 20 } 21 to_user_mode_ctx(struct ts_ctx * ctx)22static inline struct user_mode_ctx *to_user_mode_ctx(struct ts_ctx *ctx) 23 { 24 if (is_user_ta_ctx(ctx)) 25 return &to_user_ta_ctx(ctx)->uctx; 26 else if (is_sp_ctx(ctx)) 27 return &to_sp_ctx(ctx)->uctx; 28 else 29 return &to_stmm_ctx(ctx)->uctx; 30 } 31 32 void user_mode_ctx_print_mappings(struct user_mode_ctx *umctx); 33 34 #endif /*__KERNEL_USER_MODE_CTX_H*/ 35