]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/Library/SmmLib.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdePkg / Include / Library / SmmLib.h
1 /** @file
2 Library class name: SmmLib
3
4 SMM Library Services that abstracts both S/W SMI generation and detection.
5
6 Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
7 SPDX-License-Identifier: BSD-2-Clause-Patent
8
9 **/
10
11 #ifndef __SMM_LIB_H__
12 #define __SMM_LIB_H__
13
14 /**
15 Triggers an SMI at boot time.
16
17 This function triggers a software SMM interrupt at boot time.
18
19 **/
20 VOID
21 EFIAPI
22 TriggerBootServiceSoftwareSmi (
23 VOID
24 );
25
26 /**
27 Triggers an SMI at run time.
28
29 This function triggers a software SMM interrupt at run time.
30
31 **/
32 VOID
33 EFIAPI
34 TriggerRuntimeSoftwareSmi (
35 VOID
36 );
37
38 /**
39 Test if a boot time software SMI happened.
40
41 This function tests if a software SMM interrupt happened. If a software SMM interrupt happened and
42 it was triggered at boot time, it returns TRUE. Otherwise, it returns FALSE.
43
44 @retval TRUE A software SMI triggered at boot time happened.
45 @retval FALSE No software SMI happened, or the software SMI was triggered at run time.
46
47 **/
48 BOOLEAN
49 EFIAPI
50 IsBootServiceSoftwareSmi (
51 VOID
52 );
53
54 /**
55 Test if a run time software SMI happened.
56
57 This function tests if a software SMM interrupt happened. If a software SMM interrupt happened and
58 it was triggered at run time, it returns TRUE. Otherwise, it returns FALSE.
59
60 @retval TRUE A software SMI triggered at run time happened.
61 @retval FALSE No software SMI happened or the software SMI was triggered at boot time.
62
63 **/
64 BOOLEAN
65 EFIAPI
66 IsRuntimeSoftwareSmi (
67 VOID
68 );
69
70 /**
71 Clear APM SMI Status Bit; Set the EOS bit.
72
73 **/
74 VOID
75 EFIAPI
76 ClearSmi (
77 VOID
78 );
79
80 #endif