Minor code enhancement.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Ppi / Security.h
1 /** @file
2 This file declares Security Architectural PPI.
3
4 This PPI is installed by some 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, Intel Corporation
9 All rights reserved. This program and the accompanying materials
10 are licensed and made available under the terms and conditions of the BSD License
11 which accompanies this distribution. 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 Pointer to the PEI Services Table.
38 @param This Interface pointer that implements the particular EFI_PEI_SECURITY_PPI instance.
39 @param AuthenticationStatus Status returned by the verification service as part of section extraction.
40 @param FfsFileHeader Pointer to the file under review.
41 @param DeferExecution Pointer to a variable that alerts the PEI Foundation to defer execution of a PEIM.
42
43 @retval EFI_SUCCESS The service performed its action successfully.
44 @retval EFI_SECURITY_VIOLATION The object cannot be trusted
45 **/
46 typedef
47 EFI_STATUS
48 (EFIAPI *FRAMEWORK_EFI_PEI_SECURITY_AUTHENTICATION_STATE)(
49 IN EFI_PEI_SERVICES **PeiServices,
50 IN EFI_PEI_SECURITY_PPI *This,
51 IN UINT32 AuthenticationStatus,
52 IN EFI_FFS_FILE_HEADER *FfsFileHeader,
53 IN OUT BOOLEAN *DeferExecution
54 );
55
56 //
57 // PPI interface structure of Security PPI
58 //
59 struct _EFI_PEI_SECURITY_PPI {
60 FRAMEWORK_EFI_PEI_SECURITY_AUTHENTICATION_STATE AuthenticationState;
61 };
62
63 extern EFI_GUID gEfiPeiSecurityPpiGuid;
64
65 #endif