1 /** @file
2   Private header with declarations and definitions specific to the MM Standalone
3   CPU driver
4 
5   Copyright (c) 2017 - 2018, ARM Limited. All rights reserved.
6   SPDX-License-Identifier: BSD-2-Clause-Patent
7 
8 **/
9 
10 #ifndef _ARM_TF_CPU_DRIVER_H_
11 #define _ARM_TF_CPU_DRIVER_H_
12 
13 #include <Protocol/MmCommunication.h>
14 #include <Protocol/MmConfiguration.h>
15 #include <Protocol/MmCpu.h>
16 #include <Guid/MpInformation.h>
17 
18 //
19 // CPU driver initialization specific declarations
20 //
21 extern EFI_MM_SYSTEM_TABLE *mMmst;
22 
23 //
24 // CPU State Save protocol specific declarations
25 //
26 extern EFI_MM_CPU_PROTOCOL mMmCpuState;
27 
28 //
29 // MM event handling specific declarations
30 //
31 extern EFI_MM_COMMUNICATE_HEADER    **PerCpuGuidedEventContext;
32 extern EFI_MMRAM_DESCRIPTOR          mNsCommBuffer;
33 extern MP_INFORMATION_HOB_DATA       *mMpInformationHobData;
34 extern EFI_MM_CONFIGURATION_PROTOCOL mMmConfig;
35 
36 EFI_STATUS
37 PiMmStandaloneArmTfCpuDriverEntry (
38   IN UINTN EventId,
39   IN UINTN CpuNumber,
40   IN UINTN NsCommBufferAddr
41   );
42 
43 EFI_STATUS
44 EFIAPI
45 PiMmCpuTpFwRootMmiHandler (
46   IN     EFI_HANDLE               DispatchHandle,
47   IN     CONST VOID               *Context,        OPTIONAL
48   IN OUT VOID                     *CommBuffer,     OPTIONAL
49   IN OUT UINTN                    *CommBufferSize  OPTIONAL
50   );
51 
52 #endif
53