xref: /optee_os/lib/libutee/arch/arm/utee_syscalls_a64.S (revision 0e1c6e8e35c64fde0c31a34a68ca349240604c86)
1f74a4a2bSJens Wiklander/*
2f74a4a2bSJens Wiklander * Copyright (c) 2015, Linaro Limited
3f74a4a2bSJens Wiklander * All rights reserved.
4f74a4a2bSJens Wiklander *
5f74a4a2bSJens Wiklander * Redistribution and use in source and binary forms, with or without
6f74a4a2bSJens Wiklander * modification, are permitted provided that the following conditions are met:
7f74a4a2bSJens Wiklander *
8f74a4a2bSJens Wiklander * 1. Redistributions of source code must retain the above copyright notice,
9f74a4a2bSJens Wiklander * this list of conditions and the following disclaimer.
10f74a4a2bSJens Wiklander *
11f74a4a2bSJens Wiklander * 2. Redistributions in binary form must reproduce the above copyright notice,
12f74a4a2bSJens Wiklander * this list of conditions and the following disclaimer in the documentation
13f74a4a2bSJens Wiklander * and/or other materials provided with the distribution.
14f74a4a2bSJens Wiklander *
15f74a4a2bSJens Wiklander * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16f74a4a2bSJens Wiklander * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17f74a4a2bSJens Wiklander * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18f74a4a2bSJens Wiklander * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
19f74a4a2bSJens Wiklander * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20f74a4a2bSJens Wiklander * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21f74a4a2bSJens Wiklander * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22f74a4a2bSJens Wiklander * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23f74a4a2bSJens Wiklander * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24f74a4a2bSJens Wiklander * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25f74a4a2bSJens Wiklander * POSSIBILITY OF SUCH DAMAGE.
26f74a4a2bSJens Wiklander */
27f74a4a2bSJens Wiklander
28f74a4a2bSJens Wiklander#include <tee_syscall_numbers.h>
29a0fdab65SJens Wiklander#include <asm.S>
30f74a4a2bSJens Wiklander
31f74a4a2bSJens Wiklander        .section .text
32f74a4a2bSJens Wiklander
33f74a4a2bSJens Wiklander        .macro UTEE_SYSCALL name, scn, num_args
34a0fdab65SJens Wiklander	FUNC \name , :
35f74a4a2bSJens Wiklander
36f74a4a2bSJens Wiklander	.if \num_args > TEE_SVC_MAX_ARGS || \num_args > 8
37f74a4a2bSJens Wiklander	.error "Too many arguments for syscall"
38f74a4a2bSJens Wiklander	.endif
39f74a4a2bSJens Wiklander        mov     x8, #(\scn)
40f74a4a2bSJens Wiklander        svc #0
41f74a4a2bSJens Wiklander        ret
42a0fdab65SJens Wiklander        END_FUNC \name
43f74a4a2bSJens Wiklander        .endm
44f74a4a2bSJens Wiklander
45*0e1c6e8eSJerome Forissier	FUNC utee_panic, :
46*0e1c6e8eSJerome Forissier	stp	x29, x30, [sp, #-16]!
47*0e1c6e8eSJerome Forissier	mov	x1, sp
48*0e1c6e8eSJerome Forissier	bl	__utee_panic
49*0e1c6e8eSJerome Forissier	/* Not reached */
50*0e1c6e8eSJerome Forissier	END_FUNC utee_panic
51*0e1c6e8eSJerome Forissier
52f74a4a2bSJens Wiklander#include "utee_syscalls_asm.S"
53f74a4a2bSJens Wiklander
54