xref: /optee_os/ldelf/sys.h (revision 5b25c76ac40f830867e3d60800120ffd7874e8dc)
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