11936dfc7SJens Wiklander /* SPDX-License-Identifier: BSD-2-Clause */ 21936dfc7SJens Wiklander /* 31936dfc7SJens Wiklander * Copyright (c) 2019, Linaro Limited 4*c185655eSJelle Sels * Copyright (c) 2021, Arm Limited 51936dfc7SJens Wiklander */ 61936dfc7SJens Wiklander 71936dfc7SJens Wiklander #ifndef __KERNEL_USER_MODE_CTX_H 81936dfc7SJens Wiklander #define __KERNEL_USER_MODE_CTX_H 91936dfc7SJens Wiklander 101936dfc7SJens Wiklander #include <assert.h> 11*c185655eSJelle Sels #include <kernel/secure_partition.h> 12f9cd31c5SJelle Sels #include <kernel/stmm_sp.h> 131936dfc7SJens Wiklander #include <kernel/user_mode_ctx_struct.h> 141936dfc7SJens Wiklander #include <kernel/user_ta.h> 151936dfc7SJens Wiklander #include <stdbool.h> 161936dfc7SJens Wiklander is_user_mode_ctx(struct ts_ctx * ctx)173560d990SJens Wiklanderstatic inline bool is_user_mode_ctx(struct ts_ctx *ctx) 181936dfc7SJens Wiklander { 19*c185655eSJelle Sels return is_user_ta_ctx(ctx) || is_stmm_ctx(ctx) || is_sp_ctx(ctx); 201936dfc7SJens Wiklander } 211936dfc7SJens Wiklander to_user_mode_ctx(struct ts_ctx * ctx)223560d990SJens Wiklanderstatic inline struct user_mode_ctx *to_user_mode_ctx(struct ts_ctx *ctx) 231936dfc7SJens Wiklander { 241f648d54SJens Wiklander if (is_user_ta_ctx(ctx)) 251f648d54SJens Wiklander return &to_user_ta_ctx(ctx)->uctx; 26*c185655eSJelle Sels else if (is_sp_ctx(ctx)) 27*c185655eSJelle Sels return &to_sp_ctx(ctx)->uctx; 281f648d54SJens Wiklander else 29f9cd31c5SJelle Sels return &to_stmm_ctx(ctx)->uctx; 301936dfc7SJens Wiklander } 315343f09fSJens Wiklander 325343f09fSJens Wiklander void user_mode_ctx_print_mappings(struct user_mode_ctx *umctx); 335343f09fSJens Wiklander 341936dfc7SJens Wiklander #endif /*__KERNEL_USER_MODE_CTX_H*/ 35