Home | History | Annotate | Download | only in Ppi
      1 /** @file
      2   This file declares the Security Architectural PPI.
      3 
      4   This PPI is installed by a platform PEIM that abstracts the security policy to the PEI
      5   Foundation, namely the case of a PEIM's authentication state being returned during the PEI section
      6   extraction process.
      7 
      8 Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
      9 This program and the accompanying materials are licensed and made available under
     10 the terms and conditions of the BSD License that accompanies this distribution.
     11 The full text of the license may be found at
     12 http://opensource.org/licenses/bsd-license.php.
     13 
     14 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     15 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     16 
     17   @par Revision Reference:
     18   This PPI is defined in PEI CIS.
     19   Version 0.91.
     20 
     21 **/
     22 
     23 #ifndef __SECURITY_PPI_H__
     24 #define __SECURITY_PPI_H__
     25 
     26 #define EFI_PEI_SECURITY_PPI_GUID \
     27   { \
     28     0x1388066e, 0x3a57, 0x4efa, {0x98, 0xf3, 0xc1, 0x2f, 0x3a, 0x95, 0x8a, 0x29 } \
     29   }
     30 
     31 typedef struct _EFI_PEI_SECURITY_PPI  EFI_PEI_SECURITY_PPI;
     32 
     33 /**
     34   Allows the platform builder to implement a security policy in response
     35   to varying file authentication states.
     36 
     37   @param  PeiServices             The pointer to the PEI Services Table.
     38   @param  This                    Interface pointer that implements the particular
     39                                   EFI_PEI_SECURITY_PPI instance.
     40   @param  AuthenticationStatus    Status returned by the verification service as
     41                                   part of section extraction.
     42   @param  FfsFileHeader           The pointer to the file under review.
     43   @param  DeferExecution          The pointer to a variable that alerts the PEI
     44                                   Foundation to defer execution of a PEIM.
     45 
     46   @retval EFI_SUCCESS             The service performed its action successfully.
     47   @retval EFI_SECURITY_VIOLATION  The object cannot be trusted.
     48 **/
     49 typedef
     50 EFI_STATUS
     51 (EFIAPI *FRAMEWORK_EFI_PEI_SECURITY_AUTHENTICATION_STATE)(
     52   IN EFI_PEI_SERVICES             **PeiServices,
     53   IN EFI_PEI_SECURITY_PPI         *This,
     54   IN UINT32                       AuthenticationStatus,
     55   IN EFI_FFS_FILE_HEADER          *FfsFileHeader,
     56   IN OUT BOOLEAN                  *DeferExecution
     57   );
     58 
     59 //
     60 // PPI interface structure of Security PPI
     61 //
     62 struct _EFI_PEI_SECURITY_PPI {
     63   FRAMEWORK_EFI_PEI_SECURITY_AUTHENTICATION_STATE  AuthenticationState;
     64 };
     65 
     66 extern EFI_GUID gEfiPeiSecurityPpiGuid;
     67 
     68 #endif
     69