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