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