]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Include/Library/ArmSvcLib.h
ArmPkg/ArmSvcLib: Return x4-x7 in output parameters
[mirror_edk2.git] / ArmPkg / Include / Library / ArmSvcLib.h
CommitLineData
4d163696
SV
1/** @file\r
2*\r
3* Copyright (c) 2016 - 2017, ARM Limited. All rights reserved.\r
4*\r
4059386c 5* SPDX-License-Identifier: BSD-2-Clause-Patent\r
4d163696
SV
6*\r
7**/\r
8\r
9#ifndef __ARM_SVC_LIB__\r
10#define __ARM_SVC_LIB__\r
11\r
12/**\r
13 * The size of the SVC arguments are different between AArch64 and AArch32.\r
14 * The native size is used for the arguments.\r
15 */\r
16typedef struct {\r
17 UINTN Arg0;\r
18 UINTN Arg1;\r
19 UINTN Arg2;\r
20 UINTN Arg3;\r
21 UINTN Arg4;\r
22 UINTN Arg5;\r
23 UINTN Arg6;\r
24 UINTN Arg7;\r
25} ARM_SVC_ARGS;\r
26\r
27/**\r
28 Trigger an SVC call\r
29\r
af0c597e
AG
30 SVC calls can take up to 8 arguments and return up to 8 return values.\r
31 Therefore, the 8 first fields in the ARM_SVC_ARGS structure are used\r
4d163696
SV
32 for both input and output values.\r
33\r
af0c597e
AG
34 @param[in, out] Args Arguments to be passed as part of the SVC call\r
35 The return values of the SVC call are also placed\r
36 in the same structure\r
37\r
38 @retval None\r
39\r
4d163696
SV
40**/\r
41VOID\r
42ArmCallSvc (\r
43 IN OUT ARM_SVC_ARGS *Args\r
44 );\r
45\r
46#endif\r