/* SPDX-License-Identifier: BSD-2-Clause */
/*
 * Copyright (c) 2019, Linaro Limited
 */

#ifndef SYS_H
#define SYS_H

#include <compiler.h>
#include <stddef.h>
#include <tee_api_types.h>
#include <trace.h>
#include <types_ext.h>
#include <utee_syscalls.h>

#if defined(CFG_TEE_CORE_DEBUG)
#define panic()    __panic(__FILE__, __LINE__, __func__)
#else
#define panic()    __panic(NULL, 0, NULL)
#endif

/* A small page is the smallest unit of memory that can be mapped */
#define SMALL_PAGE_SHIFT	12
#define SMALL_PAGE_MASK		0x00000fff
#define SMALL_PAGE_SIZE		0x00001000

void __noreturn __panic(const char *file, const int line, const char *func);
void __noreturn sys_return_cleanup(void);

#define err(res, ...) \
	do { \
		trace_printf_helper(TRACE_ERROR, true, __VA_ARGS__); \
		utee_return(res); \
	} while (0)

TEE_Result sys_map_zi(size_t num_bytes, uint32_t flags, vaddr_t *va,
		      size_t pad_begin, size_t pad_end);
TEE_Result sys_unmap(vaddr_t va, size_t num_bytes);
TEE_Result sys_open_ta_bin(const TEE_UUID *uuid, uint32_t *handle);
TEE_Result sys_close_ta_bin(uint32_t handle);
TEE_Result sys_map_ta_bin(vaddr_t *va, size_t num_bytes, uint32_t flags,
			  uint32_t handle, size_t offs, size_t pad_begin,
			  size_t pad_end);
TEE_Result sys_copy_from_ta_bin(void *dst, size_t num_bytes, uint32_t handle,
				size_t offs);
TEE_Result sys_set_prot(vaddr_t va, size_t num_bytes, uint32_t flags);
TEE_Result sys_remap(vaddr_t old_va, vaddr_t *new_va, size_t num_bytes,
		     size_t pad_begin, size_t pad_end);

#endif /*SYS_H*/
