summaryrefslogtreecommitdiff
path: root/Nt32Pkg/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Nt32Pkg/Library')
-rw-r--r--Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf51
-rw-r--r--Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/Nt32OemHookStatusCodeLib.c238
-rw-r--r--Nt32Pkg/Library/DxeNt32PeCoffExtraActionLib/DxeNt32PeCoffExtraActionLib.c408
-rw-r--r--Nt32Pkg/Library/DxeNt32PeCoffExtraActionLib/DxeNt32PeCoffExtraActionLib.inf46
-rw-r--r--Nt32Pkg/Library/DxeWinNtLib/DxeWinNtLib.inf47
-rw-r--r--Nt32Pkg/Library/DxeWinNtLib/WinNtLib.c53
-rw-r--r--Nt32Pkg/Library/Nt32PeiPeCoffGetEntryPointLib/Nt32PeiPeCoffGetEntryPointLib.inf43
-rw-r--r--Nt32Pkg/Library/Nt32PeiPeCoffGetEntryPointLib/PeCoffGetEntryPoint.c324
-rw-r--r--Nt32Pkg/Library/PeiNt32OemHookStatusCodeLib/Nt32OemHookStatusCodeLib.c247
-rw-r--r--Nt32Pkg/Library/PeiNt32OemHookStatusCodeLib/PeiNt32OemHookStatusCodeLib.inf50
-rw-r--r--Nt32Pkg/Library/PeiNt32PeCoffExtraActionLib/PeiNt32PeCoffExtraActionLib.c250
-rw-r--r--Nt32Pkg/Library/PeiNt32PeCoffExtraActionLib/PeiNt32PeCoffExtraActionLib.inf45
-rw-r--r--Nt32Pkg/Library/PlatformBootManagerLib/MemoryTest.c1086
-rw-r--r--Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.c282
-rw-r--r--Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.h153
-rw-r--r--Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf74
-rw-r--r--Nt32Pkg/Library/PlatformBootManagerLib/PlatformData.c158
-rw-r--r--Nt32Pkg/Library/PlatformBootManagerLib/Strings.unibin3732 -> 0 bytes
-rw-r--r--Nt32Pkg/Library/PlatformSecureLib/PlatformSecureLib.c41
-rw-r--r--Nt32Pkg/Library/PlatformSecureLib/PlatformSecureLib.inf33
20 files changed, 0 insertions, 3629 deletions
diff --git a/Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf b/Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
deleted file mode 100644
index 6d2a33b44d..0000000000
--- a/Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
+++ /dev/null
@@ -1,51 +0,0 @@
-## @file
-# Memory Status Code Library for UEFI drivers
-#
-# Lib to provide memory journal status code reporting Routines
-#
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
-# 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]
- INF_VERSION = 0x00010005
- BASE_NAME = DxeNt32OemHookStatusCodeLib
- FILE_GUID = EF172A23-C7C5-47b7-B24E-D10DFE15540F
- MODULE_TYPE = DXE_DRIVER
- VERSION_STRING = 1.0
- LIBRARY_CLASS = OemHookStatusCodeLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-# VALID_ARCHITECTURES = IA32
-#
-# HOB Guid C Name: gEfiWinNtThunkProtocolGuid Hob Type: GUID_EXTENSION
-#
-
-[Sources]
- Nt32OemHookStatusCodeLib.c
-
-
-[Packages]
- Nt32Pkg/Nt32Pkg.dec
- MdePkg/MdePkg.dec
- MdeModulePkg/MdeModulePkg.dec
-
-[LibraryClasses]
- ReportStatusCodeLib
- BaseMemoryLib
- PrintLib
- HobLib
- DebugLib
-
-[Protocols]
- gEfiWinNtThunkProtocolGuid # ALWAYS_CONSUMED
diff --git a/Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/Nt32OemHookStatusCodeLib.c b/Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/Nt32OemHookStatusCodeLib.c
deleted file mode 100644
index e6f072e996..0000000000
--- a/Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/Nt32OemHookStatusCodeLib.c
+++ /dev/null
@@ -1,238 +0,0 @@
-/** @file
- OEM hook status code library functions with no library constructor/destructor
-
- Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
- 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: Nt32OemHookStatusCodeLib.c
-
-**/
-
-//
-// The package level header files this module uses
-//
-#include <WinNtDxe.h>
-
-//
-// The protocols, PPI and GUID defintions for this module
-//
-#include <Protocol/WinNtThunk.h>
-#include <Guid/StatusCodeDataTypeId.h>
-#include <Guid/StatusCodeDataTypeDebug.h>
-//
-// The Library classes this module consumes
-//
-#include <Library/OemHookStatusCodeLib.h>
-#include <Library/DebugLib.h>
-#include <Library/HobLib.h>
-#include <Library/PrintLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/ReportStatusCodeLib.h>
-
-//
-// Cache of WinNtThunk protocol
-//
-EFI_WIN_NT_THUNK_PROTOCOL *mWinNt;
-
-//
-// Cache of standard output handle .
-//
-HANDLE mStdOut;
-
-/**
-
- Initialize OEM status code device .
-
- @return Always return EFI_SUCCESS.
-
-**/
-EFI_STATUS
-EFIAPI
-OemHookStatusCodeInitialize (
- VOID
- )
-{
- EFI_HOB_GUID_TYPE *GuidHob;
-
- //
- // Retrieve WinNtThunkProtocol from GUID'ed HOB
- //
- GuidHob = GetFirstGuidHob (&gEfiWinNtThunkProtocolGuid);
- ASSERT (GuidHob != NULL);
- mWinNt = (EFI_WIN_NT_THUNK_PROTOCOL *)(*(UINTN *)(GET_GUID_HOB_DATA (GuidHob)));
- ASSERT (mWinNt != NULL);
-
- //
- // Cache standard output handle.
- //
- mStdOut = mWinNt->GetStdHandle (STD_OUTPUT_HANDLE);
-
- return EFI_SUCCESS;
-}
-
-/**
- Report status code to OEM device.
-
- @param CodeType Indicates the type of status code being reported. Type EFI_STATUS_CODE_TYPE is defined in "Related Definitions" below.
-
- @param Value Describes the current status of a hardware or software entity.
- This included information about the class and subclass that is used to classify the entity
- as well as an operation. For progress codes, the operation is the current activity.
- For error codes, it is the exception. For debug codes, it is not defined at this time.
- Type EFI_STATUS_CODE_VALUE is defined in "Related Definitions" below.
- Specific values are discussed in the Intel? Platform Innovation Framework for EFI Status Code Specification.
-
- @param Instance The enumeration of a hardware or software entity within the system.
- A system may contain multiple entities that match a class/subclass pairing.
- The instance differentiates between them. An instance of 0 indicates that instance information is unavailable,
- not meaningful, or not relevant. Valid instance numbers start with 1.
-
-
- @param CallerId This optional parameter may be used to identify the caller.
- This parameter allows the status code driver to apply different rules to different callers.
- Type EFI_GUID is defined in InstallProtocolInterface() in the UEFI 2.0 Specification.
-
-
- @param Data This optional parameter may be used to pass additional data
-
- @return The function always return EFI_SUCCESS.
-
-**/
-EFI_STATUS
-EFIAPI
-OemHookStatusCodeReport (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId, OPTIONAL
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
- )
-{
- CHAR8 *Filename;
- CHAR8 *Description;
- CHAR8 *Format;
- CHAR8 Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE];
- UINT32 ErrorLevel;
- UINT32 LineNumber;
- UINTN CharCount;
- BASE_LIST Marker;
-
- Buffer[0] = '\0';
-
- if (Data != NULL &&
- ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber)) {
- //
- // Print ASSERT() information into output buffer.
- //
- CharCount = AsciiSPrint (
- Buffer,
- sizeof (Buffer),
- "\n\rASSERT!: %a (%d): %a\n\r",
- Filename,
- LineNumber,
- Description
- );
-
- //
- // Callout to standard output.
- //
- mWinNt->WriteFile (
- mStdOut,
- Buffer,
- (DWORD)CharCount,
- (LPDWORD)&CharCount,
- NULL
- );
-
- return EFI_SUCCESS;
-
- } else if (Data != NULL &&
- ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format)) {
- //
- // Print DEBUG() information into output buffer.
- //
- CharCount = AsciiBSPrint (
- Buffer,
- sizeof (Buffer),
- Format,
- Marker
- );
- } else if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) {
- //
- // Print ERROR information into output buffer.
- //
- CharCount = AsciiSPrint (
- Buffer,
- sizeof (Buffer),
- "ERROR: C%x:V%x I%x",
- CodeType,
- Value,
- Instance
- );
-
- //
- // Make sure we don't try to print values that weren't intended to be printed, especially NULL GUID pointers.
- //
-
- if (CallerId != NULL) {
- CharCount += AsciiSPrint (
- &Buffer[CharCount - 1],
- (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)),
- " %g",
- CallerId
- );
- }
-
- if (Data != NULL) {
- CharCount += AsciiSPrint (
- &Buffer[CharCount - 1],
- (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)),
- " %p",
- Data
- );
- }
-
- CharCount += AsciiSPrint (
- &Buffer[CharCount - 1],
- (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)),
- "\n\r"
- );
- } else if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) {
- CharCount = AsciiSPrint (
- Buffer,
- sizeof (Buffer),
- "PROGRESS CODE: V%x I%x\n\r",
- Value,
- Instance
- );
- } else {
- CharCount = AsciiSPrint (
- Buffer,
- sizeof (Buffer),
- "Undefined: C%x:V%x I%x\n\r",
- CodeType,
- Value,
- Instance
- );
- }
-
- //
- // Callout to standard output.
- //
- mWinNt->WriteFile (
- mStdOut,
- Buffer,
- (DWORD)CharCount,
- (LPDWORD)&CharCount,
- NULL
- );
-
- return EFI_SUCCESS;
-}
-
diff --git a/Nt32Pkg/Library/DxeNt32PeCoffExtraActionLib/DxeNt32PeCoffExtraActionLib.c b/Nt32Pkg/Library/DxeNt32PeCoffExtraActionLib/DxeNt32PeCoffExtraActionLib.c
deleted file mode 100644
index 524d6c060d..0000000000
--- a/Nt32Pkg/Library/DxeNt32PeCoffExtraActionLib/DxeNt32PeCoffExtraActionLib.c
+++ /dev/null
@@ -1,408 +0,0 @@
-/**@file
-
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
-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:
-
- PeiNt32PeCoffExtraActionLib.c
-
-Abstract:
-
- Provides services to perform additional actions to relocate and unload
- PE/Coff image for NT32 environment specific purpose such as souce level debug.
- This version only works for DXE phase
-
-
-**/
-//
-// The package level header files this module uses
-//
-#include <WinNtDxe.h>
-
-//
-// The protocols, PPI and GUID defintions for this module
-//
-#include <Protocol/WinNtThunk.h>
-
-#include <Library/PeCoffLib.h>
-
-#include <Library/BaseLib.h>
-#include <Library/DebugLib.h>
-#include <Library/HobLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/PeCoffExtraActionLib.h>
-
-#define MAX_PDB_NAME_TO_MOD_HANDLE_ARRAY_SIZE 0x100
-
-typedef struct {
- CHAR8 *PdbPointer;
- VOID *ModHandle;
-} PDB_NAME_TO_MOD_HANDLE;
-
-
-//
-// Cache of WinNtThunk protocol
-//
-EFI_WIN_NT_THUNK_PROTOCOL *mWinNt = NULL;
-
-//
-// An Array to hold the ModHandle
-//
-PDB_NAME_TO_MOD_HANDLE *mPdbNameModHandleArray = NULL;
-UINTN mPdbNameModHandleArraySize = 0;
-
-
-/**
- The constructor function gets the pointer of the WinNT thunk functions
- It will ASSERT() if NT thunk protocol is not installed.
-
- @retval EFI_SUCCESS WinNT thunk protocol is found and cached.
-
-**/
-EFI_STATUS
-EFIAPI
-Nt32PeCoffGetWinNtThunkStucture (
- VOID
- )
-{
- EFI_HOB_GUID_TYPE *GuidHob;
-
- //
- // Retrieve WinNtThunkProtocol from GUID'ed HOB
- //
- GuidHob = GetFirstGuidHob (&gEfiWinNtThunkProtocolGuid);
- ASSERT (GuidHob != NULL);
- mWinNt = (EFI_WIN_NT_THUNK_PROTOCOL *)(*(UINTN *)(GET_GUID_HOB_DATA (GuidHob)));
- ASSERT (mWinNt != NULL);
-
-
- return EFI_SUCCESS;
-}
-
-/**
- Convert the passed in Ascii string to Unicode.
-
- This function Convert the passed in Ascii string to Unicode.Optionally return
- the length of the strings..
-
- @param AsciiString Pointer to an AscII string
- @param StrLen Length of string
-
- @return Pointer to malloc'ed Unicode version of Ascii
-
-**/
-CHAR16 *
-AsciiToUnicode (
- IN CHAR8 *Ascii,
- IN UINTN *StrLen OPTIONAL
- )
-{
- UINTN Index;
- CHAR16 *Unicode;
-
- //
- // Allocate a buffer for unicode string
- //
- for (Index = 0; Ascii[Index] != '\0'; Index++)
- ;
- Unicode = mWinNt->HeapAlloc ( mWinNt->GetProcessHeap (),
- HEAP_ZERO_MEMORY,
- ((Index + 1) * sizeof (CHAR16))
- );
- if (Unicode == NULL) {
- return NULL;
- }
-
- for (Index = 0; Ascii[Index] != '\0'; Index++) {
- Unicode[Index] = (CHAR16) Ascii[Index];
- }
-
- Unicode[Index] = '\0';
-
- if (StrLen != NULL) {
- *StrLen = Index;
- }
-
- return Unicode;
-}
-/**
- Store the ModHandle in an array indexed by the Pdb File name.
- The ModHandle is needed to unload the image.
-
-
- @param ImageContext - Input data returned from PE Laoder Library. Used to find the
- .PDB file name of the PE Image.
- @param ModHandle - Returned from LoadLibraryEx() and stored for call to
- FreeLibrary().
-
- @return return EFI_SUCCESS when ModHandle was stored.
-
---*/
-EFI_STATUS
-AddModHandle (
- IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext,
- IN VOID *ModHandle
- )
-
-{
- UINTN Index;
- PDB_NAME_TO_MOD_HANDLE *Array;
- UINTN PreviousSize;
- PDB_NAME_TO_MOD_HANDLE *TempArray;
- HANDLE Handle;
-
- //
- // Return EFI_ALREADY_STARTED if this DLL has already been loaded
- //
- Array = mPdbNameModHandleArray;
- for (Index = 0; Index < mPdbNameModHandleArraySize; Index++, Array++) {
- if (Array->PdbPointer != NULL && Array->ModHandle == ModHandle) {
- return EFI_ALREADY_STARTED;
- }
- }
-
- Array = mPdbNameModHandleArray;
- for (Index = 0; Index < mPdbNameModHandleArraySize; Index++, Array++) {
- if (Array->PdbPointer == NULL) {
- //
- // Make a copy of the stirng and store the ModHandle
- //
- Handle = mWinNt->GetProcessHeap ();
- Array->PdbPointer = mWinNt->HeapAlloc ( Handle,
- HEAP_ZERO_MEMORY,
- AsciiStrLen (ImageContext->PdbPointer) + 1
- );
-
- ASSERT (Array->PdbPointer != NULL);
-
- AsciiStrCpy (Array->PdbPointer, ImageContext->PdbPointer);
- Array->ModHandle = ModHandle;
- return EFI_SUCCESS;
- }
- }
-
- //
- // No free space in mPdbNameModHandleArray so grow it by
- // MAX_PDB_NAME_TO_MOD_HANDLE_ARRAY_SIZE entires.
- //
- PreviousSize = mPdbNameModHandleArraySize * sizeof (PDB_NAME_TO_MOD_HANDLE);
- mPdbNameModHandleArraySize += MAX_PDB_NAME_TO_MOD_HANDLE_ARRAY_SIZE;
- //
- // re-allocate a new buffer and copy the old values to the new locaiton.
- //
- TempArray = mWinNt->HeapAlloc ( mWinNt->GetProcessHeap (),
- HEAP_ZERO_MEMORY,
- mPdbNameModHandleArraySize * sizeof (PDB_NAME_TO_MOD_HANDLE)
- );
-
- CopyMem ((VOID *) (UINTN) TempArray, (VOID *) (UINTN)mPdbNameModHandleArray, PreviousSize);
-
- mWinNt->HeapFree (mWinNt->GetProcessHeap (), 0, mPdbNameModHandleArray);
-
- mPdbNameModHandleArray = TempArray;
- if (mPdbNameModHandleArray == NULL) {
- ASSERT (FALSE);
- return EFI_OUT_OF_RESOURCES;
- }
-
-
- return AddModHandle (ImageContext, ModHandle);
-}
-/**
- Return the ModHandle and delete the entry in the array.
-
-
- @param ImageContext - Input data returned from PE Laoder Library. Used to find the
- .PDB file name of the PE Image.
-
- @return
- ModHandle - ModHandle assoicated with ImageContext is returned
- NULL - No ModHandle associated with ImageContext
-
-**/
-VOID *
-RemoveModeHandle (
- IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
- )
-{
- UINTN Index;
- PDB_NAME_TO_MOD_HANDLE *Array;
-
- if (ImageContext->PdbPointer == NULL) {
- //
- // If no PDB pointer there is no ModHandle so return NULL
- //
- return NULL;
- }
-
- Array = mPdbNameModHandleArray;
- for (Index = 0; Index < mPdbNameModHandleArraySize; Index++, Array++) {
- if ((Array->PdbPointer != NULL) && (AsciiStrCmp(Array->PdbPointer, ImageContext->PdbPointer) == 0)) {
- //
- // If you find a match return it and delete the entry
- //
- mWinNt->HeapFree (mWinNt->GetProcessHeap (), 0, Array->PdbPointer);
- Array->PdbPointer = NULL;
- return Array->ModHandle;
- }
- }
-
- return NULL;
-}
-
-/**
- Performs additional actions after a PE/COFF image has been loaded and relocated.
-
- For NT32, this function load symbols to support source level debugging.
-
- If ImageContext is NULL, then ASSERT().
-
- @param ImageContext Pointer to the image context structure that describes the
- PE/COFF image that has already been loaded and relocated.
-
-**/
-VOID
-EFIAPI
-PeCoffLoaderRelocateImageExtraAction (
- IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
- )
-{
- EFI_STATUS Status;
- VOID *DllEntryPoint;
- CHAR16 *DllFileName;
- HMODULE Library;
- UINTN Index;
-
- ASSERT (ImageContext != NULL);
-
- if (mWinNt == NULL) {
- Nt32PeCoffGetWinNtThunkStucture ();
- }
-
- //
- // If we load our own PE COFF images the Windows debugger can not source
- // level debug our code. If a valid PDB pointer exists usw it to load
- // the *.dll file as a library using Windows* APIs. This allows
- // source level debug. The image is still loaded and reloaced
- // in the Framework memory space like on a real system (by the code above),
- // but the entry point points into the DLL loaded by the code bellow.
- //
-
- DllEntryPoint = NULL;
-
- //
- // Load the DLL if it's not an EBC image.
- //
- if ((ImageContext->PdbPointer != NULL) &&
- (ImageContext->Machine != EFI_IMAGE_MACHINE_EBC)) {
- //
- // Convert filename from ASCII to Unicode
- //
- DllFileName = AsciiToUnicode (ImageContext->PdbPointer, &Index);
-
- //
- // Check that we have a valid filename
- //
- if (Index < 5 || DllFileName[Index - 4] != '.') {
- mWinNt->HeapFree (mWinNt->GetProcessHeap (), 0, DllFileName);
-
- //
- // Never return an error if PeCoffLoaderRelocateImage() succeeded.
- // The image will run, but we just can't source level debug. If we
- // return an error the image will not run.
- //
- return;
- }
- //
- // Replace .PDB with .DLL on the filename
- //
- DllFileName[Index - 3] = 'D';
- DllFileName[Index - 2] = 'L';
- DllFileName[Index - 1] = 'L';
-
- //
- // Load the .DLL file into the user process's address space for source
- // level debug
- //
- Library = mWinNt->LoadLibraryEx (DllFileName, NULL, DONT_RESOLVE_DLL_REFERENCES);
- if (Library != NULL) {
- //
- // InitializeDriver is the entry point we put in all our EFI DLL's. The
- // DONT_RESOLVE_DLL_REFERENCES argument to LoadLIbraryEx() supresses the
- // normal DLL entry point of DllMain, and prevents other modules that are
- // referenced in side the DllFileName from being loaded. There is no error
- // checking as the we can point to the PE32 image loaded by Tiano. This
- // step is only needed for source level debuging
- //
- DllEntryPoint = (VOID *) (UINTN) mWinNt->GetProcAddress (Library, "InitializeDriver");
-
- }
-
- if ((Library != NULL) && (DllEntryPoint != NULL)) {
- Status = AddModHandle (ImageContext, Library);
- if (Status == EFI_ALREADY_STARTED) {
- //
- // If the DLL has already been loaded before, then this instance of the DLL can not be debugged.
- //
- ImageContext->PdbPointer = NULL;
- DEBUG ((EFI_D_ERROR, "WARNING: DLL already loaded. No source level debug %s. \n", DllFileName));
- } else {
- //
- // This DLL is not already loaded, so source level debugging is suported.
- //
- ImageContext->EntryPoint = (EFI_PHYSICAL_ADDRESS) (UINTN) DllEntryPoint;
- DEBUG ((EFI_D_INFO, "LoadLibraryEx (%s,\n NULL, DONT_RESOLVE_DLL_REFERENCES)\n", DllFileName));
- }
- } else {
- //
- // This DLL does not support source level debugging at all.
- //
- DEBUG ((EFI_D_ERROR, "WARNING: No source level debug %s. \n", DllFileName));
- }
-
- mWinNt->HeapFree (mWinNt->GetProcessHeap (), 0, DllFileName);
- }
-
- //
- // Never return an error if PeCoffLoaderRelocateImage() succeeded.
- // The image will run, but we just can't source level debug. If we
- // return an error the image will not run.
- //
- return;
-}
-
-/**
- Performs additional actions just before a PE/COFF image is unloaded. Any resources
- that were allocated by PeCoffLoaderRelocateImageExtraAction() must be freed.
-
- For NT32, this function unloads symbols for source level debugging.
-
- If ImageContext is NULL, then ASSERT().
-
- @param ImageContext Pointer to the image context structure that describes the
- PE/COFF image that is being unloaded.
-
-**/
-VOID
-EFIAPI
-PeCoffLoaderUnloadImageExtraAction (
- IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
- )
-{
- VOID *ModHandle;
-
- ASSERT (ImageContext != NULL);
-
- ModHandle = RemoveModeHandle (ImageContext);
- if (ModHandle != NULL) {
- mWinNt->FreeLibrary (ModHandle);
- }
- return;
-}
diff --git a/Nt32Pkg/Library/DxeNt32PeCoffExtraActionLib/DxeNt32PeCoffExtraActionLib.inf b/Nt32Pkg/Library/DxeNt32PeCoffExtraActionLib/DxeNt32PeCoffExtraActionLib.inf
deleted file mode 100644
index 97a132b441..0000000000
--- a/Nt32Pkg/Library/DxeNt32PeCoffExtraActionLib/DxeNt32PeCoffExtraActionLib.inf
+++ /dev/null
@@ -1,46 +0,0 @@
-## @file
-# PeCoff extra action libary for DXE phase that run NT32 emulator.
-#
-# Lib to provide memory journal status code reporting Routines
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
-# 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]
- INF_VERSION = 0x00010005
- BASE_NAME = DxeNt32PeCoffExtraActionLib
- FILE_GUID = 23AF9A54-3D7C-444d-8318-E9CF752DA349
- MODULE_TYPE = DXE_DRIVER
- VERSION_STRING = 1.0
- LIBRARY_CLASS = PeCoffExtraActionLib|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER UEFI_DRIVER
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-# VALID_ARCHITECTURES = IA32
-#
-
-[Sources]
- DxeNt32PeCoffExtraActionLib.c
-
-[Packages]
- Nt32Pkg/Nt32Pkg.dec
- MdePkg/MdePkg.dec
-
-[LibraryClasses]
- DebugLib
- HobLib
- BaseMemoryLib
-
-[Protocols]
- gEfiWinNtThunkProtocolGuid # ALWAYS_CONSUMED
-
diff --git a/Nt32Pkg/Library/DxeWinNtLib/DxeWinNtLib.inf b/Nt32Pkg/Library/DxeWinNtLib/DxeWinNtLib.inf
deleted file mode 100644
index 731632b07f..0000000000
--- a/Nt32Pkg/Library/DxeWinNtLib/DxeWinNtLib.inf
+++ /dev/null
@@ -1,47 +0,0 @@
-## @file
-# A library to produce the global variable 'gWinNt'
-#
-# This library contains a single global variable 'gWinNt' along with a constructor to initialize that global.
-# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
-#
-# 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]
- INF_VERSION = 0x00010005
- BASE_NAME = DxeWinNtLib
- FILE_GUID = f6b5871d-5226-41b3-a569-3ff893fdc7bc
- MODULE_TYPE = DXE_DRIVER
- VERSION_STRING = 1.0
- LIBRARY_CLASS = WinNtLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
-
- CONSTRUCTOR = WinNtLibConstructor
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-# VALID_ARCHITECTURES = IA32
-#
-# HOB Guid C Name: gEfiWinNtThunkProtocolGuid Hob Type: GUID_EXTENSION
-#
-
-[Sources]
- WinNtLib.c
-
-[Packages]
- MdePkg/MdePkg.dec
- Nt32Pkg/Nt32Pkg.dec
-
-[LibraryClasses]
- HobLib
- DebugLib
-
-[Protocols]
- gEfiWinNtThunkProtocolGuid # Used as HOB in the code.
-
diff --git a/Nt32Pkg/Library/DxeWinNtLib/WinNtLib.c b/Nt32Pkg/Library/DxeWinNtLib/WinNtLib.c
deleted file mode 100644
index 922289ddc0..0000000000
--- a/Nt32Pkg/Library/DxeWinNtLib/WinNtLib.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/**@file
-
-Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
-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:
-
- WinNtLib.c
-
-Abstract:
-
- WinNt Library
-
-**/
-
-#include <PiDxe.h>
-#include <WinNtDxe.h>
-#include <Library/WinNtLib.h>
-#include <Library/DebugLib.h>
-#include <Library/HobLib.h>
-
-
-EFI_WIN_NT_THUNK_PROTOCOL *gWinNt;
-
-EFI_STATUS
-WinNtLibConstructor (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
- )
-/*++
-
-Routine Description:
-
-Arguments:
-
-Returns:
-
---*/
-{
- EFI_HOB_GUID_TYPE *GuidHob;
-
- GuidHob = GetFirstGuidHob (&gEfiWinNtThunkProtocolGuid);
- ASSERT (GuidHob != NULL);
- gWinNt = (EFI_WIN_NT_THUNK_PROTOCOL *)(*(UINTN *)(GET_GUID_HOB_DATA (GuidHob)));
- ASSERT (gWinNt != NULL);
- return EFI_SUCCESS;
-}
diff --git a/Nt32Pkg/Library/Nt32PeiPeCoffGetEntryPointLib/Nt32PeiPeCoffGetEntryPointLib.inf b/Nt32Pkg/Library/Nt32PeiPeCoffGetEntryPointLib/Nt32PeiPeCoffGetEntryPointLib.inf
deleted file mode 100644
index 5d3f5d7a09..0000000000
--- a/Nt32Pkg/Library/Nt32PeiPeCoffGetEntryPointLib/Nt32PeiPeCoffGetEntryPointLib.inf
+++ /dev/null
@@ -1,43 +0,0 @@
-## @file
-# Component description file for the EdkNt32PeiPeCoffGetEntryPointLib library.
-#
-# PeCoffGetEntryPointLib library class for NT32 instance implemented by use NTPeiLoadFile PPI.
-# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
-#
-# 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]
- INF_VERSION = 0x00010005
- BASE_NAME = EdkNt32PeiPeCoffGetEntryPointLib
- FILE_GUID = 434b164e-5fa6-4a3d-bc04-02da2a4eeb26
- MODULE_TYPE = PEIM
- VERSION_STRING = 1.0
- LIBRARY_CLASS = PeCoffGetEntryPointLib|PEI_CORE PEIM SEC
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-# VALID_ARCHITECTURES = IA32
-#
-
-[Sources]
- PeCoffGetEntryPoint.c
-
-[Packages]
- MdePkg/MdePkg.dec
- Nt32Pkg/Nt32Pkg.dec
-
-[LibraryClasses]
- PeiServicesLib
-
-[Ppis]
- gNtPeiLoadFilePpiGuid # PPI ALWAYS_CONSUMED
-
diff --git a/Nt32Pkg/Library/Nt32PeiPeCoffGetEntryPointLib/PeCoffGetEntryPoint.c b/Nt32Pkg/Library/Nt32PeiPeCoffGetEntryPointLib/PeCoffGetEntryPoint.c
deleted file mode 100644
index 5ae0b25c37..0000000000
--- a/Nt32Pkg/Library/Nt32PeiPeCoffGetEntryPointLib/PeCoffGetEntryPoint.c
+++ /dev/null
@@ -1,324 +0,0 @@
-/**@file
-
-Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
-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:
-
- PeCoffGetEntryPoint.c
-
-Abstract:
-
- Tiano PE/COFF loader
-
-Revision History
-
-**/
-
-#include <PiPei.h>
-#include <IndustryStandard/PeImage.h>
-#include <WinNtPeim.h>
-#include <Ppi/NtPeiLoadFile.h>
-#include <Library/PeCoffGetEntryPointLib.h>
-#include <Library/PeiServicesLib.h>
-#include <Library/DebugLib.h>
-
-
-RETURN_STATUS
-EFIAPI
-PeCoffLoaderGetEntryPoint (
- IN VOID *Pe32Data,
- IN OUT VOID **EntryPoint
- )
-/*++
-
-Routine Description:
-
- Loads a PE/COFF image into memory, this is not follow the original purpose of
- PeCoffGetEntryPoint library class. But it's ok that Unix package not run on a real
- platform and this is for source level debug.
-
-Arguments:
-
- Pe32Data - Pointer to a PE/COFF Image
-
- EntryPoint - Pointer to the entry point of the PE/COFF image
-
-Returns:
-
- EFI_SUCCESS if the EntryPoint was returned
- EFI_INVALID_PARAMETER if the EntryPoint could not be found from Pe32Data
-
---*/
-{
- EFI_STATUS Status;
- EFI_PEI_PPI_DESCRIPTOR *PpiDescriptor;
- NT_PEI_LOAD_FILE_PPI *PeiNtService;
- EFI_PHYSICAL_ADDRESS ImageAddress;
- UINT64 ImageSize;
- EFI_PHYSICAL_ADDRESS ImageEntryPoint;
-
- ASSERT (Pe32Data != NULL);
- ASSERT (EntryPoint != NULL);
-
- Status = PeiServicesLocatePpi (
- &gNtPeiLoadFilePpiGuid,
- 0,
- &PpiDescriptor,
- (VOID**)&PeiNtService
- );
- ASSERT_EFI_ERROR (Status);
-
- Status = PeiNtService->PeiLoadFileService (
- Pe32Data,
- &ImageAddress,
- &ImageSize,
- &ImageEntryPoint
- );
- if (EFI_ERROR (Status)) {
- return Status;
- }
-
- *EntryPoint = (VOID*)(UINTN)ImageEntryPoint;
- return Status;
-}
-
-/**
- Returns the machine type of PE/COFF image.
- This is copied from MDE BasePeCoffGetEntryPointLib, the code should be sync with it.
- The reason is NT32 package needs to load the image to memory to support source
- level debug.
-
-
- @param Pe32Data Pointer to a PE/COFF header
-
- @return Machine type or zero if not a valid iamge
-
-**/
-UINT16
-EFIAPI
-PeCoffLoaderGetMachineType (
- IN VOID *Pe32Data
- )
-{
- EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION Hdr;
- EFI_IMAGE_DOS_HEADER *DosHdr;
-
- ASSERT (Pe32Data != NULL);
-
- DosHdr = (EFI_IMAGE_DOS_HEADER *)Pe32Data;
- if (DosHdr->e_magic == EFI_IMAGE_DOS_SIGNATURE) {
- //
- // DOS image header is present, so read the PE header after the DOS image header.
- //
- Hdr.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)((UINTN) Pe32Data + (UINTN) ((DosHdr->e_lfanew) & 0x0ffff));
- } else {
- //
- // DOS image header is not present, so PE header is at the image base.
- //
- Hdr.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)Pe32Data;
- }
-
- if (Hdr.Te->Signature == EFI_TE_IMAGE_HEADER_SIGNATURE) {
- return Hdr.Te->Machine;
- } else if (Hdr.Pe32->Signature == EFI_IMAGE_NT_SIGNATURE) {
- return Hdr.Pe32->FileHeader.Machine;
- }
-
- return 0x0000;
-}
-
-/**
- Returns a pointer to the PDB file name for a PE/COFF image that has been
- loaded into system memory with the PE/COFF Loader Library functions.
-
- Returns the PDB file name for the PE/COFF image specified by Pe32Data. If
- the PE/COFF image specified by Pe32Data is not a valid, then NULL is
- returned. If the PE/COFF image specified by Pe32Data does not contain a
- debug directory entry, then NULL is returned. If the debug directory entry
- in the PE/COFF image specified by Pe32Data does not contain a PDB file name,
- then NULL is returned.
- If Pe32Data is NULL, then ASSERT().
-
- @param Pe32Data Pointer to the PE/COFF image that is loaded in system
- memory.
-
- @return The PDB file name for the PE/COFF image specified by Pe32Data or NULL
- if it cannot be retrieved.
-
-**/
-VOID *
-EFIAPI
-PeCoffLoaderGetPdbPointer (
- IN VOID *Pe32Data
- )
-{
- EFI_IMAGE_DOS_HEADER *DosHdr;
- EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION Hdr;
- EFI_IMAGE_DATA_DIRECTORY *DirectoryEntry;
- EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *DebugEntry;
- UINTN DirCount;
- VOID *CodeViewEntryPointer;
- INTN TEImageAdjust;
- UINT32 NumberOfRvaAndSizes;
- UINT16 Magic;
-
- ASSERT (Pe32Data != NULL);
-
- TEImageAdjust = 0;
- DirectoryEntry = NULL;
- DebugEntry = NULL;
- NumberOfRvaAndSizes = 0;
-
- DosHdr = (EFI_IMAGE_DOS_HEADER *)Pe32Data;
- if (DosHdr->e_magic == EFI_IMAGE_DOS_SIGNATURE) {
- //
- // DOS image header is present, so read the PE header after the DOS image header.
- //
- Hdr.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)((UINTN) Pe32Data + (UINTN) ((DosHdr->e_lfanew) & 0x0ffff));
- } else {
- //
- // DOS image header is not present, so PE header is at the image base.
- //
- Hdr.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)Pe32Data;
- }
-
- if (Hdr.Te->Signature == EFI_TE_IMAGE_HEADER_SIGNATURE) {
- if (Hdr.Te->DataDirectory[EFI_TE_IMAGE_DIRECTORY_ENTRY_DEBUG].VirtualAddress != 0) {
- DirectoryEntry = &Hdr.Te->DataDirectory[EFI_TE_IMAGE_DIRECTORY_ENTRY_DEBUG];
- TEImageAdjust = sizeof (EFI_TE_IMAGE_HEADER) - Hdr.Te->StrippedSize;
- DebugEntry = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *)((UINTN) Hdr.Te +
- Hdr.Te->DataDirectory[EFI_TE_IMAGE_DIRECTORY_ENTRY_DEBUG].VirtualAddress +
- TEImageAdjust);
- }
- } else if (Hdr.Pe32->Signature == EFI_IMAGE_NT_SIGNATURE) {
- //
- // NOTE: We use Machine field to identify PE32/PE32+, instead of Magic.
- // It is due to backward-compatibility, for some system might
- // generate PE32+ image with PE32 Magic.
- //
- switch (Hdr.Pe32->FileHeader.Machine) {
- case IMAGE_FILE_MACHINE_I386:
- //
- // Assume PE32 image with IA32 Machine field.
- //
- Magic = EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC;
- break;
- case IMAGE_FILE_MACHINE_X64:
- case IMAGE_FILE_MACHINE_IA64:
- //
- // Assume PE32+ image with X64 or IA64 Machine field
- //
- Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
- break;
- default:
- //
- // For unknow Machine field, use Magic in optional Header
- //
- Magic = Hdr.Pe32->OptionalHeader.Magic;
- }
-
- if (Magic == EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC) {
- //
- // Use PE32 offset get Debug Directory Entry
- //
- NumberOfRvaAndSizes = Hdr.Pe32->OptionalHeader.NumberOfRvaAndSizes;
- DirectoryEntry = (EFI_IMAGE_DATA_DIRECTORY *)&(Hdr.Pe32->OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG]);
- DebugEntry = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *) ((UINTN) Pe32Data + DirectoryEntry->VirtualAddress);
- } else if (Magic == EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC) {
- //
- // Use PE32+ offset get Debug Directory Entry
- //
- NumberOfRvaAndSizes = Hdr.Pe32Plus->OptionalHeader.NumberOfRvaAndSizes;
- DirectoryEntry = (EFI_IMAGE_DATA_DIRECTORY *)&(Hdr.Pe32Plus->OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG]);
- DebugEntry = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *) ((UINTN) Pe32Data + DirectoryEntry->VirtualAddress);
- }
-
- if (NumberOfRvaAndSizes <= EFI_IMAGE_DIRECTORY_ENTRY_DEBUG) {
- DirectoryEntry = NULL;
- DebugEntry = NULL;
- }
- } else {
- return NULL;
- }
-
- if (DebugEntry == NULL || DirectoryEntry == NULL) {
- return NULL;
- }
-
- for (DirCount = 0; DirCount < DirectoryEntry->Size; DirCount += sizeof (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY), DebugEntry++) {
- if (DebugEntry->Type == EFI_IMAGE_DEBUG_TYPE_CODEVIEW) {
- if (DebugEntry->SizeOfData > 0) {
- CodeViewEntryPointer = (VOID *) ((UINTN) DebugEntry->RVA + ((UINTN)Pe32Data) + (UINTN)TEImageAdjust);
- switch (* (UINT32 *) CodeViewEntryPointer) {
- case CODEVIEW_SIGNATURE_NB10:
- return (VOID *) ((CHAR8 *)CodeViewEntryPointer + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY));
- case CODEVIEW_SIGNATURE_RSDS:
- return (VOID *) ((CHAR8 *)CodeViewEntryPointer + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY));
- case CODEVIEW_SIGNATURE_MTOC:
- return (VOID *) ((CHAR8 *)CodeViewEntryPointer + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_MTOC_ENTRY));
- break;
- default:
- break;
- }
- }
- }
- }
-
- return NULL;
-}
-
-/**
- Returns the size of the PE/COFF headers
-
- Returns the size of the PE/COFF header specified by Pe32Data.
- If Pe32Data is NULL, then ASSERT().
-
- @param Pe32Data Pointer to the PE/COFF image that is loaded in system
- memory.
-
- @return Size of PE/COFF header in bytes or zero if not a valid image.
-
-**/
-UINT32
-EFIAPI
-PeCoffGetSizeOfHeaders (
- IN VOID *Pe32Data
- )
-{
- EFI_IMAGE_DOS_HEADER *DosHdr;
- EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION Hdr;
- UINTN SizeOfHeaders;
-
- ASSERT (Pe32Data != NULL);
-
- DosHdr = (EFI_IMAGE_DOS_HEADER *)Pe32Data;
- if (DosHdr->e_magic == EFI_IMAGE_DOS_SIGNATURE) {
- //
- // DOS image header is present, so read the PE header after the DOS image header.
- //
- Hdr.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)((UINTN) Pe32Data + (UINTN) ((DosHdr->e_lfanew) & 0x0ffff));
- } else {
- //
- // DOS image header is not present, so PE header is at the image base.
- //
- Hdr.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)Pe32Data;
- }
-
- if (Hdr.Te->Signature == EFI_TE_IMAGE_HEADER_SIGNATURE) {
- SizeOfHeaders = sizeof (EFI_TE_IMAGE_HEADER) + (UINTN)Hdr.Te->BaseOfCode - (UINTN)Hdr.Te->StrippedSize;
- } else if (Hdr.Pe32->Signature == EFI_IMAGE_NT_SIGNATURE) {
- SizeOfHeaders = Hdr.Pe32->OptionalHeader.SizeOfHeaders;
- } else {
- SizeOfHeaders = 0;
- }
-
- return (UINT32) SizeOfHeaders;
-}
-
diff --git a/Nt32Pkg/Library/PeiNt32OemHookStatusCodeLib/Nt32OemHookStatusCodeLib.c b/Nt32Pkg/Library/PeiNt32OemHookStatusCodeLib/Nt32OemHookStatusCodeLib.c
deleted file mode 100644
index 4e37683400..0000000000
--- a/Nt32Pkg/Library/PeiNt32OemHookStatusCodeLib/Nt32OemHookStatusCodeLib.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/** @file
- OEM hook status code library functions with no library constructor/destructor
-
- Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
- 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: Nt32OemHookStatusCodeLib.c
-
-**/
-
-//
-// The package level header files this module uses
-//
-#include <WinNtPeim.h>
-
-//
-// The protocols, PPI and GUID defintions for this module
-//
-#include <Guid/StatusCodeDataTypeId.h>
-#include <Guid/StatusCodeDataTypeDebug.h>
-#include <Ppi/NtThunk.h>
-//
-// The Library classes this module consumes
-//
-#include <Library/OemHookStatusCodeLib.h>
-#include <Library/DebugLib.h>
-#include <Library/PrintLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/ReportStatusCodeLib.h>
-#include <Library/PeiServicesLib.h>
-
-//
-// Cache of WinNtThunk protocol
-//
-EFI_WIN_NT_THUNK_PROTOCOL *mWinNt;
-
-//
-// Cache of standard output handle .
-//
-HANDLE mStdOut;
-
-/**
-
- Initialize OEM status code device .
-
- @return Always return EFI_SUCCESS.
-
-**/
-EFI_STATUS
-EFIAPI
-OemHookStatusCodeInitialize (
- VOID
- )
-{
- PEI_NT_THUNK_PPI *NtThunkPpi;
- EFI_STATUS Status;
-
-
- //
- // Locate NtThunkPpi for retrieving standard output handle
- //
- Status = PeiServicesLocatePpi (
- &gPeiNtThunkPpiGuid,
- 0,
- NULL,
- (VOID **) &NtThunkPpi
- );
-
- ASSERT_EFI_ERROR (Status);
-
- mWinNt = (EFI_WIN_NT_THUNK_PROTOCOL *) NtThunkPpi->NtThunk ();
-
-
- //
- // Cache standard output handle.
- //
- mStdOut = mWinNt->GetStdHandle (STD_OUTPUT_HANDLE);
-
- return EFI_SUCCESS;
-}
-
-/**
- Report status code to OEM device.
-
- @param CodeType Indicates the type of status code being reported. Type EFI_STATUS_CODE_TYPE is defined in "Related Definitions" below.
-
- @param Value Describes the current status of a hardware or software entity.
- This included information about the class and subclass that is used to classify the entity
- as well as an operation. For progress codes, the operation is the current activity.
- For error codes, it is the exception. For debug codes, it is not defined at this time.
- Type EFI_STATUS_CODE_VALUE is defined in "Related Definitions" below.
- Specific values are discussed in the Intel? Platform Innovation Framework for EFI Status Code Specification.
-
- @param Instance The enumeration of a hardware or software entity within the system.
- A system may contain multiple entities that match a class/subclass pairing.
- The instance differentiates between them. An instance of 0 indicates that instance information is unavailable,
- not meaningful, or not relevant. Valid instance numbers start with 1.
-
-
- @param CallerId This optional parameter may be used to identify the caller.
- This parameter allows the status code driver to apply different rules to different callers.
- Type EFI_GUID is defined in InstallProtocolInterface() in the UEFI 2.0 Specification.
-
-
- @param Data This optional parameter may be used to pass additional data
-
- @return The function always return EFI_SUCCESS.
-
-**/
-EFI_STATUS
-EFIAPI
-OemHookStatusCodeReport (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId, OPTIONAL
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
- )
-{
- CHAR8 *Filename;
- CHAR8 *Description;
- CHAR8 *Format;
- CHAR8 Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE];
- UINT32 ErrorLevel;
- UINT32 LineNumber;
- UINTN CharCount;
- BASE_LIST Marker;
-
- Buffer[0] = '\0';
-
- if (Data != NULL &&
- ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber)) {
- //
- // Print ASSERT() information into output buffer.
- //
- CharCount = AsciiSPrint (
- Buffer,
- sizeof (Buffer),
- "\n\rASSERT!: %a (%d): %a\n\r",
- Filename,
- LineNumber,
- Description
- );
-
- //
- // Callout to standard output.
- //
- mWinNt->WriteFile (
- mStdOut,
- Buffer,
- (DWORD)CharCount,
- (LPDWORD)&CharCount,
- NULL
- );
-
- return EFI_SUCCESS;
-
- } else if (Data != NULL &&
- ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format)) {
- //
- // Print DEBUG() information into output buffer.
- //
- CharCount = AsciiBSPrint (
- Buffer,
- sizeof (Buffer),
- Format,
- Marker
- );
- } else if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) {
- //
- // Print ERROR information into output buffer.
- //
- CharCount = AsciiSPrint (
- Buffer,
- sizeof (Buffer),
- "ERROR: C%x:V%x I%x",
- CodeType,
- Value,
- Instance
- );
-
- //
- // Make sure we don't try to print values that weren't intended to be printed, especially NULL GUID pointers.
- //
-
- if (CallerId != NULL) {
- CharCount += AsciiSPrint (
- &Buffer[CharCount - 1],
- (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)),
- " %g",
- CallerId
- );
- }
-
- if (Data != NULL) {
- CharCount += AsciiSPrint (
- &Buffer[CharCount - 1],
- (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)),
- " %p",
- Data
- );
- }
-
- CharCount += AsciiSPrint (
- &Buffer[CharCount - 1],
- (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)),
- "\n\r"
- );
- } else if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) {
- CharCount = AsciiSPrint (
- Buffer,
- sizeof (Buffer),
- "PROGRESS CODE: V%x I%x\n\r",
- Value,
- Instance
- );
- } else {
- CharCount = AsciiSPrint (
- Buffer,
- sizeof (Buffer),
- "Undefined: C%x:V%x I%x\n\r",
- CodeType,
- Value,
- Instance
- );
- }
-
- //
- // Callout to standard output.
- //
- mWinNt->WriteFile (
- mStdOut,
- Buffer,
- (DWORD)CharCount,
- (LPDWORD)&CharCount,
- NULL
- );
-
- return EFI_SUCCESS;
-}
-
diff --git a/Nt32Pkg/Library/PeiNt32OemHookStatusCodeLib/PeiNt32OemHookStatusCodeLib.inf b/Nt32Pkg/Library/PeiNt32OemHookStatusCodeLib/PeiNt32OemHookStatusCodeLib.inf
deleted file mode 100644
index f01dd15555..0000000000
--- a/Nt32Pkg/Library/PeiNt32OemHookStatusCodeLib/PeiNt32OemHookStatusCodeLib.inf
+++ /dev/null
@@ -1,50 +0,0 @@
-## @file
-# Memory Status Code Library for UEFI drivers
-#
-# Lib to provide memory journal status code reporting Routines
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
-# 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]
- INF_VERSION = 0x00010005
- BASE_NAME = PeiNt32OemHookStatusCodeLib
- FILE_GUID = 0C2070F9-02A7-4e8e-B584-84EA922363FB
- MODULE_TYPE = PEIM
- VERSION_STRING = 1.0
- LIBRARY_CLASS = OemHookStatusCodeLib|PEIM
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-# VALID_ARCHITECTURES = IA32
-#
-
-[Sources]
- Nt32OemHookStatusCodeLib.c
-
-
-[Packages]
- MdePkg/MdePkg.dec
- MdeModulePkg/MdeModulePkg.dec
- Nt32Pkg/Nt32Pkg.dec
-
-[LibraryClasses]
- PeiServicesLib
- ReportStatusCodeLib
- BaseMemoryLib
- PrintLib
- DebugLib
-
-[Ppis]
- gPeiNtThunkPpiGuid # PPI ALWAYS_CONSUMED
-
diff --git a/Nt32Pkg/Library/PeiNt32PeCoffExtraActionLib/PeiNt32PeCoffExtraActionLib.c b/Nt32Pkg/Library/PeiNt32PeCoffExtraActionLib/PeiNt32PeCoffExtraActionLib.c
deleted file mode 100644
index b05834e974..0000000000
--- a/Nt32Pkg/Library/PeiNt32PeCoffExtraActionLib/PeiNt32PeCoffExtraActionLib.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/**@file
-
-Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
-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:
-
- PeiNt32PeCoffExtraActionLib.c
-
-Abstract:
-
- Provides services to perform additional actions to relocate and unload
- PE/Coff image for NT32 environment specific purpose such as souce level debug.
- This version only works for PEI phase
-
-
-**/
-//
-// The package level header files this module uses
-//
-#include <PiPei.h>
-#include <WinNtPeim.h>
-
-//
-// The protocols, PPI and GUID defintions for this module
-//
-#include <Ppi/NtThunk.h>
-
-#include <PiPei.h>
-#include <Library/PeCoffLib.h>
-#include <Library/PeiServicesLib.h>
-#include <Library/DebugLib.h>
-#include <Library/BaseLib.h>
-#include <Library/PeCoffExtraActionLib.h>
-
-//
-// Cache of WinNtThunk protocol
-//
-EFI_WIN_NT_THUNK_PROTOCOL *mWinNt = NULL;
-
-/**
- The function caches the pointer of the WinNT thunk functions
- It will ASSERT() if NT thunk ppi is not installed.
-
- @retval EFI_SUCCESS WinNT thunk protocol is found and cached.
-
-**/
-EFI_STATUS
-EFIAPI
-Nt32PeCoffGetWinNtThunkStucture (
- )
-{
- PEI_NT_THUNK_PPI *NtThunkPpi;
- EFI_STATUS Status;
-
-
- //
- // Locate NtThunkPpi for retrieving standard output handle
- //
- Status = PeiServicesLocatePpi (
- &gPeiNtThunkPpiGuid,
- 0,
- NULL,
- (VOID **) &NtThunkPpi
- );
-
- ASSERT_EFI_ERROR (Status);
-
- mWinNt = (EFI_WIN_NT_THUNK_PROTOCOL *) NtThunkPpi->NtThunk ();
-
- return EFI_SUCCESS;
-}
-
-/**
- Convert the passed in Ascii string to Unicode.
-
- This function Convert the passed in Ascii string to Unicode.Optionally return
- the length of the strings..
-
- @param AsciiString Pointer to an AscII string
- @param StrLen Length of string
-
- @return Pointer to malloc'ed Unicode version of Ascii
-
-**/
-CHAR16 *
-AsciiToUnicode (
- IN CHAR8 *Ascii,
- IN UINTN *StrLen OPTIONAL
- )
-{
- UINTN Index;
- CHAR16 *Unicode;
-
- //
- // Allocate a buffer for unicode string
- //
- for (Index = 0; Ascii[Index] != '\0'; Index++)
- ;
- Unicode = mWinNt->HeapAlloc ( mWinNt->GetProcessHeap (),
- HEAP_ZERO_MEMORY,
- ((Index + 1) * sizeof (CHAR16))
- );
- if (Unicode == NULL) {
- return NULL;
- }
-
- for (Index = 0; Ascii[Index] != '\0'; Index++) {
- Unicode[Index] = (CHAR16) Ascii[Index];
- }
-
- Unicode[Index] = '\0';
-
- if (StrLen != NULL) {
- *StrLen = Index;
- }
-
- return Unicode;
-}
-
-/**
- Performs additional actions after a PE/COFF image has been loaded and relocated.
-
- For NT32, this function load symbols to support source level debugging.
-
- If ImageContext is NULL, then ASSERT().
-
- @param ImageContext Pointer to the image context structure that describes the
- PE/COFF image that has already been loaded and relocated.
-
-**/
-VOID
-EFIAPI
-PeCoffLoaderRelocateImageExtraAction (
- IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
- )
-{
- VOID *DllEntryPoint;
- CHAR16 *DllFileName;
- HMODULE Library;
- UINTN Index;
-
- ASSERT (ImageContext != NULL);
-
- if (mWinNt == NULL) {
- Nt32PeCoffGetWinNtThunkStucture ();
- }
- //
- // If we load our own PE COFF images the Windows debugger can not source
- // level debug our code. If a valid PDB pointer exists usw it to load
- // the *.dll file as a library using Windows* APIs. This allows
- // source level debug. The image is still loaded and reloaced
- // in the Framework memory space like on a real system (by the code above),
- // but the entry point points into the DLL loaded by the code bellow.
- //
-
- DllEntryPoint = NULL;
-
- //
- // Load the DLL if it's not an EBC image.
- //
- if ((ImageContext->PdbPointer != NULL) &&
- (ImageContext->Machine != EFI_IMAGE_MACHINE_EBC)) {
- //
- // Convert filename from ASCII to Unicode
- //
- DllFileName = AsciiToUnicode (ImageContext->PdbPointer, &Index);
-
- //
- // Check that we have a valid filename
- //
- if (Index < 5 || DllFileName[Index - 4] != '.') {
- mWinNt->HeapFree (mWinNt->GetProcessHeap (), 0, DllFileName);
-
- //
- // Never return an error if PeCoffLoaderRelocateImage() succeeded.
- // The image will run, but we just can't source level debug. If we
- // return an error the image will not run.
- //
- return;
- }
- //
- // Replace .PDB with .DLL on the filename
- //
- DllFileName[Index - 3] = 'D';
- DllFileName[Index - 2] = 'L';
- DllFileName[Index - 1] = 'L';
-
- //
- // Load the .DLL file into the user process's address space for source
- // level debug
- //
- Library = mWinNt->LoadLibraryEx (DllFileName, NULL, DONT_RESOLVE_DLL_REFERENCES);
- if (Library != NULL) {
- //
- // InitializeDriver is the entry point we put in all our EFI DLL's. The
- // DONT_RESOLVE_DLL_REFERENCES argument to LoadLIbraryEx() supresses the
- // normal DLL entry point of DllMain, and prevents other modules that are
- // referenced in side the DllFileName from being loaded. There is no error
- // checking as the we can point to the PE32 image loaded by Tiano. This
- // step is only needed for source level debuging
- //
- DllEntryPoint = (VOID *) (UINTN) mWinNt->GetProcAddress (Library, "InitializeDriver");
-
- }
-
- if ((Library != NULL) && (DllEntryPoint != NULL)) {
- ImageContext->EntryPoint = (EFI_PHYSICAL_ADDRESS) (UINTN) DllEntryPoint;
- DEBUG ((EFI_D_INFO, "LoadLibraryEx (%s,\n NULL, DONT_RESOLVE_DLL_REFERENCES)\n", DllFileName));
- } else {
- DEBUG ((EFI_D_ERROR, "WARNING: No source level debug %s. \n", DllFileName));
- }
-
- mWinNt->HeapFree (mWinNt->GetProcessHeap (), 0, DllFileName);
- }
-
- //
- // Never return an error if PeCoffLoaderRelocateImage() succeeded.
- // The image will run, but we just can't source level debug. If we
- // return an error the image will not run.
- //
- return;
-}
-
-/**
- Performs additional actions just before a PE/COFF image is unloaded. Any resources
- that were allocated by PeCoffLoaderRelocateImageExtraAction() must be freed.
-
- For NT32, this function unloads symbols for source level debugging.
-
- If ImageContext is NULL, then ASSERT().
-
- @param ImageContext Pointer to the image context structure that describes the
- PE/COFF image that is being unloaded.
-
-**/
-VOID
-EFIAPI
-PeCoffLoaderUnloadImageExtraAction (
- IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
- )
-{
- ASSERT (ImageContext != NULL);
-}
diff --git a/Nt32Pkg/Library/PeiNt32PeCoffExtraActionLib/PeiNt32PeCoffExtraActionLib.inf b/Nt32Pkg/Library/PeiNt32PeCoffExtraActionLib/PeiNt32PeCoffExtraActionLib.inf
deleted file mode 100644
index 17b0a38b4c..0000000000
--- a/Nt32Pkg/Library/PeiNt32PeCoffExtraActionLib/PeiNt32PeCoffExtraActionLib.inf
+++ /dev/null
@@ -1,45 +0,0 @@
-## @file
-# PeCoff extra action libary for Pei phase that run NT32 emulator.
-#
-# Lib to provide memory journal status code reporting Routines
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
-# 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]
- INF_VERSION = 0x00010005
- BASE_NAME = PeiNt32PeCoffExtraActionLib
- FILE_GUID = 057C712A-84F0-4f4a-94CB-713EEF002E2F
- MODULE_TYPE = PEIM
- VERSION_STRING = 1.0
- LIBRARY_CLASS = PeCoffExtraActionLib|PEI_CORE PEIM
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-# VALID_ARCHITECTURES = IA32
-#
-
-[Sources]
- PeiNt32PeCoffExtraActionLib.c
-
-[Packages]
- MdePkg/MdePkg.dec
- Nt32Pkg/Nt32Pkg.dec
-
-[LibraryClasses]
- BaseLib
- PeiServicesLib
- DebugLib
-
-[Ppis]
- gPeiNtThunkPpiGuid # PPI ALWAYS_CONSUMED
diff --git a/Nt32Pkg/Library/PlatformBootManagerLib/MemoryTest.c b/Nt32Pkg/Library/PlatformBootManagerLib/MemoryTest.c
deleted file mode 100644
index 9f57466e8c..0000000000
--- a/Nt32Pkg/Library/PlatformBootManagerLib/MemoryTest.c
+++ /dev/null
@@ -1,1086 +0,0 @@
-/** @file
- Perform the platform memory test
-
-Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>
-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.
-
-**/
-
-#include "PlatformBootManager.h"
-
-EFI_HII_HANDLE gStringPackHandle = NULL;
-EFI_GUID mPlatformBootManagerStringPackGuid = {
- 0x154dd51, 0x9079, 0x4a10, { 0x89, 0x5c, 0x9c, 0x7, 0x72, 0x81, 0x57, 0x88 }
- };
-// extern UINT8 BdsDxeStrings[];
-
-//
-// BDS Platform Functions
-//
-/**
-
- Show progress bar with title above it. It only works in Graphics mode.
-
-
- @param TitleForeground Foreground color for Title.
- @param TitleBackground Background color for Title.
- @param Title Title above progress bar.
- @param ProgressColor Progress bar color.
- @param Progress Progress (0-100)
- @param PreviousValue The previous value of the progress.
-
- @retval EFI_STATUS Success update the progress bar
-
-**/
-EFI_STATUS
-PlatformBootManagerShowProgress (
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleForeground,
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleBackground,
- IN CHAR16 *Title,
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL ProgressColor,
- IN UINTN Progress,
- IN UINTN PreviousValue
- )
-{
- EFI_STATUS Status;
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;
- UINT32 SizeOfX;
- UINT32 SizeOfY;
- UINT32 ColorDepth;
- UINT32 RefreshRate;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Color;
- UINTN BlockHeight;
- UINTN BlockWidth;
- UINTN BlockNum;
- UINTN PosX;
- UINTN PosY;
- UINTN Index;
-
- if (Progress > 100) {
- return EFI_INVALID_PARAMETER;
- }
-
- UgaDraw = NULL;
- Status = gBS->HandleProtocol (
- gST->ConsoleOutHandle,
- &gEfiGraphicsOutputProtocolGuid,
- (VOID **) &GraphicsOutput
- );
- if (EFI_ERROR (Status) && FeaturePcdGet (PcdUgaConsumeSupport)) {
- GraphicsOutput = NULL;
-
- Status = gBS->HandleProtocol (
- gST->ConsoleOutHandle,
- &gEfiUgaDrawProtocolGuid,
- (VOID **) &UgaDraw
- );
- }
- if (EFI_ERROR (Status)) {
- return EFI_UNSUPPORTED;
- }
-
- SizeOfX = 0;
- SizeOfY = 0;
- if (GraphicsOutput != NULL) {
- SizeOfX = GraphicsOutput->Mode->Info->HorizontalResolution;
- SizeOfY = GraphicsOutput->Mode->Info->VerticalResolution;
- } else if (UgaDraw != NULL) {
- Status = UgaDraw->GetMode (
- UgaDraw,
- &SizeOfX,
- &SizeOfY,
- &ColorDepth,
- &RefreshRate
- );
- if (EFI_ERROR (Status)) {
- return EFI_UNSUPPORTED;
- }
- } else {
- return EFI_UNSUPPORTED;
- }
-
- BlockWidth = SizeOfX / 100;
- BlockHeight = SizeOfY / 50;
-
- BlockNum = Progress;
-
- PosX = 0;
- PosY = SizeOfY * 48 / 50;
-
- if (BlockNum == 0) {
- //
- // Clear progress area
- //
- SetMem (&Color, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0x0);
-
- if (GraphicsOutput != NULL) {
- Status = GraphicsOutput->Blt (
- GraphicsOutput,
- &Color,
- EfiBltVideoFill,
- 0,
- 0,
- 0,
- PosY - EFI_GLYPH_HEIGHT - 1,
- SizeOfX,
- SizeOfY - (PosY - EFI_GLYPH_HEIGHT - 1),
- SizeOfX * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
- );
- } else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
- Status = UgaDraw->Blt (
- UgaDraw,
- (EFI_UGA_PIXEL *) &Color,
- EfiUgaVideoFill,
- 0,
- 0,
- 0,
- PosY - EFI_GLYPH_HEIGHT - 1,
- SizeOfX,
- SizeOfY - (PosY - EFI_GLYPH_HEIGHT - 1),
- SizeOfX * sizeof (EFI_UGA_PIXEL)
- );
- } else {
- return EFI_UNSUPPORTED;
- }
- }
- //
- // Show progress by drawing blocks
- //
- for (Index = PreviousValue; Index < BlockNum; Index++) {
- PosX = Index * BlockWidth;
- if (GraphicsOutput != NULL) {
- Status = GraphicsOutput->Blt (
- GraphicsOutput,
- &ProgressColor,
- EfiBltVideoFill,
- 0,
- 0,
- PosX,
- PosY,
- BlockWidth - 1,
- BlockHeight,
- (BlockWidth) * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
- );
- } else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
- Status = UgaDraw->Blt (
- UgaDraw,
- (EFI_UGA_PIXEL *) &ProgressColor,
- EfiUgaVideoFill,
- 0,
- 0,
- PosX,
- PosY,
- BlockWidth - 1,
- BlockHeight,
- (BlockWidth) * sizeof (EFI_UGA_PIXEL)
- );
- } else {
- return EFI_UNSUPPORTED;
- }
- }
-
- PrintXY (
- (SizeOfX - StrLen (Title) * EFI_GLYPH_WIDTH) / 2,
- PosY - EFI_GLYPH_HEIGHT - 1,
- &TitleForeground,
- &TitleBackground,
- Title
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Perform the memory test base on the memory test intensive level,
- and update the memory resource.
-
- @param Level The memory test intensive level.
-
- @retval EFI_STATUS Success test all the system memory and update
- the memory resource
-
-**/
-EFI_STATUS
-PlatformBootManagerMemoryTest (
- IN EXTENDMEM_COVERAGE_LEVEL Level
- )
-{
- EFI_STATUS Status;
- EFI_STATUS KeyStatus;
- EFI_STATUS InitStatus;
- EFI_STATUS ReturnStatus;
- BOOLEAN RequireSoftECCInit;
- EFI_GENERIC_MEMORY_TEST_PROTOCOL *GenMemoryTest;
- UINT64 TestedMemorySize;
- UINT64 TotalMemorySize;
- UINTN TestPercent;
- UINT64 PreviousValue;
- BOOLEAN ErrorOut;
- BOOLEAN TestAbort;
- EFI_INPUT_KEY Key;
- CHAR16 StrPercent[80];
- CHAR16 *StrTotalMemory;
- CHAR16 *Pos;
- CHAR16 *TmpStr;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Color;
- UINT32 TempData;
- UINTN StrTotalMemorySize;
-
- ReturnStatus = EFI_SUCCESS;
- ZeroMem (&Key, sizeof (EFI_INPUT_KEY));
-
- StrTotalMemorySize = 128;
- Pos = AllocateZeroPool (StrTotalMemorySize);
- ASSERT (Pos != NULL);
-
- if (gStringPackHandle == NULL) {
- gStringPackHandle = HiiAddPackages (
- &mPlatformBootManagerStringPackGuid,
- gImageHandle,
- PlatformBootManagerLibStrings,
- NULL
- );
- ASSERT (gStringPackHandle != NULL);
- }
-
- StrTotalMemory = Pos;
-
- TestedMemorySize = 0;
- TotalMemorySize = 0;
- PreviousValue = 0;
- ErrorOut = FALSE;
- TestAbort = FALSE;
-
- SetMem (&Foreground, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0xff);
- SetMem (&Background, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0x0);
- SetMem (&Color, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0xff);
-
- RequireSoftECCInit = FALSE;
-
- Status = gBS->LocateProtocol (
- &gEfiGenericMemTestProtocolGuid,
- NULL,
- (VOID **) &GenMemoryTest
- );
- if (EFI_ERROR (Status)) {
- FreePool (Pos);
- return EFI_SUCCESS;
- }
-
- InitStatus = GenMemoryTest->MemoryTestInit (
- GenMemoryTest,
- Level,
- &RequireSoftECCInit
- );
- if (InitStatus == EFI_NO_MEDIA) {
- //
- // The PEI codes also have the relevant memory test code to check the memory,
- // it can select to test some range of the memory or all of them. If PEI code
- // checks all the memory, this BDS memory test will has no not-test memory to
- // do the test, and then the status of EFI_NO_MEDIA will be returned by
- // "MemoryTestInit". So it does not need to test memory again, just return.
- //
- FreePool (Pos);
- return EFI_SUCCESS;
- }
-
- if (!FeaturePcdGet(PcdBootlogoOnlyEnable)) {
- TmpStr = HiiGetString (gStringPackHandle, STRING_TOKEN (STR_ESC_TO_SKIP_MEM_TEST), NULL);
-
- if (TmpStr != NULL) {
- PrintXY (10, 10, NULL, NULL, TmpStr);
- FreePool (TmpStr);
- }
- } else {
- DEBUG ((EFI_D_INFO, "Enter memory test.\n"));
- }
- do {
- Status = GenMemoryTest->PerformMemoryTest (
- GenMemoryTest,
- &TestedMemorySize,
- &TotalMemorySize,
- &ErrorOut,
- TestAbort
- );
- if (ErrorOut && (Status == EFI_DEVICE_ERROR)) {
- TmpStr = HiiGetString (gStringPackHandle, STRING_TOKEN (STR_SYSTEM_MEM_ERROR), NULL);
- if (TmpStr != NULL) {
- PrintXY (10, 10, NULL, NULL, TmpStr);
- FreePool (TmpStr);
- }
-
- ASSERT (0);
- }
-
- if (!FeaturePcdGet(PcdBootlogoOnlyEnable)) {
- TempData = (UINT32) DivU64x32 (TotalMemorySize, 16);
- TestPercent = (UINTN) DivU64x32 (
- DivU64x32 (MultU64x32 (TestedMemorySize, 100), 16),
- TempData
- );
- if (TestPercent != PreviousValue) {
- UnicodeValueToString (StrPercent, 0, TestPercent, 0);
- TmpStr = HiiGetString (gStringPackHandle, STRING_TOKEN (STR_MEMORY_TEST_PERCENT), NULL);
- if (TmpStr != NULL) {
- //
- // TmpStr size is 64, StrPercent is reserved to 16.
- //
- StrnCatS (
- StrPercent,
- sizeof (StrPercent) / sizeof (CHAR16),
- TmpStr,
- sizeof (StrPercent) / sizeof (CHAR16) - StrLen (StrPercent) - 1
- );
- PrintXY (10, 10, NULL, NULL, StrPercent);
- FreePool (TmpStr);
- }
-
- TmpStr = HiiGetString (gStringPackHandle, STRING_TOKEN (STR_PERFORM_MEM_TEST), NULL);
- if (TmpStr != NULL) {
- PlatformBootManagerShowProgress (
- Foreground,
- Background,
- TmpStr,
- Color,
- TestPercent,
- (UINTN) PreviousValue
- );
- FreePool (TmpStr);
- }
- }
-
- PreviousValue = TestPercent;
- } else {
- DEBUG ((EFI_D_INFO, "Perform memory test (ESC to skip).\n"));
- }
-
- if (!PcdGetBool (PcdConInConnectOnDemand)) {
- KeyStatus = gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);
- if (!EFI_ERROR (KeyStatus) && (Key.ScanCode == SCAN_ESC)) {
- if (!RequireSoftECCInit) {
- if (!FeaturePcdGet(PcdBootlogoOnlyEnable)) {
- TmpStr = HiiGetString (gStringPackHandle, STRING_TOKEN (STR_PERFORM_MEM_TEST), NULL);
- if (TmpStr != NULL) {
- PlatformBootManagerShowProgress (
- Foreground,
- Background,
- TmpStr,
- Color,
- 100,
- (UINTN) PreviousValue
- );
- FreePool (TmpStr);
- }
-
- PrintXY (10, 10, NULL, NULL, L"100");
- }
- Status = GenMemoryTest->Finished (GenMemoryTest);
- goto Done;
- }
-
- TestAbort = TRUE;
- }
- }
- } while (Status != EFI_NOT_FOUND);
-
- Status = GenMemoryTest->Finished (GenMemoryTest);
-
-Done:
- if (!FeaturePcdGet(PcdBootlogoOnlyEnable)) {
- UnicodeValueToString (StrTotalMemory, COMMA_TYPE, TotalMemorySize, 0);
- if (StrTotalMemory[0] == L',') {
- StrTotalMemory++;
- StrTotalMemorySize -= sizeof (CHAR16);
- }
-
- TmpStr = HiiGetString (gStringPackHandle, STRING_TOKEN (STR_MEM_TEST_COMPLETED), NULL);
- if (TmpStr != NULL) {
- StrnCatS (
- StrTotalMemory,
- StrTotalMemorySize / sizeof (CHAR16),
- TmpStr,
- StrTotalMemorySize / sizeof (CHAR16) - StrLen (StrTotalMemory) - 1
- );
- FreePool (TmpStr);
- }
-
- PrintXY (10, 10, NULL, NULL, StrTotalMemory);
- PlatformBootManagerShowProgress (
- Foreground,
- Background,
- StrTotalMemory,
- Color,
- 100,
- (UINTN) PreviousValue
- );
-
- } else {
- DEBUG ((EFI_D_INFO, "%d bytes of system memory tested OK\r\n", TotalMemorySize));
- }
-
- FreePool (Pos);
- return ReturnStatus;
-}
-
-/**
- Convert a *.BMP graphics image to a GOP blt buffer. If a NULL Blt buffer
- is passed in a GopBlt buffer will be allocated by this routine. If a GopBlt
- buffer is passed in it will be used if it is big enough.
-
- @param BmpImage Pointer to BMP file
- @param BmpImageSize Number of bytes in BmpImage
- @param GopBlt Buffer containing GOP version of BmpImage.
- @param GopBltSize Size of GopBlt in bytes.
- @param PixelHeight Height of GopBlt/BmpImage in pixels
- @param PixelWidth Width of GopBlt/BmpImage in pixels
-
- @retval EFI_SUCCESS GopBlt and GopBltSize are returned.
- @retval EFI_UNSUPPORTED BmpImage is not a valid *.BMP image
- @retval EFI_BUFFER_TOO_SMALL The passed in GopBlt buffer is not big enough.
- GopBltSize will contain the required size.
- @retval EFI_OUT_OF_RESOURCES No enough buffer to allocate.
-
-**/
-EFI_STATUS
-PlatformBootManagerConvertBmpToGopBlt (
- IN VOID *BmpImage,
- IN UINTN BmpImageSize,
- IN OUT VOID **GopBlt,
- IN OUT UINTN *GopBltSize,
- OUT UINTN *PixelHeight,
- OUT UINTN *PixelWidth
- )
-{
- UINT8 *Image;
- UINT8 *ImageHeader;
- BMP_IMAGE_HEADER *BmpHeader;
- BMP_COLOR_MAP *BmpColorMap;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Blt;
- UINT64 BltBufferSize;
- UINTN Index;
- UINTN Height;
- UINTN Width;
- UINTN ImageIndex;
- UINT32 DataSizePerLine;
- BOOLEAN IsAllocated;
- UINT32 ColorMapNum;
-
- if (sizeof (BMP_IMAGE_HEADER) > BmpImageSize) {
- return EFI_INVALID_PARAMETER;
- }
-
- BmpHeader = (BMP_IMAGE_HEADER *) BmpImage;
-
- if (BmpHeader->CharB != 'B' || BmpHeader->CharM != 'M') {
- return EFI_UNSUPPORTED;
- }
-
- //
- // Doesn't support compress.
- //
- if (BmpHeader->CompressionType != 0) {
- return EFI_UNSUPPORTED;
- }
-
- //
- // Only support BITMAPINFOHEADER format.
- // BITMAPFILEHEADER + BITMAPINFOHEADER = BMP_IMAGE_HEADER
- //
- if (BmpHeader->HeaderSize != sizeof (BMP_IMAGE_HEADER) - OFFSET_OF(BMP_IMAGE_HEADER, HeaderSize)) {
- return EFI_UNSUPPORTED;
- }
-
- //
- // The data size in each line must be 4 byte alignment.
- //
- DataSizePerLine = ((BmpHeader->PixelWidth * BmpHeader->BitPerPixel + 31) >> 3) & (~0x3);
- BltBufferSize = MultU64x32 (DataSizePerLine, BmpHeader->PixelHeight);
- if (BltBufferSize > (UINT32) ~0) {
- return EFI_INVALID_PARAMETER;
- }
-
- if ((BmpHeader->Size != BmpImageSize) ||
- (BmpHeader->Size < BmpHeader->ImageOffset) ||
- (BmpHeader->Size - BmpHeader->ImageOffset != BmpHeader->PixelHeight * DataSizePerLine)) {
- return EFI_INVALID_PARAMETER;
- }
-
- //
- // Calculate Color Map offset in the image.
- //
- Image = BmpImage;
- BmpColorMap = (BMP_COLOR_MAP *) (Image + sizeof (BMP_IMAGE_HEADER));
- if (BmpHeader->ImageOffset < sizeof (BMP_IMAGE_HEADER)) {
- return EFI_INVALID_PARAMETER;
- }
-
- if (BmpHeader->ImageOffset > sizeof (BMP_IMAGE_HEADER)) {
- switch (BmpHeader->BitPerPixel) {
- case 1:
- ColorMapNum = 2;
- break;
- case 4:
- ColorMapNum = 16;
- break;
- case 8:
- ColorMapNum = 256;
- break;
- default:
- ColorMapNum = 0;
- break;
- }
- //
- // BMP file may has padding data between the bmp header section and the bmp data section.
- //
- if (BmpHeader->ImageOffset - sizeof (BMP_IMAGE_HEADER) < sizeof (BMP_COLOR_MAP) * ColorMapNum) {
- return EFI_INVALID_PARAMETER;
- }
- }
-
- //
- // Calculate graphics image data address in the image
- //
- Image = ((UINT8 *) BmpImage) + BmpHeader->ImageOffset;
- ImageHeader = Image;
-
- //
- // Calculate the BltBuffer needed size.
- //
- BltBufferSize = MultU64x32 ((UINT64) BmpHeader->PixelWidth, BmpHeader->PixelHeight);
- //
- // Ensure the BltBufferSize * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL) doesn't overflow
- //
- if (BltBufferSize > DivU64x32 ((UINTN) ~0, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL))) {
- return EFI_UNSUPPORTED;
- }
- BltBufferSize = MultU64x32 (BltBufferSize, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL));
-
- IsAllocated = FALSE;
- if (*GopBlt == NULL) {
- //
- // GopBlt is not allocated by caller.
- //
- *GopBltSize = (UINTN) BltBufferSize;
- *GopBlt = AllocatePool (*GopBltSize);
- IsAllocated = TRUE;
- if (*GopBlt == NULL) {
- return EFI_OUT_OF_RESOURCES;
- }
- } else {
- //
- // GopBlt has been allocated by caller.
- //
- if (*GopBltSize < (UINTN) BltBufferSize) {
- *GopBltSize = (UINTN) BltBufferSize;
- return EFI_BUFFER_TOO_SMALL;
- }
- }
-
- *PixelWidth = BmpHeader->PixelWidth;
- *PixelHeight = BmpHeader->PixelHeight;
-
- //
- // Convert image from BMP to Blt buffer format
- //
- BltBuffer = *GopBlt;
- for (Height = 0; Height < BmpHeader->PixelHeight; Height++) {
- Blt = &BltBuffer[(BmpHeader->PixelHeight - Height - 1) * BmpHeader->PixelWidth];
- for (Width = 0; Width < BmpHeader->PixelWidth; Width++, Image++, Blt++) {
- switch (BmpHeader->BitPerPixel) {
- case 1:
- //
- // Convert 1-bit (2 colors) BMP to 24-bit color
- //
- for (Index = 0; Index < 8 && Width < BmpHeader->PixelWidth; Index++) {
- Blt->Red = BmpColorMap[((*Image) >> (7 - Index)) & 0x1].Red;
- Blt->Green = BmpColorMap[((*Image) >> (7 - Index)) & 0x1].Green;
- Blt->Blue = BmpColorMap[((*Image) >> (7 - Index)) & 0x1].Blue;
- Blt++;
- Width++;
- }
-
- Blt--;
- Width--;
- break;
-
- case 4:
- //
- // Convert 4-bit (16 colors) BMP Palette to 24-bit color
- //
- Index = (*Image) >> 4;
- Blt->Red = BmpColorMap[Index].Red;
- Blt->Green = BmpColorMap[Index].Green;
- Blt->Blue = BmpColorMap[Index].Blue;
- if (Width < (BmpHeader->PixelWidth - 1)) {
- Blt++;
- Width++;
- Index = (*Image) & 0x0f;
- Blt->Red = BmpColorMap[Index].Red;
- Blt->Green = BmpColorMap[Index].Green;
- Blt->Blue = BmpColorMap[Index].Blue;
- }
- break;
-
- case 8:
- //
- // Convert 8-bit (256 colors) BMP Palette to 24-bit color
- //
- Blt->Red = BmpColorMap[*Image].Red;
- Blt->Green = BmpColorMap[*Image].Green;
- Blt->Blue = BmpColorMap[*Image].Blue;
- break;
-
- case 24:
- //
- // It is 24-bit BMP.
- //
- Blt->Blue = *Image++;
- Blt->Green = *Image++;
- Blt->Red = *Image;
- break;
-
- default:
- //
- // Other bit format BMP is not supported.
- //
- if (IsAllocated) {
- FreePool (*GopBlt);
- *GopBlt = NULL;
- }
- return EFI_UNSUPPORTED;
- break;
- };
-
- }
-
- ImageIndex = (UINTN) (Image - ImageHeader);
- if ((ImageIndex % 4) != 0) {
- //
- // Bmp Image starts each row on a 32-bit boundary!
- //
- Image = Image + (4 - (ImageIndex % 4));
- }
- }
-
- return EFI_SUCCESS;
-}
-
-/**
- Use SystemTable Conout to stop video based Simple Text Out consoles from going
- to the video device. Put up LogoFile on every video device that is a console.
-
- @param[in] LogoFile File name of logo to display on the center of the screen.
-
- @retval EFI_SUCCESS ConsoleControl has been flipped to graphics and logo displayed.
- @retval EFI_UNSUPPORTED Logo not found
-
-**/
-EFI_STATUS
-PlatformBootManagerEnableQuietBoot (
- IN EFI_GUID *LogoFile
- )
-{
- EFI_STATUS Status;
- EFI_OEM_BADGING_PROTOCOL *Badging;
- UINT32 SizeOfX;
- UINT32 SizeOfY;
- INTN DestX;
- INTN DestY;
- UINT8 *ImageData;
- UINTN ImageSize;
- UINTN BltSize;
- UINT32 Instance;
- EFI_BADGING_FORMAT Format;
- EFI_BADGING_DISPLAY_ATTRIBUTE Attribute;
- UINTN CoordinateX;
- UINTN CoordinateY;
- UINTN Height;
- UINTN Width;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Blt;
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;
- UINT32 ColorDepth;
- UINT32 RefreshRate;
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
- EFI_BOOT_LOGO_PROTOCOL *BootLogo;
- UINTN NumberOfLogos;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *LogoBlt;
- UINTN LogoDestX;
- UINTN LogoDestY;
- UINTN LogoHeight;
- UINTN LogoWidth;
- UINTN NewDestX;
- UINTN NewDestY;
- UINTN NewHeight;
- UINTN NewWidth;
- UINT64 BufferSize;
-
- UgaDraw = NULL;
- //
- // Try to open GOP first
- //
- Status = gBS->HandleProtocol (gST->ConsoleOutHandle, &gEfiGraphicsOutputProtocolGuid, (VOID **) &GraphicsOutput);
- if (EFI_ERROR (Status) && FeaturePcdGet (PcdUgaConsumeSupport)) {
- GraphicsOutput = NULL;
- //
- // Open GOP failed, try to open UGA
- //
- Status = gBS->HandleProtocol (gST->ConsoleOutHandle, &gEfiUgaDrawProtocolGuid, (VOID **) &UgaDraw);
- }
- if (EFI_ERROR (Status)) {
- return EFI_UNSUPPORTED;
- }
-
- //
- // Try to open Boot Logo Protocol.
- //
- BootLogo = NULL;
- gBS->LocateProtocol (&gEfiBootLogoProtocolGuid, NULL, (VOID **) &BootLogo);
-
- //
- // Erase Cursor from screen
- //
- gST->ConOut->EnableCursor (gST->ConOut, FALSE);
-
- Badging = NULL;
- Status = gBS->LocateProtocol (&gEfiOEMBadgingProtocolGuid, NULL, (VOID **) &Badging);
-
- if (GraphicsOutput != NULL) {
- SizeOfX = GraphicsOutput->Mode->Info->HorizontalResolution;
- SizeOfY = GraphicsOutput->Mode->Info->VerticalResolution;
-
- } else if (UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {
- Status = UgaDraw->GetMode (UgaDraw, &SizeOfX, &SizeOfY, &ColorDepth, &RefreshRate);
- if (EFI_ERROR (Status)) {
- return EFI_UNSUPPORTED;
- }
- } else {
- return EFI_UNSUPPORTED;
- }
-
- Blt = NULL;
- NumberOfLogos = 0;
- LogoDestX = 0;
- LogoDestY = 0;
- LogoHeight = 0;
- LogoWidth = 0;
- NewDestX = 0;
- NewDestY = 0;
- NewHeight = 0;
- NewWidth = 0;
- Instance = 0;
- while (1) {
- ImageData = NULL;
- ImageSize = 0;
-
- if (Badging != NULL) {
- //
- // Get image from OEMBadging protocol.
- //
- Status = Badging->GetImage (
- Badging,
- &Instance,
- &Format,
- &ImageData,
- &ImageSize,
- &Attribute,
- &CoordinateX,
- &CoordinateY
- );
- if (EFI_ERROR (Status)) {
- goto Done;
- }
-
- //
- // Currently only support BMP format.
- //
- if (Format != EfiBadgingFormatBMP) {
- if (ImageData != NULL) {
- FreePool (ImageData);
- }
- continue;
- }
- } else {
- //
- // Get the specified image from FV.
- //
- Status = GetSectionFromAnyFv (LogoFile, EFI_SECTION_RAW, 0, (VOID **) &ImageData, &ImageSize);
- if (EFI_ERROR (Status)) {
- return EFI_UNSUPPORTED;
- }
-
- CoordinateX = 0;
- CoordinateY = 0;
- if (!FeaturePcdGet(PcdBootlogoOnlyEnable)) {
- Attribute = EfiBadgingDisplayAttributeCenter;
- } else {
- Attribute = EfiBadgingDisplayAttributeCustomized;
- }
- }
-
- if (Blt != NULL) {
- FreePool (Blt);
- }
- Blt = NULL;
- Status = PlatformBootManagerConvertBmpToGopBlt (
- ImageData,
- ImageSize,
- (VOID **) &Blt,
- &BltSize,
- &Height,
- &Width
- );
- if (EFI_ERROR (Status)) {
- FreePool (ImageData);
-
- if (Badging == NULL) {
- return Status;
- } else {
- continue;
- }
- }
-
- //
- // Calculate the display position according to Attribute.
- //
- switch (Attribute) {
- case EfiBadgingDisplayAttributeLeftTop:
- DestX = CoordinateX;
- DestY = CoordinateY;
- break;
-
- case EfiBadgingDisplayAttributeCenterTop:
- DestX = (SizeOfX - Width) / 2;
- DestY = CoordinateY;
- break;
-
- case EfiBadgingDisplayAttributeRightTop:
- DestX = (SizeOfX - Width - CoordinateX);
- DestY = CoordinateY;;
- break;
-
- case EfiBadgingDisplayAttributeCenterRight:
- DestX = (SizeOfX - Width - CoordinateX);
- DestY = (SizeOfY - Height) / 2;
- break;
-
- case EfiBadgingDisplayAttributeRightBottom:
- DestX = (SizeOfX - Width - CoordinateX);
- DestY = (SizeOfY - Height - CoordinateY);
- break;
-
- case EfiBadgingDisplayAttributeCenterBottom:
- DestX = (SizeOfX - Width) / 2;
- DestY = (SizeOfY - Height - CoordinateY);
- break;
-
- case EfiBadgingDisplayAttributeLeftBottom:
- DestX = CoordinateX;
- DestY = (SizeOfY - Height - CoordinateY);
- break;
-
- case EfiBadgingDisplayAttributeCenterLeft:
- DestX = CoordinateX;
- DestY = (SizeOfY - Height) / 2;
- break;
-
- case EfiBadgingDisplayAttributeCenter:
- DestX = (SizeOfX - Width) / 2;
- DestY = (SizeOfY - Height) / 2;
- break;
-
- case EfiBadgingDisplayAttributeCustomized:
- DestX = (SizeOfX - Width) / 2;
- DestY = ((SizeOfY * 382) / 1000) - Height / 2;
- break;
-
- default:
- DestX = CoordinateX;
- DestY = CoordinateY;
- break;
- }
-
- if ((DestX >= 0) && (DestY >= 0)) {
- if (GraphicsOutput != NULL) {
- Status = GraphicsOutput->Blt (
- GraphicsOutput,
- Blt,
- EfiBltBufferToVideo,
- 0,
- 0,
- (UINTN) DestX,
- (UINTN) DestY,
- Width,
- Height,
- Width * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
- );
- } else if (UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {
- Status = UgaDraw->Blt (
- UgaDraw,
- (EFI_UGA_PIXEL *) Blt,
- EfiUgaBltBufferToVideo,
- 0,
- 0,
- (UINTN) DestX,
- (UINTN) DestY,
- Width,
- Height,
- Width * sizeof (EFI_UGA_PIXEL)
- );
- } else {
- Status = EFI_UNSUPPORTED;
- }
-
- //
- // Report displayed Logo information.
- //
- if (!EFI_ERROR (Status)) {
- NumberOfLogos++;
-
- if (LogoWidth == 0) {
- //
- // The first Logo.
- //
- LogoDestX = (UINTN) DestX;
- LogoDestY = (UINTN) DestY;
- LogoWidth = Width;
- LogoHeight = Height;
- } else {
- //
- // Merge new logo with old one.
- //
- NewDestX = MIN ((UINTN) DestX, LogoDestX);
- NewDestY = MIN ((UINTN) DestY, LogoDestY);
- NewWidth = MAX ((UINTN) DestX + Width, LogoDestX + LogoWidth) - NewDestX;
- NewHeight = MAX ((UINTN) DestY + Height, LogoDestY + LogoHeight) - NewDestY;
-
- LogoDestX = NewDestX;
- LogoDestY = NewDestY;
- LogoWidth = NewWidth;
- LogoHeight = NewHeight;
- }
- }
- }
-
- FreePool (ImageData);
-
- if (Badging == NULL) {
- break;
- }
- }
-
-Done:
- if (BootLogo == NULL || NumberOfLogos == 0) {
- //
- // No logo displayed.
- //
- if (Blt != NULL) {
- FreePool (Blt);
- }
-
- return Status;
- }
-
- //
- // Advertise displayed Logo information.
- //
- if (NumberOfLogos == 1) {
- //
- // Only one logo displayed, use its Blt buffer directly for BootLogo protocol.
- //
- LogoBlt = Blt;
- Status = EFI_SUCCESS;
- } else {
- //
- // More than one Logo displayed, get merged BltBuffer using VideoToBuffer operation.
- //
- if (Blt != NULL) {
- FreePool (Blt);
- }
-
- //
- // Ensure the LogoHeight * LogoWidth doesn't overflow
- //
- if (LogoHeight > DivU64x64Remainder ((UINTN) ~0, LogoWidth, NULL)) {
- return EFI_UNSUPPORTED;
- }
- BufferSize = MultU64x64 (LogoWidth, LogoHeight);
-
- //
- // Ensure the BufferSize * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL) doesn't overflow
- //
- if (BufferSize > DivU64x32 ((UINTN) ~0, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL))) {
- return EFI_UNSUPPORTED;
- }
-
- LogoBlt = AllocateZeroPool ((UINTN)BufferSize * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL));
- if (LogoBlt == NULL) {
- return EFI_OUT_OF_RESOURCES;
- }
-
- if (GraphicsOutput != NULL) {
- Status = GraphicsOutput->Blt (
- GraphicsOutput,
- LogoBlt,
- EfiBltVideoToBltBuffer,
- LogoDestX,
- LogoDestY,
- 0,
- 0,
- LogoWidth,
- LogoHeight,
- LogoWidth * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
- );
- } else if (UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {
- Status = UgaDraw->Blt (
- UgaDraw,
- (EFI_UGA_PIXEL *) LogoBlt,
- EfiUgaVideoToBltBuffer,
- LogoDestX,
- LogoDestY,
- 0,
- 0,
- LogoWidth,
- LogoHeight,
- LogoWidth * sizeof (EFI_UGA_PIXEL)
- );
- } else {
- Status = EFI_UNSUPPORTED;
- }
- }
-
- if (!EFI_ERROR (Status)) {
- BootLogo->SetBootLogo (BootLogo, LogoBlt, LogoDestX, LogoDestY, LogoWidth, LogoHeight);
- }
- FreePool (LogoBlt);
-
- return Status;
-}
-
-/**
- Use SystemTable Conout to turn on video based Simple Text Out consoles. The
- Simple Text Out screens will now be synced up with all non video output devices
-
- @retval EFI_SUCCESS UGA devices are back in text mode and synced up.
-
-**/
-EFI_STATUS
-PlatformBootManagerDisableQuietBoot (
- VOID
- )
-{
- //
- // Enable Cursor on Screen
- //
- gST->ConOut->EnableCursor (gST->ConOut, TRUE);
- return EFI_SUCCESS;
-}
diff --git a/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.c b/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.c
deleted file mode 100644
index e944105b39..0000000000
--- a/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.c
+++ /dev/null
@@ -1,282 +0,0 @@
-/** @file
- This file include all platform action which can be customized
- by IBV/OEM.
-
-Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
-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.
-
-**/
-
-#include "PlatformBootManager.h"
-
-/**
- Perform the platform diagnostic, such like test memory. OEM/IBV also
- can customize this function to support specific platform diagnostic.
-
- @param MemoryTestLevel The memory test intensive level
- @param QuietBoot Indicate if need to enable the quiet boot
-
-**/
-VOID
-PlatformBootManagerDiagnostics (
- IN EXTENDMEM_COVERAGE_LEVEL MemoryTestLevel,
- IN BOOLEAN QuietBoot
- )
-{
- EFI_STATUS Status;
-
- //
- // Here we can decide if we need to show
- // the diagnostics screen
- // Notes: this quiet boot code should be remove
- // from the graphic lib
- //
- if (QuietBoot) {
- PlatformBootManagerEnableQuietBoot (PcdGetPtr(PcdLogoFile));
-
- //
- // Perform system diagnostic
- //
- Status = PlatformBootManagerMemoryTest (MemoryTestLevel);
- if (EFI_ERROR (Status)) {
- PlatformBootManagerDisableQuietBoot ();
- }
-
- return;
- }
-
- //
- // Perform system diagnostic
- //
- Status = PlatformBootManagerMemoryTest (MemoryTestLevel);
-}
-
-/**
- Return the index of the load option in the load option array.
-
- The function consider two load options are equal when the
- OptionType, Attributes, Description, FilePath and OptionalData are equal.
-
- @param Key Pointer to the load option to be found.
- @param Array Pointer to the array of load options to be found.
- @param Count Number of entries in the Array.
-
- @retval -1 Key wasn't found in the Array.
- @retval 0 ~ Count-1 The index of the Key in the Array.
-**/
-INTN
-PlatformFindLoadOption (
- IN CONST EFI_BOOT_MANAGER_LOAD_OPTION *Key,
- IN CONST EFI_BOOT_MANAGER_LOAD_OPTION *Array,
- IN UINTN Count
- )
-{
- UINTN Index;
-
- for (Index = 0; Index < Count; Index++) {
- if ((Key->OptionType == Array[Index].OptionType) &&
- (Key->Attributes == Array[Index].Attributes) &&
- (StrCmp (Key->Description, Array[Index].Description) == 0) &&
- (CompareMem (Key->FilePath, Array[Index].FilePath, GetDevicePathSize (Key->FilePath)) == 0) &&
- (Key->OptionalDataSize == Array[Index].OptionalDataSize) &&
- (CompareMem (Key->OptionalData, Array[Index].OptionalData, Key->OptionalDataSize) == 0)) {
- return (INTN) Index;
- }
- }
-
- return -1;
-}
-
-VOID
-PlatformRegisterFvBootOption (
- EFI_GUID *FileGuid,
- CHAR16 *Description,
- UINT32 Attributes
- )
-{
- EFI_STATUS Status;
- UINTN OptionIndex;
- EFI_BOOT_MANAGER_LOAD_OPTION NewOption;
- EFI_BOOT_MANAGER_LOAD_OPTION *BootOptions;
- UINTN BootOptionCount;
- MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FileNode;
- EFI_LOADED_IMAGE_PROTOCOL *LoadedImage;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
-
- Status = gBS->HandleProtocol (gImageHandle, &gEfiLoadedImageProtocolGuid, (VOID **) &LoadedImage);
- ASSERT_EFI_ERROR (Status);
-
- EfiInitializeFwVolDevicepathNode (&FileNode, FileGuid);
- DevicePath = AppendDevicePathNode (
- DevicePathFromHandle (LoadedImage->DeviceHandle),
- (EFI_DEVICE_PATH_PROTOCOL *) &FileNode
- );
-
- Status = EfiBootManagerInitializeLoadOption (
- &NewOption,
- LoadOptionNumberUnassigned,
- LoadOptionTypeBoot,
- Attributes,
- Description,
- DevicePath,
- NULL,
- 0
- );
- if (!EFI_ERROR (Status)) {
- BootOptions = EfiBootManagerGetLoadOptions (&BootOptionCount, LoadOptionTypeBoot);
-
- OptionIndex = PlatformFindLoadOption (&NewOption, BootOptions, BootOptionCount);
-
- if (OptionIndex == -1) {
- Status = EfiBootManagerAddLoadOptionVariable (&NewOption, (UINTN) -1);
- ASSERT_EFI_ERROR (Status);
- }
- EfiBootManagerFreeLoadOption (&NewOption);
- EfiBootManagerFreeLoadOptions (BootOptions, BootOptionCount);
- }
-}
-
-/**
- Do the platform specific action before the console is connected.
-
- Such as:
- Update console variable;
- Register new Driver#### or Boot####;
- Signal ReadyToLock event.
-**/
-VOID
-EFIAPI
-PlatformBootManagerBeforeConsole (
- VOID
- )
-{
- UINTN Index;
- EFI_STATUS Status;
- WIN_NT_SYSTEM_CONFIGURATION *Configuration;
- EFI_INPUT_KEY Enter;
- EFI_INPUT_KEY F2;
- EFI_BOOT_MANAGER_LOAD_OPTION BootOption;
-
- GetVariable2 (L"Setup", &gEfiWinNtSystemConfigGuid, (VOID **) &Configuration, NULL);
- if (Configuration != NULL) {
- //
- // SetupVariable is corrupt
- //
- Configuration->ConOutRow = PcdGet32 (PcdConOutColumn);
- Configuration->ConOutColumn = PcdGet32 (PcdConOutRow);
-
- Status = gRT->SetVariable (
- L"Setup",
- &gEfiWinNtSystemConfigGuid,
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
- sizeof (WIN_NT_SYSTEM_CONFIGURATION),
- Configuration
- );
- if (EFI_ERROR (Status)) {
- DEBUG ((EFI_D_ERROR, "Failed to save Setup Variable to non-volatile storage, Status = %r\n", Status));
- }
- FreePool (Configuration);
- }
-
- //
- // Update the ocnsole variables.
- //
- for (Index = 0; gPlatformConsole[Index].DevicePath != NULL; Index++) {
- if ((gPlatformConsole[Index].ConnectType & CONSOLE_IN) == CONSOLE_IN) {
- EfiBootManagerUpdateConsoleVariable (ConIn, gPlatformConsole[Index].DevicePath, NULL);
- }
-
- if ((gPlatformConsole[Index].ConnectType & CONSOLE_OUT) == CONSOLE_OUT) {
- EfiBootManagerUpdateConsoleVariable (ConOut, gPlatformConsole[Index].DevicePath, NULL);
- }
-
- if ((gPlatformConsole[Index].ConnectType & STD_ERROR) == STD_ERROR) {
- EfiBootManagerUpdateConsoleVariable (ErrOut, gPlatformConsole[Index].DevicePath, NULL);
- }
- }
-
- //
- // Register ENTER as CONTINUE key
- //
- Enter.ScanCode = SCAN_NULL;
- Enter.UnicodeChar = CHAR_CARRIAGE_RETURN;
- EfiBootManagerRegisterContinueKeyOption (0, &Enter, NULL);
- //
- // Map F2 to Boot Manager Menu
- //
- F2.ScanCode = SCAN_F2;
- F2.UnicodeChar = CHAR_NULL;
- EfiBootManagerGetBootManagerMenu (&BootOption);
- EfiBootManagerAddKeyOptionVariable (NULL, (UINT16) BootOption.OptionNumber, 0, &F2, NULL);
- //
- // Register UEFI Shell
- //
- PlatformRegisterFvBootOption (PcdGetPtr (PcdShellFile), L"UEFI Shell", LOAD_OPTION_ACTIVE);
-}
-
-/**
- Do the platform specific action after the console is connected.
-
- Such as:
- Dynamically switch output mode;
- Signal console ready platform customized event;
- Run diagnostics like memory testing;
- Connect certain devices;
- Dispatch aditional option roms.
-**/
-VOID
-EFIAPI
-PlatformBootManagerAfterConsole (
- VOID
- )
-{
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Black;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL White;
-
- Black.Blue = Black.Green = Black.Red = Black.Reserved = 0;
- White.Blue = White.Green = White.Red = White.Reserved = 0xFF;
-
- EfiBootManagerConnectAll ();
- EfiBootManagerRefreshAllBootOption ();
-
- PlatformBootManagerDiagnostics (QUICK, TRUE);
-
- PrintXY (10, 10, &White, &Black, L"F2 to enter Boot Manager Menu. ");
- PrintXY (10, 30, &White, &Black, L"Enter to boot directly.");
-}
-
-/**
- This function is called each second during the boot manager waits the timeout.
-
- @param TimeoutRemain The remaining timeout.
-**/
-VOID
-EFIAPI
-PlatformBootManagerWaitCallback (
- UINT16 TimeoutRemain
- )
-{
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Black;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL White;
- UINT16 Timeout;
-
- Timeout = PcdGet16 (PcdPlatformBootTimeOut);
-
- Black.Blue = Black.Green = Black.Red = Black.Reserved = 0;
- White.Blue = White.Green = White.Red = White.Reserved = 0xFF;
-
- PlatformBootManagerShowProgress (
- White,
- Black,
- L"Start boot option",
- White,
- (Timeout - TimeoutRemain) * 100 / Timeout,
- 0
- );
-}
diff --git a/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.h b/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.h
deleted file mode 100644
index 7e0fae847f..0000000000
--- a/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/**@file
- Head file for BDS Platform specific code
-
-Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
-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.
-**/
-
-#ifndef _PLATFORM_BOOT_MANAGER_H
-#define _PLATFORM_BOOT_MANAGER_H
-
-#include <PiDxe.h>
-#include <IndustryStandard/Bmp.h>
-#include <Guid/WinNtSystemConfig.h>
-#include <Protocol/GenericMemoryTest.h>
-#include <Protocol/WinNtThunk.h>
-#include <Protocol/WinNtIo.h>
-#include <Protocol/LoadedImage.h>
-#include <Protocol/UgaDraw.h>
-#include <Protocol/GraphicsOutput.h>
-#include <Protocol/OEMBadging.h>
-#include <Protocol/BootLogo.h>
-
-#include <Library/DebugLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/UefiBootServicesTableLib.h>
-#include <Library/UefiRuntimeServicesTableLib.h>
-#include <Library/MemoryAllocationLib.h>
-#include <Library/BaseLib.h>
-#include <Library/UefiRuntimeServicesTableLib.h>
-#include <Library/UefiLib.h>
-#include <Library/UefiBootManagerLib.h>
-#include <Library/PcdLib.h>
-#include <Library/DevicePathLib.h>
-#include <Library/HiiLib.h>
-#include <Library/PrintLib.h>
-#include <Library/DxeServicesLib.h>
-
-
-typedef struct {
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- UINTN ConnectType;
-} PLATFORM_CONSOLE_CONNECT_ENTRY;
-
-extern PLATFORM_CONSOLE_CONNECT_ENTRY gPlatformConsole[];
-
-#define gEndEntire \
- { \
- END_DEVICE_PATH_TYPE,\
- END_ENTIRE_DEVICE_PATH_SUBTYPE,\
- END_DEVICE_PATH_LENGTH,\
- 0\
- }
-
-#define CONSOLE_OUT BIT0
-#define CONSOLE_IN BIT1
-#define STD_ERROR BIT2
-
-typedef struct {
- VENDOR_DEVICE_PATH VendorDevicePath;
- UINT32 Instance;
-} WIN_NT_VENDOR_DEVICE_PATH_NODE;
-
-//
-// Below is the platform console device path
-//
-typedef struct {
- VENDOR_DEVICE_PATH NtBus;
- WIN_NT_VENDOR_DEVICE_PATH_NODE SerialDevice;
- UART_DEVICE_PATH Uart;
- VENDOR_DEVICE_PATH TerminalType;
- EFI_DEVICE_PATH_PROTOCOL End;
-} NT_ISA_SERIAL_DEVICE_PATH;
-
-typedef struct {
- VENDOR_DEVICE_PATH NtBus;
- WIN_NT_VENDOR_DEVICE_PATH_NODE NtGopDevice;
- EFI_DEVICE_PATH_PROTOCOL End;
-} NT_PLATFORM_GOP_DEVICE_PATH;
-
-/**
- Use SystemTable Conout to stop video based Simple Text Out consoles from going
- to the video device. Put up LogoFile on every video device that is a console.
-
- @param[in] LogoFile File name of logo to display on the center of the screen.
-
- @retval EFI_SUCCESS ConsoleControl has been flipped to graphics and logo displayed.
- @retval EFI_UNSUPPORTED Logo not found
-
-**/
-EFI_STATUS
-PlatformBootManagerEnableQuietBoot (
- IN EFI_GUID *LogoFile
- );
-
-/**
- Use SystemTable Conout to turn on video based Simple Text Out consoles. The
- Simple Text Out screens will now be synced up with all non video output devices
-
- @retval EFI_SUCCESS UGA devices are back in text mode and synced up.
-
-**/
-EFI_STATUS
-PlatformBootManagerDisableQuietBoot (
- VOID
- );
-
-/**
- Perform the memory test base on the memory test intensive level,
- and update the memory resource.
-
- @param Level The memory test intensive level.
-
- @retval EFI_STATUS Success test all the system memory and update
- the memory resource
-
-**/
-EFI_STATUS
-PlatformBootManagerMemoryTest (
- IN EXTENDMEM_COVERAGE_LEVEL Level
- );
-
-/**
-
- Show progress bar with title above it. It only works in Graphics mode.
-
-
- @param TitleForeground Foreground color for Title.
- @param TitleBackground Background color for Title.
- @param Title Title above progress bar.
- @param ProgressColor Progress bar color.
- @param Progress Progress (0-100)
- @param PreviousValue The previous value of the progress.
-
- @retval EFI_STATUS Success update the progress bar
-
-**/
-EFI_STATUS
-PlatformBootManagerShowProgress (
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleForeground,
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleBackground,
- IN CHAR16 *Title,
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL ProgressColor,
- IN UINTN Progress,
- IN UINTN PreviousValue
- );
-
-#endif // _PLATFORM_BOOT_MANAGER_H
diff --git a/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf b/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
deleted file mode 100644
index 9b1eeaba02..0000000000
--- a/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
+++ /dev/null
@@ -1,74 +0,0 @@
-## @file
-# Include all platform action which can be customized by IBV/OEM.
-#
-# Copyright (c) 2012 - 2015, Intel Corporation. All rights reserved.<BR>
-# 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]
- INF_VERSION = 0x00010005
- BASE_NAME = PlatformBootManagerLib
- FILE_GUID = F0D9063A-DADB-4185-85E2-D7ACDA93F7A6
- MODULE_TYPE = DXE_DRIVER
- VERSION_STRING = 1.0
- LIBRARY_CLASS = PlatformBootManagerLib|DXE_DRIVER
-
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-# VALID_ARCHITECTURES = IA32 X64 EBC
-#
-
-[Sources]
- PlatformData.c
- PlatformBootManager.c
- PlatformBootManager.h
- MemoryTest.c
- Strings.uni
-
-[Packages]
- MdePkg/MdePkg.dec
- MdeModulePkg/MdeModulePkg.dec
- IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
- Nt32Pkg/Nt32Pkg.dec
-
-[LibraryClasses]
- BaseLib
- UefiBootServicesTableLib
- UefiRuntimeServicesTableLib
- UefiLib
- UefiBootManagerLib
- PcdLib
- DxeServicesLib
- MemoryAllocationLib
- DevicePathLib
- HiiLib
- PrintLib
-
-[Guids]
- gEfiWinNtSystemConfigGuid
-
-[Protocols]
- gEfiGenericMemTestProtocolGuid ## CONSUMES
- gEfiGraphicsOutputProtocolGuid ## CONSUMES
- gEfiUgaDrawProtocolGuid ## CONSUMES
- gEfiOEMBadgingProtocolGuid ## CONSUMES
- gEfiBootLogoProtocolGuid ## CONSUMES
-
-[Pcd]
- gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut
- gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport
- gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow
- gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn
- gEfiMdeModulePkgTokenSpaceGuid.PcdConInConnectOnDemand
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdBootlogoOnlyEnable
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile
diff --git a/Nt32Pkg/Library/PlatformBootManagerLib/PlatformData.c b/Nt32Pkg/Library/PlatformBootManagerLib/PlatformData.c
deleted file mode 100644
index e92f377bd1..0000000000
--- a/Nt32Pkg/Library/PlatformBootManagerLib/PlatformData.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/**@file
- Defined the platform specific device path which will be filled to
- ConIn/ConOut variables.
-
-Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
-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.
-**/
-
-#include "PlatformBootManager.h"
-
-//
-// Platform specific keyboard device path
-//
-NT_PLATFORM_GOP_DEVICE_PATH gGopDevicePath0 = {
- {
- HARDWARE_DEVICE_PATH,
- HW_VENDOR_DP,
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),
- EFI_WIN_NT_THUNK_PROTOCOL_GUID
- },
- {
- HARDWARE_DEVICE_PATH,
- HW_VENDOR_DP,
- (UINT8) (sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)),
- (UINT8) ((sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)) >> 8),
- EFI_WIN_NT_GOP_GUID,
- 0
- },
- gEndEntire
-};
-
-NT_PLATFORM_GOP_DEVICE_PATH gGopDevicePath1 = {
- {
- HARDWARE_DEVICE_PATH,
- HW_VENDOR_DP,
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),
- EFI_WIN_NT_THUNK_PROTOCOL_GUID
- },
- {
- HARDWARE_DEVICE_PATH,
- HW_VENDOR_DP,
- (UINT8) (sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)),
- (UINT8) ((sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)) >> 8),
- EFI_WIN_NT_GOP_GUID,
- 1
- },
- gEndEntire
-};
-
-//
-// Platform specific serial device path
-//
-NT_ISA_SERIAL_DEVICE_PATH gNtSerialDevicePath0 = {
- {
- HARDWARE_DEVICE_PATH,
- HW_VENDOR_DP,
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),
- EFI_WIN_NT_THUNK_PROTOCOL_GUID
- },
- {
- HARDWARE_DEVICE_PATH,
- HW_VENDOR_DP,
- (UINT8) (sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)),
- (UINT8) ((sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)) >> 8),
- EFI_WIN_NT_SERIAL_PORT_GUID
- },
- {
- MESSAGING_DEVICE_PATH,
- MSG_UART_DP,
- (UINT8) (sizeof (UART_DEVICE_PATH)),
- (UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8),
- 0,
- 115200,
- 8,
- 1,
- 1
- },
- {
- MESSAGING_DEVICE_PATH,
- MSG_VENDOR_DP,
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),
- DEVICE_PATH_MESSAGING_PC_ANSI
- },
- gEndEntire
-};
-
-NT_ISA_SERIAL_DEVICE_PATH gNtSerialDevicePath1 = {
- {
- HARDWARE_DEVICE_PATH,
- HW_VENDOR_DP,
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),
- EFI_WIN_NT_THUNK_PROTOCOL_GUID
- },
- {
- HARDWARE_DEVICE_PATH,
- HW_VENDOR_DP,
- (UINT8) (sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)),
- (UINT8) ((sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)) >> 8),
- EFI_WIN_NT_SERIAL_PORT_GUID,
- 1
- },
- {
- MESSAGING_DEVICE_PATH,
- MSG_UART_DP,
- (UINT8) (sizeof (UART_DEVICE_PATH)),
- (UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8),
- 0,
- 115200,
- 8,
- 1,
- 1
- },
- {
- MESSAGING_DEVICE_PATH,
- MSG_VENDOR_DP,
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),
- DEVICE_PATH_MESSAGING_PC_ANSI
- },
- gEndEntire
-};
-
-//
-// Predefined platform default console device path
-//
-PLATFORM_CONSOLE_CONNECT_ENTRY gPlatformConsole[] = {
- {
- (EFI_DEVICE_PATH_PROTOCOL *) &gNtSerialDevicePath0,
- (CONSOLE_OUT | CONSOLE_IN)
- },
- {
- (EFI_DEVICE_PATH_PROTOCOL *) &gNtSerialDevicePath1,
- (CONSOLE_OUT | CONSOLE_IN)
- },
- {
- (EFI_DEVICE_PATH_PROTOCOL *) &gGopDevicePath0,
- (CONSOLE_OUT | CONSOLE_IN)
- },
- {
- (EFI_DEVICE_PATH_PROTOCOL *) &gGopDevicePath1,
- (CONSOLE_OUT | CONSOLE_IN)
- },
- {
- NULL,
- 0
- }
-};
diff --git a/Nt32Pkg/Library/PlatformBootManagerLib/Strings.uni b/Nt32Pkg/Library/PlatformBootManagerLib/Strings.uni
deleted file mode 100644
index f8823fefcd..0000000000
--- a/Nt32Pkg/Library/PlatformBootManagerLib/Strings.uni
+++ /dev/null
Binary files differ
diff --git a/Nt32Pkg/Library/PlatformSecureLib/PlatformSecureLib.c b/Nt32Pkg/Library/PlatformSecureLib/PlatformSecureLib.c
deleted file mode 100644
index e7f33277f5..0000000000
--- a/Nt32Pkg/Library/PlatformSecureLib/PlatformSecureLib.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/** @file
- Provides a platform-specific method to enable Secure Boot Custom Mode setup.
-
- Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
- 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.
-
-**/
-#include <Library/PcdLib.h>
-
-
-/**
-
- This function provides a platform-specific method to detect whether the platform
- is operating by a physically present user.
-
- Programmatic changing of platform security policy (such as disable Secure Boot,
- or switch between Standard/Custom Secure Boot mode) MUST NOT be possible during
- Boot Services or after exiting EFI Boot Services. Only a physically present user
- is allowed to perform these operations.
-
- NOTE THAT: This function cannot depend on any EFI Variable Service since they are
- not available when this function is called in AuthenticateVariable driver.
-
- @retval TRUE The platform is operated by a physically present user.
- @retval FALSE The platform is NOT operated by a physically present user.
-
-**/
-BOOLEAN
-EFIAPI
-UserPhysicalPresent (
- VOID
- )
-{
- return TRUE;
-}
diff --git a/Nt32Pkg/Library/PlatformSecureLib/PlatformSecureLib.inf b/Nt32Pkg/Library/PlatformSecureLib/PlatformSecureLib.inf
deleted file mode 100644
index a6891dd5f3..0000000000
--- a/Nt32Pkg/Library/PlatformSecureLib/PlatformSecureLib.inf
+++ /dev/null
@@ -1,33 +0,0 @@
-## @file
-# Provides a platform-specific method to enable Secure Boot Custom Mode setup.
-#
-# Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR>
-#
-# 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]
- INF_VERSION = 0x00010005
- BASE_NAME = PlatformSecureLib
- FILE_GUID = F263EC2A-F0DB-4640-8B12-4ED22A506FB1
- MODULE_TYPE = DXE_DRIVER
- VERSION_STRING = 1.0
- LIBRARY_CLASS = PlatformSecureLib|DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_DRIVER
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC
-#
-
-[Sources]
- PlatformSecureLib.c
-
-[Packages]
- MdePkg/MdePkg.dec