123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /** @file
- Copyright (c) 2022, Arm Limited. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #ifndef ARM_MONITOR_LIB_H_
- #define ARM_MONITOR_LIB_H_
- /** The size of the SMC arguments is different between AArch64 and AArch32.
- The native size is used for the arguments.
- It will be casted to either HVC or SMC args.
- */
- typedef struct {
- UINTN Arg0;
- UINTN Arg1;
- UINTN Arg2;
- UINTN Arg3;
- UINTN Arg4;
- UINTN Arg5;
- UINTN Arg6;
- UINTN Arg7;
- } ARM_MONITOR_ARGS;
- /** Monitor call.
- An HyperVisor Call (HVC) or System Monitor Call (SMC) will be issued
- depending on the default conduit. PcdMonitorConduitHvc determines the type
- of the call: if true, do an HVC.
- @param [in,out] Args Arguments for the HVC/SMC.
- **/
- VOID
- EFIAPI
- ArmMonitorCall (
- IN OUT ARM_MONITOR_ARGS *Args
- );
- #endif // ARM_MONITOR_LIB_H_
|