b35a7ce692cf679183e1a19943483e5213074994
[mirror_edk2.git] / IntelFrameworkPkg / 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 - 2009, Intel Corporation
7 All rights reserved. This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which accompanies this distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
11
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14
15 **/
16
17 #ifndef __SMM_LIB_H__
18 #define __SMM_LIB_H__
19
20
21 /**
22 Triggers an SMI at boot time.
23
24 This function triggers a software SMM interrupt at boot time.
25
26 **/
27 VOID
28 EFIAPI
29 TriggerBootServiceSoftwareSmi (
30 VOID
31 );
32
33
34 /**
35 Triggers an SMI at run time.
36
37 This function triggers a software SMM interrupt at run time.
38
39 **/
40 VOID
41 EFIAPI
42 TriggerRuntimeSoftwareSmi (
43 VOID
44 );
45
46
47 /**
48 Test if a boot time software SMI happened.
49
50 This function tests if a software SMM interrupt happened. If a software SMM interrupt happened and
51 it was triggered at boot time, it returns TRUE. Otherwise, it returns FALSE.
52
53 @retval TRUE A software SMI triggered at boot time happened.
54 @retval FLASE No software SMI happened, or the software SMI was triggered at run time.
55
56 **/
57 BOOLEAN
58 EFIAPI
59 IsBootServiceSoftwareSmi (
60 VOID
61 );
62
63
64 /**
65 Test if a run time software SMI happened.
66
67 This function tests if a software SMM interrupt happened. If a software SMM interrupt happened and
68 it was triggered at run time, it returns TRUE. Otherwise, it returns FALSE.
69
70 @retval TRUE A software SMI triggered at run time happened.
71 @retval FLASE No software SMI happened or the software SMI was triggered at boot time.
72
73 **/
74 BOOLEAN
75 EFIAPI
76 IsRuntimeSoftwareSmi (
77 VOID
78 );
79
80 /**
81
82 Clear APM SMI Status Bit; Set the EOS bit.
83
84 **/
85
86 VOID
87 EFIAPI
88 ClearSmi (
89 VOID
90 );
91 #endif