xref: /optee_os/core/include/kernel/ldelf_syscalls.h (revision d50fee0321fe6853ac6352cf0fd548666457b407)
1cbe7e1b8SBalint Dobszay /* SPDX-License-Identifier: BSD-2-Clause */
2cbe7e1b8SBalint Dobszay /*
3cbe7e1b8SBalint Dobszay  * Copyright (c) 2018-2019, Linaro Limited
4cbe7e1b8SBalint Dobszay  * Copyright (c) 2020, Arm Limited
5cbe7e1b8SBalint Dobszay  */
6cbe7e1b8SBalint Dobszay 
7cbe7e1b8SBalint Dobszay #include <kernel/handle.h>
8cbe7e1b8SBalint Dobszay #include <kernel/ts_store.h>
9cbe7e1b8SBalint Dobszay #include <kernel/user_mode_ctx_struct.h>
10cbe7e1b8SBalint Dobszay #include <tee_api_defines.h>
11cbe7e1b8SBalint Dobszay #include <tee_api_types.h>
12cbe7e1b8SBalint Dobszay #include <types_ext.h>
13cbe7e1b8SBalint Dobszay 
14*d50fee03SEtienne Carriere #ifndef __KERNEL_LDELF_SYSCALLS_H
15*d50fee03SEtienne Carriere #define __KERNEL_LDELF_SYSCALLS_H
16cbe7e1b8SBalint Dobszay 
17cbe7e1b8SBalint Dobszay struct system_ctx {
18cbe7e1b8SBalint Dobszay 	struct handle_db db;
19cbe7e1b8SBalint Dobszay 	const struct ts_store_ops *store_op;
20cbe7e1b8SBalint Dobszay };
21cbe7e1b8SBalint Dobszay 
22baa5161dSBalint Dobszay TEE_Result ldelf_syscall_map_zi(vaddr_t *va, size_t num_bytes, size_t pad_begin,
23baa5161dSBalint Dobszay 				size_t pad_end, unsigned long flags);
24baa5161dSBalint Dobszay TEE_Result ldelf_syscall_unmap(vaddr_t va, size_t num_bytes);
25baa5161dSBalint Dobszay TEE_Result ldelf_syscall_open_bin(const TEE_UUID *uuid, size_t uuid_size,
26baa5161dSBalint Dobszay 				  uint32_t *handle);
27baa5161dSBalint Dobszay TEE_Result ldelf_syscall_close_bin(unsigned long handle);
28baa5161dSBalint Dobszay TEE_Result ldelf_syscall_map_bin(vaddr_t *va, size_t num_bytes,
29baa5161dSBalint Dobszay 				 unsigned long handle, size_t offs_bytes,
30baa5161dSBalint Dobszay 				 size_t pad_begin, size_t pad_end,
31baa5161dSBalint Dobszay 				 unsigned long flags);
32baa5161dSBalint Dobszay TEE_Result ldelf_syscall_copy_from_bin(void *dst, size_t offs, size_t num_bytes,
33baa5161dSBalint Dobszay 				       unsigned long handle);
34baa5161dSBalint Dobszay TEE_Result ldelf_syscall_set_prot(unsigned long va, size_t num_bytes,
35baa5161dSBalint Dobszay 				  unsigned long flags);
36baa5161dSBalint Dobszay TEE_Result ldelf_syscall_remap(unsigned long old_va, vaddr_t *new_va,
37baa5161dSBalint Dobszay 			       size_t num_bytes, size_t pad_begin,
38baa5161dSBalint Dobszay 			       size_t pad_end);
39baa5161dSBalint Dobszay TEE_Result ldelf_syscall_gen_rnd_num(void *buf, size_t num_bytes);
40baa5161dSBalint Dobszay void ldelf_sess_cleanup(struct ts_session *sess);
41cbe7e1b8SBalint Dobszay 
42*d50fee03SEtienne Carriere #endif /* __KERNEL_LDELF_SYSCALLS_H */
43