]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - IntelFrameworkPkg/Include/Ppi/SectionExtraction.h
Incorporated the bug fix in unicode file parse
[mirror_edk2.git] / IntelFrameworkPkg / Include / Ppi / SectionExtraction.h
... / ...
CommitLineData
1/** @file\r
2 This file declares Section Extraction PPI.\r
3\r
4 Copyright (c) 2006, Intel Corporation\r
5 All rights reserved. This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13 Module Name: SectionExtraction.h\r
14\r
15 @par Revision Reference:\r
16 This PPI is defined in PEI CIS.\r
17 Version 0.91.\r
18\r
19**/\r
20\r
21#ifndef __SECTION_EXTRACTION_PPI_H__\r
22#define __SECTION_EXTRACTION_PPI_H__\r
23\r
24#include <PiPei.h>\r
25\r
26#define EFI_PEI_SECTION_EXTRACTION_PPI_GUID \\r
27 { \\r
28 0x4F89E208, 0xE144, 0x4804, {0x9E, 0xC8, 0x0F, 0x89, 0x4F, 0x7E, 0x36, 0xD7 } \\r
29 }\r
30\r
31typedef struct _EFI_PEI_SECTION_EXTRACTION_PPI EFI_PEI_SECTION_EXTRACTION_PPI;\r
32\r
33//\r
34// Bit values for AuthenticationStatus\r
35//\r
36#define EFI_PEI_AUTH_STATUS_PLATFORM_OVERRIDE 0x01\r
37#define EFI_PEI_AUTH_STATUS_IMAGE_SIGNED 0x02\r
38#define EFI_PEI_AUTH_STATUS_NOT_TESTED 0x04\r
39#define EFI_PEI_AUTH_STATUS_TEST_FAILED 0x08\r
40\r
41/**\r
42 The function is used to retrieve a section from within a section file.\r
43 It will retrieve both encapsulation sections and leaf sections in their entirety,\r
44 exclusive of the section header.\r
45\r
46 @param PeiServices Pointer to the PEI Services Table.\r
47 @param This Indicates the calling context\r
48 @param SectionType Pointer to an EFI_SECTION_TYPE. If SectionType == NULL,\r
49 the contents of the entire section are returned in Buffer. If SectionType\r
50 is not NULL, only the requested section is returned.\r
51 @param SectionDefinitionGuid\r
52 Pointer to an EFI_GUID.\r
53 If SectionType == EFI_SECTION_GUID_DEFINED, SectionDefinitionGuid\r
54 indicates for which section GUID to search.\r
55 If SectionType != EFI_SECTION_GUID_DEFINED, SectionDefinitionGuid\r
56 is unused and is ignored.\r
57 @param SectionInstance If SectionType is not NULL, indicates which\r
58 instance of the requested section type to return.\r
59 @param Buffer Pointer to a pointer to a buffer in which the section\r
60 contents are returned.\r
61 @param BufferSize A pointer to a caller-allocated UINT32.On input, *BufferSize\r
62 indicates the size in bytes of the memory region pointed to by Buffer.On output,\r
63 *BufferSize contains the number of bytes required to read the section.\r
64 @param AuthenticationStatus\r
65 A pointer to a caller-allocated UINT32 in\r
66 which any metadata from encapsulating GUID-defined sections is returned.\r
67\r
68 @retval EFI_SUCCESS The section was successfully processed and the section\r
69 contents were returned in Buffer.\r
70 @retval EFI_PROTOCOL_ERROR A GUID-defined section was encountered in\r
71 the file with its EFI_GUIDED_SECTION_PROCESSING_REQUIRED bit set, but\r
72 there was no corresponding GUIDed Section Extraction Protocol in the\r
73 handle database.*Buffer is unmodified.\r
74 @retval EFI_NOT_FOUND The requested section does not exist.*Buffer is unmodified.\r
75 @retval EFI_OUT_OF_RESOURCES The system has insufficient resources to process the request.\r
76 @retval EFI_INVALID_PARAMETER The SectionStreamHandle does not exist.\r
77 @retval EFI_WARN_TOO_SMALL The size of the input buffer is insufficient to\r
78 contain the requested section. The input buffer is filled and contents are\r
79 section contents are truncated.\r
80\r
81**/\r
82typedef\r
83EFI_STATUS\r
84(EFIAPI *EFI_PEI_GET_SECTION) (\r
85 IN EFI_PEI_SERVICES **PeiServices,\r
86 IN EFI_PEI_SECTION_EXTRACTION_PPI *This,\r
87 IN EFI_SECTION_TYPE *SectionType,\r
88 IN EFI_GUID *SectionDefinitionGuid, OPTIONAL\r
89 IN UINTN SectionInstance,\r
90 IN VOID **Buffer,\r
91 IN OUT UINT32 *BufferSize,\r
92 OUT UINT32 *AuthenticationStatus\r
93 );\r
94\r
95/**\r
96 @par Ppi Description:\r
97 This PPI supports encapsulating sections, such as GUIDed sections used to\r
98 authenticate the file encapsulation of other domain-specific wrapping.\r
99\r
100 @param GetSection\r
101 Retrieves a section from within a section file.\r
102\r
103**/\r
104struct _EFI_PEI_SECTION_EXTRACTION_PPI {\r
105 EFI_PEI_GET_SECTION PeiGetSection;\r
106};\r
107\r
108extern EFI_GUID gEfiPeiSectionExtractionPpiGuid;\r
109\r
110#endif\r