1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /* 3 * Copyright (c) 2019, Linaro Limited 4 */ 5 6 #ifndef SYS_H 7 #define SYS_H 8 9 #include <compiler.h> 10 #include <stddef.h> 11 #include <tee_api_types.h> 12 #include <trace.h> 13 #include <types_ext.h> 14 #include <utee_syscalls.h> 15 16 #if defined(CFG_TEE_CORE_DEBUG) 17 #define panic() __panic(__FILE__, __LINE__, __func__) 18 #else 19 #define panic() __panic(NULL, 0, NULL) 20 #endif 21 22 /* A small page is the smallest unit of memory that can be mapped */ 23 #define SMALL_PAGE_SHIFT 12 24 #define SMALL_PAGE_MASK 0x00000fff 25 #define SMALL_PAGE_SIZE 0x00001000 26 27 void __noreturn __panic(const char *file, const int line, const char *func); 28 void __noreturn sys_return_cleanup(void); 29 30 #define err(res, ...) \ 31 do { \ 32 trace_printf_helper(TRACE_ERROR, true, __VA_ARGS__); \ 33 utee_return(res); \ 34 } while (0) 35 36 TEE_Result sys_map_zi(size_t num_bytes, uint32_t flags, vaddr_t *va, 37 size_t pad_begin, size_t pad_end); 38 TEE_Result sys_unmap(vaddr_t va, size_t num_bytes); 39 TEE_Result sys_open_ta_bin(const TEE_UUID *uuid, uint32_t *handle); 40 TEE_Result sys_close_ta_bin(uint32_t handle); 41 TEE_Result sys_map_ta_bin(vaddr_t *va, size_t num_bytes, uint32_t flags, 42 uint32_t handle, size_t offs, size_t pad_begin, 43 size_t pad_end); 44 TEE_Result sys_copy_from_ta_bin(void *dst, size_t num_bytes, uint32_t handle, 45 size_t offs); 46 TEE_Result sys_set_prot(vaddr_t va, size_t num_bytes, uint32_t flags); 47 TEE_Result sys_remap(vaddr_t old_va, vaddr_t *new_va, size_t num_bytes, 48 size_t pad_begin, size_t pad_end); 49 50 #endif /*SYS_H*/ 51