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