From 66f0059f35715d29fc43ca42f2e7ed1d11709ce2 Mon Sep 17 00:00:00 2001 From: klu2 Date: Wed, 27 Jun 2007 03:41:18 +0000 Subject: 1) Porting the original WinNtStuff Peim to new Nt32Pkg 2) Adding PeiHobLib to MdePkg git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2765 6f19259b-4bc3-4df7-8a09-765794883524 --- Nt32Pkg/Nt32.dsc | 21 +++-- Nt32Pkg/Nt32Pkg.dec | 7 +- .../WinNtThunkPPIToProtocolPeim.c | 88 +++++++++++++++++ .../WinNtThunkPPIToProtocolPeim.dxs | 33 +++++++ .../WinNtThunkPPIToProtocolPeim.inf | 104 +++++++++++++++++++++ .../WinNtThunkPPIToProtocolPeim.msa | 60 ++++++++++++ 6 files changed, 301 insertions(+), 12 deletions(-) create mode 100644 Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.c create mode 100644 Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.dxs create mode 100644 Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.inf create mode 100644 Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.msa (limited to 'Nt32Pkg') diff --git a/Nt32Pkg/Nt32.dsc b/Nt32Pkg/Nt32.dsc index c16fb7ade2..9ee5a7763e 100644 --- a/Nt32Pkg/Nt32.dsc +++ b/Nt32Pkg/Nt32.dsc @@ -111,7 +111,7 @@ OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf [LibraryClasses.common.DXE_CORE] - DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf + DebugLib|$(WORKSPACE)\MdePkg\Library/BaseDebugLibNull/BaseDebugLibNull.inf DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf @@ -141,7 +141,7 @@ CacheMaintenanceLib|$(WORKSPACE)\MdePkg\Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf [LibraryClasses.common.DXE_SAL_DRIVER] - DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf + DebugLib|$(WORKSPACE)\MdePkg\Library/BaseDebugLibNull/BaseDebugLibNull.inf UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf EdkIfrSupportLib|$(WORKSPACE)\MdeModulePkg\Library/EdkIfrSupportLib/EdkIfrSupportLib.inf @@ -166,7 +166,7 @@ [LibraryClasses.common.DXE_SMM_DRIVER] EdkUsbLib|$(WORKSPACE)\MdeModulePkg\Library/EdkUsbLib/EdkUsbLib.inf - DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf + DebugLib|$(WORKSPACE)\MdePkg\Library/BaseDebugLibNull/BaseDebugLibNull.inf DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf PrintLib|$(WORKSPACE)\MdeModulePkg\Library/EdkDxePrintLib/EdkDxePrintLib.inf EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf @@ -191,10 +191,10 @@ PeiServicesTablePointerLib|$(WORKSPACE)\MdePkg\Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf PcdLib|$(WORKSPACE)\MdePkg\Library/PeiPcdLib/PeiPcdLib.inf IoLib|$(WORKSPACE)\MdePkg\Library/PeiIoLibCpuIo/PeiIoLibCpuIo.inf - DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf + DebugLib|$(WORKSPACE)\MdePkg\Library/BaseDebugLibNull/BaseDebugLibNull.inf PeimEntryPoint|$(WORKSPACE)\MdePkg\Library/PeimEntryPoint/PeimEntryPoint.inf PeiServicesLib|$(WORKSPACE)\MdePkg\Library/PeiServicesLib/PeiServicesLib.inf - BaseMemoryLib|$(WORKSPACE)\MdePkg\Library/PeiMemoryLib/PeiMemoryLib.inf + BaseMemoryLib|$(WORKSPACE)\MdePkg\Library/BaseMemoryLib/BaseMemoryLib.inf MemoryAllocationLib|$(WORKSPACE)\MdePkg\Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf ReportStatusCodeLib|$(WORKSPACE)\MdePkg\Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf @@ -203,14 +203,14 @@ PeiServicesTablePointerLib|$(WORKSPACE)\MdePkg\Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf PcdLib|$(WORKSPACE)\MdePkg\Library/PeiPcdLib/PeiPcdLib.inf IoLib|$(WORKSPACE)\MdePkg\Library/PeiIoLibCpuIo/PeiIoLibCpuIo.inf - DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf + DebugLib|$(WORKSPACE)\MdePkg\Library/BaseDebugLibNull/BaseDebugLibNull.inf PeiServicesLib|$(WORKSPACE)\MdePkg\Library/PeiServicesLib/PeiServicesLib.inf MemoryAllocationLib|$(WORKSPACE)\MdePkg\Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf PeiCoreEntryPoint|$(WORKSPACE)\MdePkg\Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf ReportStatusCodeLib|$(WORKSPACE)\MdePkg\Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf [LibraryClasses.common.DXE_RUNTIME_DRIVER] - DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf + DebugLib|$(WORKSPACE)\MdePkg\Library/BaseDebugLibNull/BaseDebugLibNull.inf UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf EdkIfrSupportLib|$(WORKSPACE)\MdeModulePkg\Library/EdkIfrSupportLib/EdkIfrSupportLib.inf @@ -235,7 +235,7 @@ UefiDriverModelLib|$(WORKSPACE)\MdePkg\Library/UefiDriverModelLib/UefiDriverModelLib.inf [LibraryClasses.common.UEFI_DRIVER] - DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf + DebugLib|$(WORKSPACE)\MdePkg\Library/BaseDebugLibNull/BaseDebugLibNull.inf UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf EdkIfrSupportLib|$(WORKSPACE)\MdeModulePkg\Library/EdkIfrSupportLib/EdkIfrSupportLib.inf @@ -284,7 +284,7 @@ [LibraryClasses.common.UEFI_APPLICATION] EdkUsbLib|$(WORKSPACE)\MdeModulePkg\Library/EdkUsbLib/EdkUsbLib.inf - DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf + DebugLib|$(WORKSPACE)\MdePkg\Library/BaseDebugLibNull/BaseDebugLibNull.inf DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf PrintLib|$(WORKSPACE)\MdeModulePkg\Library/EdkDxePrintLib/EdkDxePrintLib.inf EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf @@ -401,4 +401,5 @@ ################################################################################ [Components.IA32] - $(WORKSPACE)\Nt32Pkg\WinNtThunkDxe\WinNtThunk.inf \ No newline at end of file + $(WORKSPACE)\Nt32Pkg\WinNtThunkDxe\WinNtThunk.inf + $(WORKSPACE)\Nt32Pkg\WinNtThunkPPIToProtocolPeim\WinNtThunkPPIToProtocolPeim.inf \ No newline at end of file diff --git a/Nt32Pkg/Nt32Pkg.dec b/Nt32Pkg/Nt32Pkg.dec index 812e452971..a507c228d7 100644 --- a/Nt32Pkg/Nt32Pkg.dec +++ b/Nt32Pkg/Nt32Pkg.dec @@ -73,9 +73,12 @@ gEfiWinNtFileSystemGuid = { 0x0C95A935, 0xA006, 0x11D4, { 0xBC, 0xFA, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }} gEfiWinNtPhysicalDisksGuid = { 0x0C95A92F, 0xA006, 0x11D4, { 0xBC, 0xFA, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }} gEfiWinNtVirtualDisksGuid = { 0x0C95A928, 0xA006, 0x11D4, { 0xBC, 0xFA, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }} - gEfiNt32PkgTokenSpaceGuid = { 0x0D79A645, 0x1D91, 0x40a6, { 0xA8, 0x1F, 0x61, 0xE6, 0x98, 0x2B, 0x32, 0xB4 }} - + gEfiNt32PkgTokenSpaceGuid = { 0x0D79A645, 0x1D91, 0x40a6, { 0xA8, 0x1F, 0x61, 0xE6, 0x98, 0x2B, 0x32, 0xB4 }} +[Ppis.common] + gPeiNtThunkPpiGuid = { 0x98c281e5, 0xf906, 0x43dd, { 0xa9, 0x2b, 0xb0, 0x03, 0xbf, 0x27, 0x65, 0xda }} + + ################################################################################ # # Global Protocols Definition section - list of Global Protocols C Name Data diff --git a/Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.c b/Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.c new file mode 100644 index 0000000000..40b145069a --- /dev/null +++ b/Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.c @@ -0,0 +1,88 @@ +/*++ + +Copyright (c) 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: + + WinNtStuff.c + +Abstract: + + Tiano PEIM to abstract construction of firmware volume in a Windows NT environment. + +Revision History + +--*/ + +// +// The package level header files this module uses +// +#include +#include +// +// The protocols, PPI and GUID defintions for this module +// +#include +#include +// +// The Library classes this module consumes +// +#include +#include +#include + +EFI_STATUS +EFIAPI +PeimInitializeWinNtThunkPPIToProtocolPeim ( + IN EFI_FFS_FILE_HEADER *FfsHeader, + IN EFI_PEI_SERVICES **PeiServices + ) +/*++ + +Routine Description: + + Perform a call-back into the SEC simulator to get NT Stuff + +Arguments: + + PeiServices - General purpose services available to every PEIM. + +Returns: + + None + +--*/ +// TODO: FfsHeader - add argument and description to function comment +{ + EFI_STATUS Status; + EFI_PEI_PPI_DESCRIPTOR *PpiDescriptor; + PEI_NT_THUNK_PPI *PeiNtService; + VOID *Ptr; + + DEBUG ((EFI_D_ERROR, "NT 32 WinNT Stuff PEIM Loaded\n")); + + Status = (**PeiServices).LocatePpi ( + PeiServices, + &gPeiNtThunkPpiGuid, // GUID + 0, // INSTANCE + &PpiDescriptor, // EFI_PEI_PPI_DESCRIPTOR + &PeiNtService // PPI + ); + ASSERT_EFI_ERROR (Status); + + Ptr = PeiNtService->NtThunk (); + + BuildGuidDataHob ( + &gEfiWinNtThunkProtocolGuid, // Guid + &Ptr, // Buffer + sizeof (VOID *) // Sizeof Buffer + ); + return Status; +} diff --git a/Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.dxs b/Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.dxs new file mode 100644 index 0000000000..c40106c81b --- /dev/null +++ b/Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.dxs @@ -0,0 +1,33 @@ +/*++ + +Copyright (c) 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: + + WinNtStuff.dxs + +Abstract: + + Dependency expression file for WinNtStuff PEIM. + +--*/ + +// +// Include common header file for this module. +// +#include "CommonHeader.h" + +#include + +DEPENDENCY_START + PEI_NT_THUNK_PPI_GUID AND EFI_PEI_PERMANENT_MEMORY_INSTALLED_PPI_GUID +DEPENDENCY_END + + diff --git a/Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.inf b/Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.inf new file mode 100644 index 0000000000..f97a202f2b --- /dev/null +++ b/Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.inf @@ -0,0 +1,104 @@ +#/** @file +# Stuff driver +# +# Tiano PEIM to abstract construction of firmware volume in a Windows NT environment. +# Copyright (c) 2006 - 2007, 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. +# +# +#**/ + +################################################################################ +# +# Defines Section - statements that will be processed to create a Makefile. +# +################################################################################ +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = WinNtThunkPPIToProtocolPeim + FILE_GUID = D3AAD8DC-3A48-46ac-B1C7-28A9D3CF6755 + MODULE_TYPE = PEIM + VERSION_STRING = 1.0 + EDK_RELEASE_VERSION = 0x00020000 + EFI_SPECIFICATION_VERSION = 0x00020000 + + ENTRY_POINT = PeimInitializeWinNtThunkPPIToProtocolPeim + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 +# + +################################################################################ +# +# Sources Section - list of files that are required for the build to succeed. +# +################################################################################ + +[Sources.common] + WinNtThunkPPIToProtocolPeim.dxs + WinNtThunkPPIToProtocolPeim.c + +################################################################################ +# +# Includes Section - list of Include locations that are required for +# this module. +# +################################################################################ + +[Includes] + $(WORKSPACE)/OldMdePkg/Include/Library + +################################################################################ +# +# Package Dependency Section - list of Package files that are required for +# this module. +# +################################################################################ + +[Packages] + Nt32Pkg/Nt32Pkg.dec + MdePkg/MdePkg.dec + + +################################################################################ +# +# Library Class Section - list of Library Classes that are required for +# this module. +# +################################################################################ + +[LibraryClasses] + HobLib + PeimEntryPoint + DebugLib + + +################################################################################ +# +# Protocol C Name Section - list of Protocol and Protocol Notify C Names +# that this module uses or produces. +# +################################################################################ + +[Protocols] + gEfiWinNtThunkProtocolGuid # PROTOCOL ALWAYS_CONSUMED + + +################################################################################ +# +# PPI C Name Section - list of PPI and PPI Notify C Names that this module +# uses or produces. +# +################################################################################ + +[Ppis] + gPeiNtThunkPpiGuid # PPI ALWAYS_CONSUMED + diff --git a/Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.msa b/Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.msa new file mode 100644 index 0000000000..9b4faf13c8 --- /dev/null +++ b/Nt32Pkg/WinNtThunkPPIToProtocolPeim/WinNtThunkPPIToProtocolPeim.msa @@ -0,0 +1,60 @@ + + + + WinNtStuff + PEIM + D3AAD8DC-3A48-46ac-B1C7-28A9D3CF6755 + 1.0 + Stuff driver + Tiano PEIM to abstract construction of firmware volume in a Windows NT environment. + Copyright (c) 2006 - 2007, 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. + FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 + + + IA32 + false + WinNtStuff + + + + DebugLib + + + PeimEntryPoint + + + HobLib + + + + winntstuff.c + WinNtStuff.dxs + + + + + + + + gEfiWinNtThunkProtocolGuid + + + + + gPeiNtThunkPpiGuid + + + + EFI_SPECIFICATION_VERSION 0x00020000 + EDK_RELEASE_VERSION 0x00020000 + + PeimInitializeWinNtStuff + + + \ No newline at end of file -- cgit v1.2.3