blob: 7051d5540d54ba6e2fbc108cb735c212d75dec39 [file] [log] [blame]
Jens Wiklander7509ff72019-05-23 17:42:08 +02001/* SPDX-License-Identifier: BSD-2-Clause */
2/*
3 * Copyright (c) 2019, Linaro Limited
Balint Dobszaybaa51612020-12-11 16:25:47 +01004 * Copyright (c) 2020, Arm Limited
Jens Wiklander7509ff72019-05-23 17:42:08 +02005 */
6
7#ifndef SYS_H
8#define SYS_H
9
10#include <compiler.h>
Balint Dobszaybaa51612020-12-11 16:25:47 +010011#include <ldelf_syscalls.h>
Jens Wiklander7509ff72019-05-23 17:42:08 +020012#include <stddef.h>
13#include <tee_api_types.h>
14#include <trace.h>
15#include <types_ext.h>
Jens Wiklander7509ff72019-05-23 17:42:08 +020016
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
28void __noreturn __panic(const char *file, const int line, const char *func);
29void __noreturn sys_return_cleanup(void);
30
31#define err(res, ...) \
32 do { \
33 trace_printf_helper(TRACE_ERROR, true, __VA_ARGS__); \
Balint Dobszaybaa51612020-12-11 16:25:47 +010034 _ldelf_return(res); \
Jens Wiklander7509ff72019-05-23 17:42:08 +020035 } while (0)
36
37TEE_Result sys_map_zi(size_t num_bytes, uint32_t flags, vaddr_t *va,
38 size_t pad_begin, size_t pad_end);
39TEE_Result sys_unmap(vaddr_t va, size_t num_bytes);
40TEE_Result sys_open_ta_bin(const TEE_UUID *uuid, uint32_t *handle);
41TEE_Result sys_close_ta_bin(uint32_t handle);
42TEE_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);
45TEE_Result sys_copy_from_ta_bin(void *dst, size_t num_bytes, uint32_t handle,
46 size_t offs);
47TEE_Result sys_set_prot(vaddr_t va, size_t num_bytes, uint32_t flags);
Jens Wiklander88796f82019-06-12 14:30:45 +020048TEE_Result sys_remap(vaddr_t old_va, vaddr_t *new_va, size_t num_bytes,
49 size_t pad_begin, size_t pad_end);
Balint Dobszaybaa51612020-12-11 16:25:47 +010050TEE_Result sys_gen_random_num(void *buf, size_t blen);
Jens Wiklander7509ff72019-05-23 17:42:08 +020051
52#endif /*SYS_H*/