xref: /optee_os/lib/libutee/arch/riscv/utee_syscalls_rv.S (revision 2f18fc503e5aefbd62d209452cf698c525877486)
1*2f18fc50Sliushiwei/* SPDX-License-Identifier: BSD-2-Clause */
2*2f18fc50Sliushiwei/*
3*2f18fc50Sliushiwei * Copyright  2022  Beijing ESWIN Computing Technology Co., Ltd.
4*2f18fc50Sliushiwei */
5*2f18fc50Sliushiwei
6*2f18fc50Sliushiwei#include <tee_syscall_numbers.h>
7*2f18fc50Sliushiwei#include <asm.S>
8*2f18fc50Sliushiwei
9*2f18fc50Sliushiwei        .section .text
10*2f18fc50Sliushiwei
11*2f18fc50Sliushiwei        .macro UTEE_SYSCALL name, scn, num_args
12*2f18fc50Sliushiwei	FUNC \name , :
13*2f18fc50Sliushiwei
14*2f18fc50Sliushiwei	.if \num_args > TEE_SVC_MAX_ARGS || \num_args > 8
15*2f18fc50Sliushiwei	.error "Too many arguments for syscall"
16*2f18fc50Sliushiwei	.endif
17*2f18fc50Sliushiwei	li	t0, \scn
18*2f18fc50Sliushiwei	li	t1, \num_args
19*2f18fc50Sliushiwei	ecall
20*2f18fc50Sliushiwei	ret
21*2f18fc50Sliushiwei	END_FUNC \name
22*2f18fc50Sliushiwei	.endm
23*2f18fc50Sliushiwei
24*2f18fc50Sliushiwei	FUNC _utee_panic, :
25*2f18fc50Sliushiwei	j	__utee_panic
26*2f18fc50Sliushiwei	END_FUNC _utee_panic
27*2f18fc50Sliushiwei
28*2f18fc50Sliushiwei#include <utee_syscalls_asm.S>
29