]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Library/PeiCoreEntryPoint.h
Code and comments have been checked with spec.
[mirror_edk2.git] / MdePkg / Include / Library / PeiCoreEntryPoint.h
CommitLineData
fb3df220 1/** @file\r
50a64e5b 2 Module entry point library for PEI core.\r
fb3df220 3\r
50a64e5b 4Copyright (c) 2006 - 2008, Intel Corporation<BR>\r
fb3df220 5All rights reserved. This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
15#ifndef __MODULE_ENTRY_POINT_H__\r
16#define __MODULE_ENTRY_POINT_H__\r
17\r
18/**\r
c7d265a9 19\r
fb3df220 20 Enrty point to PEI core.\r
21\r
c7d265a9 22 @param SecCoreData Points to a data structure containing\r
23 information about the PEI core's\r
24 operating environment, such as the size\r
25 and location of temporary RAM, the stack\r
26 location and the BFV location. The type\r
27 EFI_SEC_PEI_HAND_OFF is\r
28\r
29 @param PpiList Points to a list of one or more PPI\r
30 descriptors to be installed initially by\r
31 the PEI core. An empty PPI list consists\r
32 of a single descriptor with the end-tag\r
33 EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST.\r
34 As part of its initialization phase, the\r
35 PEI Foundation will add these SEC-hosted\r
36 PPIs to its PPI database such that both\r
37 the PEI Foundation and any modules can\r
38 leverage the associated service calls\r
39 and/or code in these early PPIs.\r
fb3df220 40\r
41**/\r
c7d265a9 42VOID\r
43EFIAPI \r
44_ModuleEntryPoint(\r
fb3df220 45 IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData,\r
46 IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList\r
2278f5f3 47 );\r
fb3df220 48\r
49/**\r
6d728ea8 50 Required by the EBC compiler and identical in functionality to _ModuleEntryPoint().\r
51\r
52 This function is required to call _ModuleEntryPoint() passing in SecCoreData and PpiList.\r
fb3df220 53\r
1646bcd5 54 @param SecCoreData Points to a data structure containing\r
55 information about the PEI core's\r
56 operating environment, such as the size\r
57 and location of temporary RAM, the stack\r
58 location and the BFV location. The type\r
59 EFI_SEC_PEI_HAND_OFF is\r
60\r
61 @param PpiList Points to a list of one or more PPI\r
62 descriptors to be installed initially by\r
63 the PEI core. An empty PPI list consists\r
64 of a single descriptor with the end-tag\r
65 EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST.\r
66 As part of its initialization phase, the\r
67 PEI Foundation will add these SEC-hosted\r
68 PPIs to its PPI database such that both\r
69 the PEI Foundation and any modules can\r
70 leverage the associated service calls\r
71 and/or code in these early PPIs.\r
fb3df220 72 \r
73 @return Status returned by entry points of core and drivers. \r
74\r
75**/\r
c7d265a9 76VOID\r
fb3df220 77EFIAPI\r
78EfiMain (\r
79 IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData,\r
80 IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList\r
81 );\r
82\r
83/**\r
6d728ea8 84 Autogenerated function that calls the library constructors for all of the module's\r
85 dependent libraries.\r
86\r
87 This function must be called by the PEI Core once an initial PEI Services Table has\r
88 been established.\r
fb3df220 89\r
fc652b86 90 @param FileHandle Handle of the file being invoked. \r
91 Type EFI_PEI_FILE_HANDLE is defined in FfsFindNextFile().\r
fb3df220 92 @param PeiServices Pointer to the PEI Services Table.\r
93\r
94**/\r
95VOID\r
96EFIAPI\r
97ProcessLibraryConstructorList (\r
0308e20d 98 IN EFI_PEI_FILE_HANDLE FileHandle,\r
99 IN CONST EFI_PEI_SERVICES **PeiServices\r
fb3df220 100 );\r
101\r
102\r
103/**\r
6d728ea8 104 Autogenerated function that calls a set of module entry points.\r
105\r
106 This function must be called by _ModuleEntryPoint().\r
fb3df220 107\r
1646bcd5 108 @param SecCoreData Points to a data structure containing\r
109 information about the PEI core's\r
110 operating environment, such as the size\r
111 and location of temporary RAM, the stack\r
112 location and the BFV location. The type\r
113 EFI_SEC_PEI_HAND_OFF is\r
114\r
115 @param PpiList Points to a list of one or more PPI\r
116 descriptors to be installed initially by\r
117 the PEI core. An empty PPI list consists\r
118 of a single descriptor with the end-tag\r
119 EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST.\r
120 As part of its initialization phase, the\r
121 PEI Foundation will add these SEC-hosted\r
122 PPIs to its PPI database such that both\r
123 the PEI Foundation and any modules can\r
124 leverage the associated service calls\r
125 and/or code in these early PPIs.\r
126 @param OldCoreData Pointer to Original startup information.\r
fb3df220 127\r
fb3df220 128**/\r
c7d265a9 129VOID\r
fb3df220 130EFIAPI\r
131ProcessModuleEntryPointList (\r
132 IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData,\r
133 IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList,\r
134 IN VOID *OldCoreData\r
135 );\r
136\r
137#endif\r