1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (c) 2015, Linaro Limited
5 #include <linux/linkage.h>
7 #include <asm/opcodes-sec.h>
8 #include <asm/opcodes-virt.h>
9 #include <asm/unwind.h>
12 * Wrap c macros in asm macros to delay expansion until after the
13 * SMCCC asm macro is expanded.
27 UNWIND( .save {r4-r7})
31 ldr r12, [sp, #(4 * 4)]
38 * void smccc_smc(unsigned long a0, unsigned long a1, unsigned long a2,
39 * unsigned long a3, unsigned long a4, unsigned long a5,
40 * unsigned long a6, unsigned long a7, struct arm_smccc_res *res,
41 * struct arm_smccc_quirk *quirk)
43 ENTRY(__arm_smccc_smc)
45 ENDPROC(__arm_smccc_smc)
48 * void smccc_hvc(unsigned long a0, unsigned long a1, unsigned long a2,
49 * unsigned long a3, unsigned long a4, unsigned long a5,
50 * unsigned long a6, unsigned long a7, struct arm_smccc_res *res,
51 * struct arm_smccc_quirk *quirk)
53 ENTRY(__arm_smccc_hvc)
55 ENDPROC(__arm_smccc_hvc)