2 Module entry point library for PEI core.
4 Copyright (c) 2006 - 2008, Intel Corporation<BR>
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 #ifndef __MODULE_ENTRY_POINT_H__
16 #define __MODULE_ENTRY_POINT_H__
20 Enrty point to PEI core.
22 @param SecCoreData Points to a data structure containing
23 information about the PEI core's
24 operating environment, such as the size
25 and location of temporary RAM, the stack
26 location and the BFV location. The type
27 EFI_SEC_PEI_HAND_OFF is
29 @param PpiList Points to a list of one or more PPI
30 descriptors to be installed initially by
31 the PEI core. An empty PPI list consists
32 of a single descriptor with the end-tag
33 EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST.
34 As part of its initialization phase, the
35 PEI Foundation will add these SEC-hosted
36 PPIs to its PPI database such that both
37 the PEI Foundation and any modules can
38 leverage the associated service calls
39 and/or code in these early PPIs.
45 IN CONST EFI_SEC_PEI_HAND_OFF
*SecCoreData
,
46 IN CONST EFI_PEI_PPI_DESCRIPTOR
*PpiList
50 Required by the EBC compiler and identical in functionality to _ModuleEntryPoint().
52 This function is required to call _ModuleEntryPoint() passing in SecCoreData and PpiList.
54 @param SecCoreData Points to a data structure containing
55 information about the PEI core's
56 operating environment, such as the size
57 and location of temporary RAM, the stack
58 location and the BFV location. The type
59 EFI_SEC_PEI_HAND_OFF is
61 @param PpiList Points to a list of one or more PPI
62 descriptors to be installed initially by
63 the PEI core. An empty PPI list consists
64 of a single descriptor with the end-tag
65 EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST.
66 As part of its initialization phase, the
67 PEI Foundation will add these SEC-hosted
68 PPIs to its PPI database such that both
69 the PEI Foundation and any modules can
70 leverage the associated service calls
71 and/or code in these early PPIs.
73 @return Status returned by entry points of core and drivers.
79 IN CONST EFI_SEC_PEI_HAND_OFF
*SecCoreData
,
80 IN CONST EFI_PEI_PPI_DESCRIPTOR
*PpiList
84 Autogenerated function that calls the library constructors for all of the module's
87 This function must be called by the PEI Core once an initial PEI Services Table has
90 @param FileHandle Handle of the file being invoked.
91 Type EFI_PEI_FILE_HANDLE is defined in FfsFindNextFile().
92 @param PeiServices Pointer to the PEI Services Table.
97 ProcessLibraryConstructorList (
98 IN EFI_PEI_FILE_HANDLE FileHandle
,
99 IN CONST EFI_PEI_SERVICES
**PeiServices
104 Autogenerated function that calls a set of module entry points.
106 This function must be called by _ModuleEntryPoint().
108 @param SecCoreData Points to a data structure containing
109 information about the PEI core's
110 operating environment, such as the size
111 and location of temporary RAM, the stack
112 location and the BFV location. The type
113 EFI_SEC_PEI_HAND_OFF is
115 @param PpiList Points to a list of one or more PPI
116 descriptors to be installed initially by
117 the PEI core. An empty PPI list consists
118 of a single descriptor with the end-tag
119 EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST.
120 As part of its initialization phase, the
121 PEI Foundation will add these SEC-hosted
122 PPIs to its PPI database such that both
123 the PEI Foundation and any modules can
124 leverage the associated service calls
125 and/or code in these early PPIs.
126 @param OldCoreData Pointer to Original startup information.
131 ProcessModuleEntryPointList (
132 IN CONST EFI_SEC_PEI_HAND_OFF
*SecCoreData
,
133 IN CONST EFI_PEI_PPI_DESCRIPTOR
*PpiList
,