Home | History | Annotate | Download | only in Library
      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