Home | History | Annotate | Download | only in SmmAccess
      1 /*++
      2 
      3 Copyright (c) 1999 - 2006, Intel Corporation. All rights reserved.<BR>
      4 This program and the accompanying materials
      5 are licensed and made available under the terms and conditions of the BSD License
      6 which accompanies this distribution.  The full text of the license may be found at
      7 http://opensource.org/licenses/bsd-license.php
      8 
      9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     11 
     12 
     13 Module Name:
     14 
     15   SmmAccess.h
     16 
     17 Abstract:
     18 
     19   This file defines SMM SMRAM Access abstraction protocol defined
     20   by the SMM CIS.
     21 
     22 --*/
     23 
     24 #ifndef _SMM_ACCESS_H_
     25 #define _SMM_ACCESS_H_
     26 
     27 #include EFI_GUID_DEFINITION (SmramMemoryReserve)
     28 
     29 EFI_FORWARD_DECLARATION (EFI_SMM_ACCESS_PROTOCOL);
     30 
     31 #define EFI_SMM_ACCESS_PROTOCOL_GUID \
     32   { \
     33     0x3792095a, 0xe309, 0x4c1e, {0xaa, 0x01, 0x85, 0xf5, 0x65, 0x5a, 0x17, 0xf1} \
     34   }
     35 
     36 //
     37 // SMM Access specification Data Structures
     38 //
     39 typedef
     40 EFI_STATUS
     41 (EFIAPI *EFI_SMM_OPEN) (
     42   IN EFI_SMM_ACCESS_PROTOCOL         * This,
     43   UINTN                              DescriptorIndex
     44   );
     45 
     46 typedef
     47 EFI_STATUS
     48 (EFIAPI *EFI_SMM_CLOSE) (
     49   IN EFI_SMM_ACCESS_PROTOCOL          * This,
     50   UINTN                               DescriptorIndex
     51   );
     52 
     53 typedef
     54 EFI_STATUS
     55 (EFIAPI *EFI_SMM_LOCK) (
     56   IN EFI_SMM_ACCESS_PROTOCOL         * This,
     57   UINTN                              DescriptorIndex
     58   );
     59 
     60 typedef
     61 EFI_STATUS
     62 (EFIAPI *EFI_SMM_CAPABILITIES) (
     63   IN EFI_SMM_ACCESS_PROTOCOL             * This,
     64   IN OUT UINTN                           *SmramMapSize,
     65   IN OUT EFI_SMRAM_DESCRIPTOR            * SmramMap
     66   );
     67 
     68 struct _EFI_SMM_ACCESS_PROTOCOL {
     69   EFI_SMM_OPEN          Open;
     70   EFI_SMM_CLOSE         Close;
     71   EFI_SMM_LOCK          Lock;
     72   EFI_SMM_CAPABILITIES  GetCapabilities;
     73   BOOLEAN               LockState;
     74   BOOLEAN               OpenState;
     75 };
     76 
     77 extern EFI_GUID gEfiSmmAccessProtocolGuid;
     78 
     79 #endif
     80