]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/Library/PeiCoreEntryPoint.h
4d38468685ae14c8b95c872856d0d305a845d5e5
[mirror_edk2.git] / MdePkg / Include / Library / PeiCoreEntryPoint.h
1 /** @file
2 Module entry point library for PEI core.
3
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
9
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.
12
13 **/
14
15 #ifndef __MODULE_ENTRY_POINT_H__
16 #define __MODULE_ENTRY_POINT_H__
17
18 /**
19
20 Enrty point to PEI core.
21
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
28
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.
40
41 **/
42 VOID
43 EFIAPI
44 _ModuleEntryPoint(
45 IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData,
46 IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList
47 );
48
49 /**
50 Required by the EBC compiler and identical in functionality to _ModuleEntryPoint().
51
52 This function is required to call _ModuleEntryPoint() passing in SecCoreData and PpiList.
53
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
60
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.
72
73 @return Status returned by entry points of core and drivers.
74
75 **/
76 VOID
77 EFIAPI
78 EfiMain (
79 IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData,
80 IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList
81 );
82
83 /**
84 Autogenerated function that calls the library constructors for all of the module's
85 dependent libraries.
86
87 This function must be called by the PEI Core once an initial PEI Services Table has
88 been established.
89
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.
93
94 **/
95 VOID
96 EFIAPI
97 ProcessLibraryConstructorList (
98 IN EFI_PEI_FILE_HANDLE FileHandle,
99 IN CONST EFI_PEI_SERVICES **PeiServices
100 );
101
102
103 /**
104 Autogenerated function that calls a set of module entry points.
105
106 This function must be called by _ModuleEntryPoint().
107
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
114
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.
127
128 **/
129 VOID
130 EFIAPI
131 ProcessModuleEntryPointList (
132 IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData,
133 IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList,
134 IN VOID *OldCoreData
135 );
136
137 #endif