summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLibInternal.h
blob: 5a26d789ad4a14e6fc92bf611b817cb620ab6725 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/** @file
  Internal library header.

  Copyright (c) Microsoft Corporation.
  SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef SMM_CORE_PERFORMANCE_LIB_INTERNAL_H_
#define SMM_CORE_PERFORMANCE_LIB_INTERNAL_H_

/**
  Registers a callback to perform library actions needed at exit boot services.

  @param[in] ExitBootServicesProtocolGuid  The protocol GUID to register the callback for.

  @retval EFI_SUCCESS The callback was registered successfully.
  @retval Others      An error occurred registering the callback.
 **/
EFI_STATUS
RegisterExitBootServicesCallback (
  IN  CONST EFI_GUID  *ExitBootServicesProtocolGuid
  );

/**
  Unregisters a callback to perform library actions needed at exit boot services.

  @param[in] ExitBootServicesProtocolGuid  The protocol GUID to unregister the callback for.

  @retval EFI_SUCCESS The callback was unregistered successfully.
  @retval Others      An error occurred unregistering the callback.
 **/
EFI_STATUS
UnregisterExitBootServicesCallback (
  IN  CONST EFI_GUID  *ExitBootServicesProtocolGuid
  );

/**
  This is the Event call back function is triggered in MM to notify the Library
  the system is entering runtime phase.

  @param[in] Protocol   Points to the protocol's unique identifier
  @param[in] Interface  Points to the interface instance
  @param[in] Handle     The handle on which the interface was installed

  @retval EFI_SUCCESS SmmAtRuntimeCallBack runs successfully
 **/
EFI_STATUS
EFIAPI
SmmPerformanceLibExitBootServicesCallback (
  IN CONST EFI_GUID  *Protocol,
  IN VOID            *Interface,
  IN EFI_HANDLE      Handle
  );

#endif // SMM_CORE_PERFORMANCE_LIB_INTERNAL_H_