diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /EDK/Foundation/Include/Pei/PeiBind.h | |
download | zprj-b7c51c9cf4864df6aabb99a1ae843becd577237c.tar.xz |
Diffstat (limited to 'EDK/Foundation/Include/Pei/PeiBind.h')
-rw-r--r-- | EDK/Foundation/Include/Pei/PeiBind.h | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/EDK/Foundation/Include/Pei/PeiBind.h b/EDK/Foundation/Include/Pei/PeiBind.h new file mode 100644 index 0000000..5452865 --- /dev/null +++ b/EDK/Foundation/Include/Pei/PeiBind.h @@ -0,0 +1,162 @@ +/*++ + +Copyright (c) 2004 - 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + PeiBind.h + +Abstract: + + Tiano PEI core and PEIM binding macros + +--*/ + +#ifndef _PEI_BIND_H_ +#define _PEI_BIND_H_ + +#ifdef EFI_DEBUG + +#ifdef EFI_NT_EMULATOR + +//;;## ...AMI_OVERRIDE... Support PI1.x +#if (PI_SPECIFICATION_VERSION < 0x00010000) + +#define EFI_PEI_CORE_ENTRY_POINT(InitFunction) \ + UINTN \ + __stdcall \ + _DllMainCRTStartup ( \ + UINTN Inst, \ + UINTN reason_for_call, \ + VOID *rserved \ + ) \ + { \ + return 1; \ + } \ + \ + EFI_STATUS \ + __declspec( dllexport ) \ + __cdecl \ + InitializeDriver ( \ + IN EFI_PEI_STARTUP_DESCRIPTOR *PeiStartup \ + ) \ + { \ + return InitFunction(PeiStartup); \ + } + +#else +#define EFI_PEI_CORE_ENTRY_POINT(InitFunction) \ + UINTN \ + __stdcall \ + _DllMainCRTStartup ( \ + UINTN Inst, \ + UINTN reason_for_call, \ + VOID *rserved \ + ) \ + { \ + return 1; \ + } \ + \ + EFI_STATUS \ + __declspec( dllexport ) \ + __cdecl \ + InitializeDriver ( \ + IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData, \ + IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList \ + ) \ + { \ + return InitFunction(SecCoreData, PpiList); \ + } + +#endif + +#define EFI_PEIM_ENTRY_POINT(InitFunction) \ + UINTN \ + __stdcall \ + _DllMainCRTStartup ( \ + UINTN Inst, \ + UINTN reason_for_call, \ + VOID *rserved \ + ) \ + { \ + return 1; \ + } \ + \ + EFI_STATUS \ + __declspec( dllexport ) \ + __cdecl \ + InitializeDriver ( \ + IN EFI_FFS_FILE_HEADER *FfsHeader, \ + IN EFI_PEI_SERVICES **PeiServices \ + ) \ + { \ + return InitFunction(FfsHeader, PeiServices); \ + } + +#else + +#define EFI_PEI_CORE_ENTRY_POINT(InitFunction) +#define EFI_PEIM_ENTRY_POINT(InitFunction) + +#endif + +#else + +#ifdef EFI_NT_EMULATOR + +//;;## ...AMI_OVERRIDE... Support PI1.x +#if (PI_SPECIFICATION_VERSION < 0x00010000) + +#define EFI_PEI_CORE_ENTRY_POINT(InitFunction) \ + EFI_STATUS \ + __declspec( dllexport ) \ + __cdecl \ + InitializeDriver ( \ + IN EFI_PEI_STARTUP_DESCRIPTOR *PeiStartup \ + ) \ + { \ + return InitFunction(PeiStartup); \ + } + +#else +#define EFI_PEI_CORE_ENTRY_POINT(InitFunction) \ + EFI_STATUS \ + __declspec( dllexport ) \ + __cdecl \ + InitializeDriver ( \ + IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData, \ + IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList \ + ) \ + { \ + return InitFunction(SecCoreData, PpiList); \ + } + +#endif + + +#define EFI_PEIM_ENTRY_POINT(InitFunction) \ + EFI_STATUS \ + __declspec( dllexport ) \ + __cdecl \ + InitializeDriver ( \ + IN EFI_FFS_FILE_HEADER *FfsHeader, \ + IN EFI_PEI_SERVICES **PeiServices \ + ) \ + { \ + return InitFunction(FfsHeader, PeiServices); \ + } +#else + +#define EFI_PEI_CORE_ENTRY_POINT(InitFunction) +#define EFI_PEIM_ENTRY_POINT(InitFunction) + +#endif +#endif +#endif |