aboutsummaryrefslogtreecommitdiff
path: root/ldelf/syscalls_a64.S
blob: 09af6827bb98858a54989896a4d4639d84671ed8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* SPDX-License-Identifier: BSD-2-Clause */
/*
 * Copyright (c) 2015, Linaro Limited
 * Copyright (c) 2020, Arm Limited
 */

#include <asm.S>

	.section .text

	.macro LDELF_SYSCALL name, scn, num_args
	FUNC \name , :

	.if \num_args > 8
	.error "Too many arguments for syscall"
	.endif

	mov	x8, #(\scn)
	svc	#0
	ret
	END_FUNC \name
	.endm

	FUNC _ldelf_panic, :
	stp	x29, x30, [sp, #-16]!
	mov	x1, sp
	bl	__ldelf_panic
	/* Not reached */
	END_FUNC _ldelf_panic

#include "syscalls_asm.S"