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