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