]>
git.proxmox.com Git - mirror_edk2.git/blob - ArmPkg/Include/Library/ArmSmcLib.h
3 * Copyright (c) 2021, NUVIA Inc. All rights reserved.<BR>
4 * Copyright (c) 2012-2014, ARM Limited. All rights reserved.
6 * SPDX-License-Identifier: BSD-2-Clause-Patent
10 #ifndef ARM_SMC_LIB_H_
11 #define ARM_SMC_LIB_H_
14 * The size of the SMC arguments are different between AArch64 and AArch32.
15 * The native size is used for the arguments.
31 SMC calls can take up to 7 arguments and return up to 4 return values.
32 Therefore, the 4 first fields in the ARM_SMC_ARGS structure are used
33 for both input and output values.
38 IN OUT ARM_SMC_ARGS
*Args
41 /** Trigger an SMC call with 3 arguments.
43 @param Function The SMC function.
44 @param Arg1 Argument/result.
45 @param Arg2 Argument/result.
46 @param Arg3 Argument/result.
48 @return The SMC error code.
54 IN OUT UINTN
*Arg1 OPTIONAL
,
55 IN OUT UINTN
*Arg2 OPTIONAL
,
56 IN OUT UINTN
*Arg3 OPTIONAL
59 /** Trigger an SMC call with 2 arguments.
61 @param Function The SMC function.
62 @param Arg1 Argument/result.
63 @param Arg2 Argument/result.
66 @return The SMC error code.
72 IN OUT UINTN
*Arg1 OPTIONAL
,
73 IN OUT UINTN
*Arg2 OPTIONAL
,
74 OUT UINTN
*Arg3 OPTIONAL
77 /** Trigger an SMC call with 1 argument.
79 @param Function The SMC function.
80 @param Arg1 Argument/result.
84 @return The SMC error code.
90 IN OUT UINTN
*Arg1 OPTIONAL
,
91 OUT UINTN
*Arg2 OPTIONAL
,
92 OUT UINTN
*Arg3 OPTIONAL
95 /** Trigger an SMC call with 0 arguments.
97 @param Function The SMC function.
102 @return The SMC error code.
108 OUT UINTN
*Arg1 OPTIONAL
,
109 OUT UINTN
*Arg2 OPTIONAL
,
110 OUT UINTN
*Arg3 OPTIONAL
113 #endif // ARM_SMC_LIB_H_