• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*++
2 
3 Copyright (c) 2004 - 2006, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution.  The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8 
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 
12 Module Name:
13 
14   PeiBind.h
15 
16 Abstract:
17 
18   Tiano PEI core and PEIM binding macros
19 
20 --*/
21 
22 #ifndef _PEI_BIND_H_
23 #define _PEI_BIND_H_
24 
25 #ifdef EFI_DEBUG
26 
27 #ifdef EFI_NT_EMULATOR
28 
29 #if (PI_SPECIFICATION_VERSION < 0x00010000)
30 
31 #define EFI_PEI_CORE_ENTRY_POINT(InitFunction)                \
32           UINTN                                               \
33           __stdcall                                           \
34           _DllMainCRTStartup (                                \
35               UINTN    Inst,                                  \
36               UINTN    reason_for_call,                       \
37               VOID    *rserved                                \
38               )                                               \
39           {                                                   \
40               return 1;                                       \
41           }                                                   \
42                                                               \
43           EFI_STATUS                                          \
44           __declspec( dllexport  )                            \
45           __cdecl                                             \
46           InitializeDriver (                                  \
47             IN EFI_PEI_STARTUP_DESCRIPTOR *PeiStartup         \
48               )                                               \
49           {                                                   \
50               return InitFunction(PeiStartup);                \
51           }
52 
53 #else
54 #define EFI_PEI_CORE_ENTRY_POINT(InitFunction)                \
55           UINTN                                               \
56           __stdcall                                           \
57           _DllMainCRTStartup (                                \
58               UINTN    Inst,                                  \
59               UINTN    reason_for_call,                       \
60               VOID    *rserved                                \
61               )                                               \
62           {                                                   \
63               return 1;                                       \
64           }                                                   \
65                                                               \
66           EFI_STATUS                                          \
67           __declspec( dllexport  )                            \
68           __cdecl                                             \
69           InitializeDriver (                                  \
70             IN CONST EFI_SEC_PEI_HAND_OFF   *SecCoreData,    \
71             IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList         \
72               )                                               \
73           {                                                   \
74               return InitFunction(SecCoreData, PpiList);      \
75           }
76 
77 #endif
78 
79 #define EFI_PEIM_ENTRY_POINT(InitFunction)                    \
80           UINTN                                               \
81           __stdcall                                           \
82           _DllMainCRTStartup (                                \
83               UINTN    Inst,                                  \
84               UINTN    reason_for_call,                       \
85               VOID    *rserved                                \
86               )                                               \
87           {                                                   \
88               return 1;                                       \
89           }                                                   \
90                                                               \
91           EFI_STATUS                                          \
92           __declspec( dllexport  )                            \
93           __cdecl                                             \
94           InitializeDriver (                                  \
95               IN EFI_FFS_FILE_HEADER       *FfsHeader,        \
96               IN EFI_PEI_SERVICES          **PeiServices      \
97               )                                               \
98           {                                                   \
99               return InitFunction(FfsHeader, PeiServices);    \
100           }
101 
102 #else
103 
104 #define EFI_PEI_CORE_ENTRY_POINT(InitFunction)
105 #define EFI_PEIM_ENTRY_POINT(InitFunction)
106 
107 #endif
108 
109 #else
110 
111 #ifdef EFI_NT_EMULATOR
112 
113 #if (PI_SPECIFICATION_VERSION < 0x00010000)
114 
115 #define EFI_PEI_CORE_ENTRY_POINT(InitFunction)                \
116           EFI_STATUS                                          \
117           __declspec( dllexport  )                            \
118           __cdecl                                             \
119           InitializeDriver (                                  \
120             IN EFI_PEI_STARTUP_DESCRIPTOR *PeiStartup         \
121               )                                               \
122           {                                                   \
123               return InitFunction(PeiStartup);                \
124           }
125 
126 #else
127 #define EFI_PEI_CORE_ENTRY_POINT(InitFunction)                \
128           EFI_STATUS                                          \
129           __declspec( dllexport  )                            \
130           __cdecl                                             \
131           InitializeDriver (                                  \
132             IN CONST EFI_SEC_PEI_HAND_OFF   *SecCoreData,    \
133             IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList         \
134             )                                               \
135           {                                                   \
136               return InitFunction(SecCoreData, PpiList);     \
137           }
138 
139 #endif
140 
141 
142 #define EFI_PEIM_ENTRY_POINT(InitFunction)                    \
143           EFI_STATUS                                          \
144           __declspec( dllexport  )                            \
145           __cdecl                                             \
146           InitializeDriver (                                  \
147               IN EFI_FFS_FILE_HEADER       *FfsHeader,        \
148               IN EFI_PEI_SERVICES          **PeiServices      \
149               )                                               \
150           {                                                   \
151               return InitFunction(FfsHeader, PeiServices);    \
152           }
153 #else
154 
155 #define EFI_PEI_CORE_ENTRY_POINT(InitFunction)
156 #define EFI_PEIM_ENTRY_POINT(InitFunction)
157 
158 #endif
159 #endif
160 #endif
161