]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Include/Library/ArmSvcLib.h
BaseTools: Replace BSD License with BSD+Patent License
[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
5* This program and the accompanying materials\r
6* are licensed and made available under the terms and conditions of the BSD License\r
7* which accompanies this distribution. The full text of the license may be found at\r
8* http://opensource.org/licenses/bsd-license.php\r
9*\r
10* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12*\r
13**/\r
14\r
15#ifndef __ARM_SVC_LIB__\r
16#define __ARM_SVC_LIB__\r
17\r
18/**\r
19 * The size of the SVC arguments are different between AArch64 and AArch32.\r
20 * The native size is used for the arguments.\r
21 */\r
22typedef struct {\r
23 UINTN Arg0;\r
24 UINTN Arg1;\r
25 UINTN Arg2;\r
26 UINTN Arg3;\r
27 UINTN Arg4;\r
28 UINTN Arg5;\r
29 UINTN Arg6;\r
30 UINTN Arg7;\r
31} ARM_SVC_ARGS;\r
32\r
33/**\r
34 Trigger an SVC call\r
35\r
36 SVC calls can take up to 7 arguments and return up to 4 return values.\r
37 Therefore, the 4 first fields in the ARM_SVC_ARGS structure are used\r
38 for both input and output values.\r
39\r
40**/\r
41VOID\r
42ArmCallSvc (\r
43 IN OUT ARM_SVC_ARGS *Args\r
44 );\r
45\r
46#endif\r