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 - 2010, Intel Corporation. All rights reserved.<BR> 7 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 Clear APM SMI Status Bit; Set the EOS bit. 82 83 **/ 84 VOID 85 EFIAPI 86 ClearSmi ( 87 VOID 88 ); 89 #endif 90