17509ff7cSJens Wiklander /* SPDX-License-Identifier: BSD-2-Clause */ 27509ff7cSJens Wiklander /* 37509ff7cSJens Wiklander * Copyright (c) 2019, Linaro Limited 4*baa5161dSBalint Dobszay * Copyright (c) 2020, Arm Limited 57509ff7cSJens Wiklander */ 67509ff7cSJens Wiklander 77509ff7cSJens Wiklander #ifndef SYS_H 87509ff7cSJens Wiklander #define SYS_H 97509ff7cSJens Wiklander 107509ff7cSJens Wiklander #include <compiler.h> 11*baa5161dSBalint Dobszay #include <ldelf_syscalls.h> 127509ff7cSJens Wiklander #include <stddef.h> 137509ff7cSJens Wiklander #include <tee_api_types.h> 147509ff7cSJens Wiklander #include <trace.h> 157509ff7cSJens Wiklander #include <types_ext.h> 167509ff7cSJens Wiklander 177509ff7cSJens Wiklander #if defined(CFG_TEE_CORE_DEBUG) 187509ff7cSJens Wiklander #define panic() __panic(__FILE__, __LINE__, __func__) 197509ff7cSJens Wiklander #else 207509ff7cSJens Wiklander #define panic() __panic(NULL, 0, NULL) 217509ff7cSJens Wiklander #endif 227509ff7cSJens Wiklander 237509ff7cSJens Wiklander /* A small page is the smallest unit of memory that can be mapped */ 247509ff7cSJens Wiklander #define SMALL_PAGE_SHIFT 12 257509ff7cSJens Wiklander #define SMALL_PAGE_MASK 0x00000fff 267509ff7cSJens Wiklander #define SMALL_PAGE_SIZE 0x00001000 277509ff7cSJens Wiklander 287509ff7cSJens Wiklander void __noreturn __panic(const char *file, const int line, const char *func); 297509ff7cSJens Wiklander void __noreturn sys_return_cleanup(void); 307509ff7cSJens Wiklander 317509ff7cSJens Wiklander #define err(res, ...) \ 327509ff7cSJens Wiklander do { \ 337509ff7cSJens Wiklander trace_printf_helper(TRACE_ERROR, true, __VA_ARGS__); \ 34*baa5161dSBalint Dobszay _ldelf_return(res); \ 357509ff7cSJens Wiklander } while (0) 367509ff7cSJens Wiklander 377509ff7cSJens Wiklander TEE_Result sys_map_zi(size_t num_bytes, uint32_t flags, vaddr_t *va, 387509ff7cSJens Wiklander size_t pad_begin, size_t pad_end); 397509ff7cSJens Wiklander TEE_Result sys_unmap(vaddr_t va, size_t num_bytes); 407509ff7cSJens Wiklander TEE_Result sys_open_ta_bin(const TEE_UUID *uuid, uint32_t *handle); 417509ff7cSJens Wiklander TEE_Result sys_close_ta_bin(uint32_t handle); 427509ff7cSJens Wiklander TEE_Result sys_map_ta_bin(vaddr_t *va, size_t num_bytes, uint32_t flags, 437509ff7cSJens Wiklander uint32_t handle, size_t offs, size_t pad_begin, 447509ff7cSJens Wiklander size_t pad_end); 457509ff7cSJens Wiklander TEE_Result sys_copy_from_ta_bin(void *dst, size_t num_bytes, uint32_t handle, 467509ff7cSJens Wiklander size_t offs); 477509ff7cSJens Wiklander TEE_Result sys_set_prot(vaddr_t va, size_t num_bytes, uint32_t flags); 4888796f89SJens Wiklander TEE_Result sys_remap(vaddr_t old_va, vaddr_t *new_va, size_t num_bytes, 4988796f89SJens Wiklander size_t pad_begin, size_t pad_end); 50*baa5161dSBalint Dobszay TEE_Result sys_gen_random_num(void *buf, size_t blen); 517509ff7cSJens Wiklander 527509ff7cSJens Wiklander #endif /*SYS_H*/ 53