]>
Commit | Line | Data |
---|---|---|
797a9d67 | 1 | /**@file\r |
2 | \r | |
3 | Copyright (c) 2006, Intel Corporation \r | |
4 | All rights reserved. This program and the accompanying materials \r | |
5 | are licensed and made available under the terms and conditions of the BSD License \r | |
6 | which accompanies this distribution. The full text of the license may be found at \r | |
7 | http://opensource.org/licenses/bsd-license.php \r | |
8 | \r | |
9 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r | |
10 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r | |
11 | \r | |
12 | Module Name:\r | |
13 | \r | |
14 | SectionExtraction.c\r | |
15 | \r | |
16 | Abstract:\r | |
17 | \r | |
18 | Section Extraction Protocol implementation.\r | |
19 | \r | |
20 | Stream database is implemented as a linked list of section streams,\r | |
21 | where each stream contains a linked list of children, which may be leaves or\r | |
22 | encapsulations. \r | |
23 | \r | |
24 | Children that are encapsulations generate new stream entries\r | |
25 | when they are created. Streams can also be created by calls to \r | |
26 | SEP->OpenSectionStream().\r | |
27 | \r | |
28 | The database is only created far enough to return the requested data from\r | |
29 | any given stream, or to determine that the requested data is not found.\r | |
30 | \r | |
31 | If a GUIDed encapsulation is encountered, there are three possiblilites.\r | |
32 | \r | |
33 | 1) A support protocol is found, in which the stream is simply processed with\r | |
34 | the support protocol.\r | |
35 | \r | |
36 | 2) A support protocol is not found, but the data is available to be read\r | |
37 | without processing. In this case, the database is built up through the\r | |
38 | recursions to return the data, and a RPN event is set that will enable\r | |
39 | the stream in question to be refreshed if and when the required section\r | |
40 | extraction protocol is published.This insures the AuthenticationStatus \r | |
41 | does not become stale in the cache.\r | |
42 | \r | |
43 | 3) A support protocol is not found, and the data is not available to be read\r | |
44 | without it. This results in EFI_PROTOCOL_ERROR.\r | |
45 | \r | |
46 | **/\r | |
47 | \r | |
48 | #ifndef _SECION_EXTRACTION_H_\r | |
49 | #define _SECION_EXTRACTION_H_\r | |
50 | \r | |
51 | #include <FrameworkDxe.h>\r | |
52 | \r | |
53 | #include <Protocol/SectionExtraction.h>\r | |
54 | \r | |
55 | #include <Library/BaseLib.h>\r | |
56 | #include <Library/DebugLib.h>\r | |
57 | #include <Library/UefiLib.h>\r | |
58 | #include <Library/UefiBootServicesTableLib.h>\r | |
59 | #include <Library/MemoryAllocationLib.h>\r | |
60 | #include <Library/BaseMemoryLib.h>\r | |
61 | #include <Protocol/Decompress.h>\r | |
62 | #include <Protocol/GuidedSectionExtraction.h>\r | |
63 | \r | |
64 | #endif // _SECTION_EXTRACTION_H_\r |