xref: /optee_os/ldelf/syscalls_a64.S (revision baa5161d50da0b430760fa9e2180496c2806f839)
1*baa5161dSBalint Dobszay/* SPDX-License-Identifier: BSD-2-Clause */
2*baa5161dSBalint Dobszay/*
3*baa5161dSBalint Dobszay * Copyright (c) 2015, Linaro Limited
4*baa5161dSBalint Dobszay * Copyright (c) 2020, Arm Limited
5*baa5161dSBalint Dobszay */
6*baa5161dSBalint Dobszay
7*baa5161dSBalint Dobszay#include <asm.S>
8*baa5161dSBalint Dobszay
9*baa5161dSBalint Dobszay	.section .text
10*baa5161dSBalint Dobszay
11*baa5161dSBalint Dobszay	.macro LDELF_SYSCALL name, scn, num_args
12*baa5161dSBalint Dobszay	FUNC \name , :
13*baa5161dSBalint Dobszay
14*baa5161dSBalint Dobszay	.if \num_args > 8
15*baa5161dSBalint Dobszay	.error "Too many arguments for syscall"
16*baa5161dSBalint Dobszay	.endif
17*baa5161dSBalint Dobszay
18*baa5161dSBalint Dobszay	mov	x8, #(\scn)
19*baa5161dSBalint Dobszay	svc	#0
20*baa5161dSBalint Dobszay	ret
21*baa5161dSBalint Dobszay	END_FUNC \name
22*baa5161dSBalint Dobszay	.endm
23*baa5161dSBalint Dobszay
24*baa5161dSBalint Dobszay	FUNC _ldelf_panic, :
25*baa5161dSBalint Dobszay	stp	x29, x30, [sp, #-16]!
26*baa5161dSBalint Dobszay	mov	x1, sp
27*baa5161dSBalint Dobszay	bl	__ldelf_panic
28*baa5161dSBalint Dobszay	/* Not reached */
29*baa5161dSBalint Dobszay	END_FUNC _ldelf_panic
30*baa5161dSBalint Dobszay
31*baa5161dSBalint Dobszay#include "syscalls_asm.S"
32