]>
Commit | Line | Data |
---|---|---|
14457459 JW |
1 | /* |
2 | * Copyright (c) 2015, Linaro Limited | |
3 | * | |
4 | * This program is free software; you can redistribute it and/or modify | |
5 | * it under the terms of the GNU General Public License Version 2 as | |
6 | * published by the Free Software Foundation. | |
7 | * | |
8 | * This program is distributed in the hope that it will be useful, | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 | * GNU General Public License for more details. | |
12 | * | |
13 | */ | |
14 | #include <linux/linkage.h> | |
15 | #include <asm/asm-offsets.h> | |
16 | ||
17 | .macro SMCCC instr | |
18 | .cfi_startproc | |
19 | \instr #0 | |
20 | ldr x4, [sp] | |
21 | stp x0, x1, [x4, #ARM_SMCCC_RES_X0_OFFS] | |
22 | stp x2, x3, [x4, #ARM_SMCCC_RES_X2_OFFS] | |
23 | ret | |
24 | .cfi_endproc | |
25 | .endm | |
26 | ||
27 | /* | |
28 | * void arm_smccc_smc(unsigned long a0, unsigned long a1, unsigned long a2, | |
29 | * unsigned long a3, unsigned long a4, unsigned long a5, | |
8d54e740 AG |
30 | * unsigned long a6, unsigned long a7, struct arm_smccc_res *res, |
31 | * struct arm_smccc_quirk *quirk) | |
14457459 | 32 | */ |
8d54e740 | 33 | ENTRY(__arm_smccc_smc) |
14457459 | 34 | SMCCC smc |
8d54e740 | 35 | ENDPROC(__arm_smccc_smc) |
14457459 JW |
36 | |
37 | /* | |
38 | * void arm_smccc_hvc(unsigned long a0, unsigned long a1, unsigned long a2, | |
39 | * unsigned long a3, unsigned long a4, unsigned long a5, | |
8d54e740 AG |
40 | * unsigned long a6, unsigned long a7, struct arm_smccc_res *res, |
41 | * struct arm_smccc_quirk *quirk) | |
14457459 | 42 | */ |
8d54e740 | 43 | ENTRY(__arm_smccc_hvc) |
14457459 | 44 | SMCCC hvc |
8d54e740 | 45 | ENDPROC(__arm_smccc_hvc) |