]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Include/Library/ArmMonitorLib.h
ArmPkg/ArmMonitorLib: Definition for ArmMonitorLib library class
[mirror_edk2.git] / ArmPkg / Include / Library / ArmMonitorLib.h
CommitLineData
9a50990c
PG
1/** @file\r
2\r
3 Copyright (c) 2022, Arm Limited. All rights reserved.<BR>\r
4\r
5 SPDX-License-Identifier: BSD-2-Clause-Patent\r
6\r
7**/\r
8\r
9#ifndef ARM_MONITOR_LIB_H_\r
10#define ARM_MONITOR_LIB_H_\r
11\r
12/** The size of the SMC arguments is different between AArch64 and AArch32.\r
13\r
14 The native size is used for the arguments.\r
15 It will be casted to either HVC or SMC args.\r
16*/\r
17typedef struct {\r
18 UINTN Arg0;\r
19 UINTN Arg1;\r
20 UINTN Arg2;\r
21 UINTN Arg3;\r
22 UINTN Arg4;\r
23 UINTN Arg5;\r
24 UINTN Arg6;\r
25 UINTN Arg7;\r
26} ARM_MONITOR_ARGS;\r
27\r
28/** Monitor call.\r
29\r
30 An HyperVisor Call (HVC) or System Monitor Call (SMC) will be issued\r
31 depending on the default conduit. PcdMonitorConduitHvc determines the type\r
32 of the call: if true, do an HVC.\r
33\r
34 @param [in,out] Args Arguments for the HVC/SMC.\r
35**/\r
36VOID\r
37EFIAPI\r
38ArmMonitorCall (\r
39 IN OUT ARM_MONITOR_ARGS *Args\r
40 );\r
41\r
42#endif // ARM_MONITOR_LIB_H_\r