1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /* 3 * Copyright (c) 2023 Andes Technology Corporation 4 * Copyright (c) 2023, Amazon.com Inc. or its affiliates. All rights Reserved. 5 */ 6 7 #ifndef __KERNEL_USER_ACCESS_ARCH_H 8 #define __KERNEL_USER_ACCESS_ARCH_H 9 10 #include <riscv.h> 11 12 #ifdef CFG_PAN 13 /* Enter a section where user mode access is temporarily enabled. */ enter_user_access(void)14static inline void enter_user_access(void) 15 { 16 set_csr(CSR_XSTATUS, CSR_XSTATUS_SUM); 17 } 18 19 /* Exit from the section where user mode access was temporarily enabled. */ exit_user_access(void)20static inline void exit_user_access(void) 21 { 22 clear_csr(CSR_XSTATUS, CSR_XSTATUS_SUM); 23 } 24 #else enter_user_access(void)25static inline void enter_user_access(void) {} exit_user_access(void)26static inline void exit_user_access(void) {} 27 #endif /* CFG_PAN */ 28 29 #endif /* __KERNEL_USER_ACCESS_ARCH_H */ 30