blob: 55a9c6b7341969d910df870b54227b6d3f6ce72e [file] [log] [blame]
Jens Wiklander7509ff72019-05-23 17:42:08 +02001/* 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
27void __noreturn __panic(const char *file, const int line, const char *func);
28void __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
36TEE_Result sys_map_zi(size_t num_bytes, uint32_t flags, vaddr_t *va,
37 size_t pad_begin, size_t pad_end);
38TEE_Result sys_unmap(vaddr_t va, size_t num_bytes);
39TEE_Result sys_open_ta_bin(const TEE_UUID *uuid, uint32_t *handle);
40TEE_Result sys_close_ta_bin(uint32_t handle);
41TEE_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);
44TEE_Result sys_copy_from_ta_bin(void *dst, size_t num_bytes, uint32_t handle,
45 size_t offs);
46TEE_Result sys_set_prot(vaddr_t va, size_t num_bytes, uint32_t flags);
47
48#endif /*SYS_H*/