2 * Copyright (c) 2015, Linaro Limited
4 * SPDX-License-Identifier: GPL-2.0
6 #include <linux/linkage.h>
8 #include <asm/opcodes-sec.h>
9 #include <asm/opcodes-virt.h>
13 * Wrap c macros in asm macros to delay expansion until after the
14 * SMCCC asm macro is expanded.
28 UNWIND( .save {r4-r7})
32 ldr r12, [sp, #(4 * 4)]
39 * void smccc_smc(unsigned long a0, unsigned long a1, unsigned long a2,
40 * unsigned long a3, unsigned long a4, unsigned long a5,
41 * unsigned long a6, unsigned long a7, struct arm_smccc_res *res,
42 * struct arm_smccc_quirk *quirk)
44 ENTRY(__arm_smccc_smc)
46 ENDPROC(__arm_smccc_smc)
49 * void smccc_hvc(unsigned long a0, unsigned long a1, unsigned long a2,
50 * unsigned long a3, unsigned long a4, unsigned long a5,
51 * unsigned long a6, unsigned long a7, struct arm_smccc_res *res,
52 * struct arm_smccc_quirk *quirk)
54 ENTRY(__arm_smccc_hvc)
56 ENDPROC(__arm_smccc_hvc)