mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-29 08:34:07 +02:00
Success to build first Nt32 module.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2753 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
8693ca5d75
commit
869f8e34d2
@ -22,6 +22,7 @@ Abstract:
|
|||||||
#ifndef __WIN_NT_LIB_H__
|
#ifndef __WIN_NT_LIB_H__
|
||||||
#define __WIN_NT_LIB_H__
|
#define __WIN_NT_LIB_H__
|
||||||
|
|
||||||
|
#include <WinNtThunk.h>
|
||||||
extern EFI_WIN_NT_THUNK_PROTOCOL *gWinNt;
|
extern EFI_WIN_NT_THUNK_PROTOCOL *gWinNt;
|
||||||
|
|
||||||
#endif
|
#endif
|
41
Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/CommonHeader.h
Normal file
41
Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/CommonHeader.h
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/**@file
|
||||||
|
Common header file shared by all source files.
|
||||||
|
|
||||||
|
This file includes package header files, library classes and protocol, PPI & GUID definitions.
|
||||||
|
|
||||||
|
Copyright (c) 2007, Intel Corporation.
|
||||||
|
All rights reserved.
|
||||||
|
This software and associated documentation (if any) is furnished
|
||||||
|
under a license and may only be used or copied in accordance
|
||||||
|
with the terms of the license. Except as permitted by such
|
||||||
|
license, no part of this software or documentation may be
|
||||||
|
reproduced, stored in a retrieval system, or transmitted in any
|
||||||
|
form or by any means without the express written consent of
|
||||||
|
Intel Corporation.
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef __COMMON_HEADER_H_
|
||||||
|
#define __COMMON_HEADER_H_
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// The package level header files this module uses
|
||||||
|
//
|
||||||
|
#include <Dxe.h>
|
||||||
|
#include <EdkDxe.h>
|
||||||
|
#include <WinNtDxe.h>
|
||||||
|
//
|
||||||
|
// The protocols, PPI and GUID defintions for this module
|
||||||
|
//
|
||||||
|
#include <Guid/StatusCodeDataTypeId.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>
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1,100 @@
|
|||||||
|
#/** @file
|
||||||
|
# Memory Status Code Library for UEFI drivers
|
||||||
|
#
|
||||||
|
# Lib to provide memory journal status code reporting Routines
|
||||||
|
# Copyright (c) 2007, Intel Corporation.
|
||||||
|
#
|
||||||
|
# All rights reserved.
|
||||||
|
# This software and associated documentation (if any) is furnished
|
||||||
|
# under a license and may only be used or copied in accordance
|
||||||
|
# with the terms of the license. Except as permitted by such
|
||||||
|
# license, no part of this software or documentation may be
|
||||||
|
# reproduced, stored in a retrieval system, or transmitted in any
|
||||||
|
# form or by any means without the express written consent of
|
||||||
|
# Intel Corporation.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#**/
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Defines Section - statements that will be processed to create a Makefile.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
[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
|
||||||
|
EDK_RELEASE_VERSION = 0x00020000
|
||||||
|
EFI_SPECIFICATION_VERSION = 0x00020000
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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 Section - list of files that are required for the build to succeed.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Sources.common]
|
||||||
|
Nt32OemHookStatusCodeLib.c
|
||||||
|
CommonHeader.h
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Includes Section - list of Include locations that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Includes]
|
||||||
|
$(WORKSPACE)/MdePkg/Include/Library
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Package Dependency Section - list of Package files that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
Nt32Pkg/Nt32Pkg.dec
|
||||||
|
EdkModulePkg/EdkModulePkg.dec
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Library Class Section - list of Library Classes that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[LibraryClasses]
|
||||||
|
ReportStatusCodeLib
|
||||||
|
BaseMemoryLib
|
||||||
|
PrintLib
|
||||||
|
HobLib
|
||||||
|
DebugLib
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Guid C Name Section - list of Guids that this module uses or produces.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Guids]
|
||||||
|
gEfiStatusCodeSpecificDataGuid # ALWAYS_CONSUMED
|
||||||
|
|
@ -0,0 +1,68 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<MsaHeader>
|
||||||
|
<ModuleName>DxeNt32OemHookStatusCodeLib</ModuleName>
|
||||||
|
<ModuleType>DXE_DRIVER</ModuleType>
|
||||||
|
<GuidValue>EF172A23-C7C5-47b7-B24E-D10DFE15540F</GuidValue>
|
||||||
|
<Version>1.0</Version>
|
||||||
|
<Abstract>Memory Status Code Library for UEFI drivers</Abstract>
|
||||||
|
<Description>Lib to provide memory journal status code reporting Routines</Description>
|
||||||
|
<Copyright>Copyright (c) 2007, Intel Corporation.</Copyright>
|
||||||
|
<License>All rights reserved.
|
||||||
|
This software and associated documentation (if any) is furnished
|
||||||
|
under a license and may only be used or copied in accordance
|
||||||
|
with the terms of the license. Except as permitted by such
|
||||||
|
license, no part of this software or documentation may be
|
||||||
|
reproduced, stored in a retrieval system, or transmitted in any
|
||||||
|
form or by any means without the express written consent of
|
||||||
|
Intel Corporation.</License>
|
||||||
|
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
|
||||||
|
</MsaHeader>
|
||||||
|
<ModuleDefinitions>
|
||||||
|
<SupportedArchitectures>IA32</SupportedArchitectures>
|
||||||
|
<BinaryModule>false</BinaryModule>
|
||||||
|
<OutputFileBasename>DxeNt32OemHookStatusCodeLib</OutputFileBasename>
|
||||||
|
</ModuleDefinitions>
|
||||||
|
<LibraryClassDefinitions>
|
||||||
|
<LibraryClass Usage="ALWAYS_PRODUCED" SupModuleList="DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER">
|
||||||
|
<Keyword>OemHookStatusCodeLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>DebugLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>HobLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>PrintLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>BaseMemoryLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>ReportStatusCodeLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
</LibraryClassDefinitions>
|
||||||
|
<SourceFiles>
|
||||||
|
<Filename>Nt32OemHookStatusCodeLib.c</Filename>
|
||||||
|
</SourceFiles>
|
||||||
|
<PackageDependencies>
|
||||||
|
<Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
||||||
|
<Package PackageGuid="68169ab0-d41b-4009-9060-292c253ac43d"/>
|
||||||
|
<Package PackageGuid="0fb2aa2d-10d5-40a5-a9dc-060c12a4a3f3"/>
|
||||||
|
</PackageDependencies>
|
||||||
|
<Hobs>
|
||||||
|
<HobTypes HobGuidCName="gEfiWinNtThunkProtocolGuid" Usage="ALWAYS_CONSUMED">
|
||||||
|
<HobType>GUID_EXTENSION</HobType>
|
||||||
|
</HobTypes>
|
||||||
|
</Hobs>
|
||||||
|
<Guids>
|
||||||
|
<GuidCNames Usage="ALWAYS_CONSUMED">
|
||||||
|
<GuidCName>gEfiStatusCodeSpecificDataGuid</GuidCName>
|
||||||
|
</GuidCNames>
|
||||||
|
</Guids>
|
||||||
|
<Externs>
|
||||||
|
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
||||||
|
<Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
|
||||||
|
</Externs>
|
||||||
|
</ModuleSurfaceArea>
|
@ -0,0 +1,236 @@
|
|||||||
|
/** @file
|
||||||
|
OEM hook status code library functions with no library constructor/destructor
|
||||||
|
|
||||||
|
Copyright (c) 2006, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name: Nt32OemHookStatusCodeLib.c
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
//
|
||||||
|
// Include common header file for this module.
|
||||||
|
//
|
||||||
|
#include "CommonHeader.h"
|
||||||
|
|
||||||
|
//
|
||||||
|
// Cache of WinNtThunk protocol
|
||||||
|
//
|
||||||
|
STATIC
|
||||||
|
EFI_WIN_NT_THUNK_PROTOCOL *mWinNt;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Cache of standard output handle .
|
||||||
|
//
|
||||||
|
STATIC
|
||||||
|
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 EFI 1.10 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;
|
||||||
|
VA_LIST Marker;
|
||||||
|
EFI_DEBUG_INFO *DebugInfo;
|
||||||
|
|
||||||
|
Buffer[0] = '\0';
|
||||||
|
|
||||||
|
if (Data != NULL &&
|
||||||
|
ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber)) {
|
||||||
|
//
|
||||||
|
// Print ASSERT() information into output buffer.
|
||||||
|
//
|
||||||
|
CharCount = AsciiSPrint (
|
||||||
|
Buffer,
|
||||||
|
EFI_STATUS_CODE_DATA_MAX_SIZE,
|
||||||
|
"\n\rASSERT!: %a (%d): %a\n\r",
|
||||||
|
Filename,
|
||||||
|
LineNumber,
|
||||||
|
Description
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Callout to standard output.
|
||||||
|
//
|
||||||
|
mWinNt->WriteFile (
|
||||||
|
mStdOut,
|
||||||
|
Buffer,
|
||||||
|
CharCount,
|
||||||
|
&CharCount,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
|
||||||
|
} else if (Data != NULL &&
|
||||||
|
ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format)) {
|
||||||
|
//
|
||||||
|
// Print DEBUG() information into output buffer.
|
||||||
|
//
|
||||||
|
CharCount = AsciiVSPrint (
|
||||||
|
Buffer,
|
||||||
|
EFI_STATUS_CODE_DATA_MAX_SIZE,
|
||||||
|
Format,
|
||||||
|
Marker
|
||||||
|
);
|
||||||
|
} else if (Data != NULL &&
|
||||||
|
CompareGuid (&Data->Type, &gEfiStatusCodeSpecificDataGuid) &&
|
||||||
|
(CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE) {
|
||||||
|
//
|
||||||
|
// Print specific data into output buffer.
|
||||||
|
//
|
||||||
|
DebugInfo = (EFI_DEBUG_INFO *) (Data + 1);
|
||||||
|
Marker = (VA_LIST) (DebugInfo + 1);
|
||||||
|
Format = (CHAR8 *) (((UINT64 *) Marker) + 12);
|
||||||
|
|
||||||
|
CharCount = AsciiVSPrint (Buffer, EFI_STATUS_CODE_DATA_MAX_SIZE, Format, Marker);
|
||||||
|
} else if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) {
|
||||||
|
//
|
||||||
|
// Print ERROR information into output buffer.
|
||||||
|
//
|
||||||
|
CharCount = AsciiSPrint (
|
||||||
|
Buffer,
|
||||||
|
EFI_STATUS_CODE_DATA_MAX_SIZE,
|
||||||
|
"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],
|
||||||
|
(EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),
|
||||||
|
" %g",
|
||||||
|
CallerId
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Data != NULL) {
|
||||||
|
CharCount += AsciiSPrint (
|
||||||
|
&Buffer[CharCount - 1],
|
||||||
|
(EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),
|
||||||
|
" %x",
|
||||||
|
Data
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
CharCount += AsciiSPrint (
|
||||||
|
&Buffer[CharCount - 1],
|
||||||
|
(EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),
|
||||||
|
"\n\r"
|
||||||
|
);
|
||||||
|
} else if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) {
|
||||||
|
CharCount = AsciiSPrint (
|
||||||
|
Buffer,
|
||||||
|
EFI_STATUS_CODE_DATA_MAX_SIZE,
|
||||||
|
"PROGRESS CODE: V%x I%x\n\r",
|
||||||
|
Value,
|
||||||
|
Instance
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
CharCount = AsciiSPrint (
|
||||||
|
Buffer,
|
||||||
|
EFI_STATUS_CODE_DATA_MAX_SIZE,
|
||||||
|
"Undefined: C%x:V%x I%x\n\r",
|
||||||
|
CodeType,
|
||||||
|
Value,
|
||||||
|
Instance
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Callout to standard output.
|
||||||
|
//
|
||||||
|
mWinNt->WriteFile (
|
||||||
|
mStdOut,
|
||||||
|
Buffer,
|
||||||
|
CharCount,
|
||||||
|
&CharCount,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
34
Nt32Pkg/Library/DxeWinNtLib/CommonHeader.h
Normal file
34
Nt32Pkg/Library/DxeWinNtLib/CommonHeader.h
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/**@file
|
||||||
|
Common header file shared by all source files.
|
||||||
|
|
||||||
|
This file includes package header files, library classes and protocol, PPI & GUID definitions.
|
||||||
|
|
||||||
|
Copyright (c) 2006 - 2007, Intel Corporation.
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef __COMMON_HEADER_H_
|
||||||
|
#define __COMMON_HEADER_H_
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// The package level header files this module uses
|
||||||
|
//
|
||||||
|
#include <PiDxe.h>
|
||||||
|
#include <WinNtDxe.h>
|
||||||
|
//
|
||||||
|
// The protocols, PPI and GUID defintions for this module
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// The Library classes this module consumes
|
||||||
|
//
|
||||||
|
#include <Library/WinNtLib.h>
|
||||||
|
#include <Library/DebugLib.h>
|
||||||
|
#include <Library/HobLib.h>
|
||||||
|
|
||||||
|
#endif
|
85
Nt32Pkg/Library/DxeWinNtLib/DxeWinNtLib.inf
Normal file
85
Nt32Pkg/Library/DxeWinNtLib/DxeWinNtLib.inf
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
#/** @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 - 2007, Intel Corporation.
|
||||||
|
#
|
||||||
|
# All rights reserved. This program and the accompanying materials
|
||||||
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
|
# http://opensource.org/licenses/bsd-license.php
|
||||||
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#**/
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Defines Section - statements that will be processed to create a Makefile.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 0x00010005
|
||||||
|
BASE_NAME = 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
|
||||||
|
EDK_RELEASE_VERSION = 0x00020000
|
||||||
|
EFI_SPECIFICATION_VERSION = 0x00020000
|
||||||
|
|
||||||
|
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 Section - list of files that are required for the build to succeed.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Sources.common]
|
||||||
|
WinNtLib.c
|
||||||
|
CommonHeader.h
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Includes Section - list of Include locations that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Includes]
|
||||||
|
$(WORKSPACE)/MdePkg/Include/Library
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Package Dependency Section - list of Package files that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
Nt32Pkg/Nt32Pkg.dec
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Library Class Section - list of Library Classes that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[LibraryClasses]
|
||||||
|
HobLib
|
||||||
|
DebugLib
|
||||||
|
|
54
Nt32Pkg/Library/DxeWinNtLib/DxeWinNtLib.msa
Normal file
54
Nt32Pkg/Library/DxeWinNtLib/DxeWinNtLib.msa
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<MsaHeader>
|
||||||
|
<ModuleName>DxeWinNtLib</ModuleName>
|
||||||
|
<ModuleType>DXE_DRIVER</ModuleType>
|
||||||
|
<GuidValue>f6b5871d-5226-41b3-a569-3ff893fdc7bc</GuidValue>
|
||||||
|
<Version>1.0</Version>
|
||||||
|
<Abstract>A library to produce the global variable 'gWinNt'</Abstract>
|
||||||
|
<Description>This library contains a single global variable 'gWinNt' along with a constructor to initialize that global.</Description>
|
||||||
|
<Copyright>Copyright (c) 2006 - 2007, Intel Corporation.</Copyright>
|
||||||
|
<License>All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>
|
||||||
|
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
|
||||||
|
</MsaHeader>
|
||||||
|
<ModuleDefinitions>
|
||||||
|
<SupportedArchitectures>IA32</SupportedArchitectures>
|
||||||
|
<BinaryModule>false</BinaryModule>
|
||||||
|
<OutputFileBasename>DxeWinNtLib</OutputFileBasename>
|
||||||
|
</ModuleDefinitions>
|
||||||
|
<LibraryClassDefinitions>
|
||||||
|
<LibraryClass Usage="ALWAYS_PRODUCED" SupModuleList="DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER">
|
||||||
|
<Keyword>WinNtLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>DebugLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>HobLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
</LibraryClassDefinitions>
|
||||||
|
<SourceFiles>
|
||||||
|
<Filename>WinNtLib.c</Filename>
|
||||||
|
</SourceFiles>
|
||||||
|
<PackageDependencies>
|
||||||
|
<Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
||||||
|
<Package PackageGuid="0fb2aa2d-10d5-40a5-a9dc-060c12a4a3f3"/>
|
||||||
|
</PackageDependencies>
|
||||||
|
<Hobs>
|
||||||
|
<HobTypes HobGuidCName="gEfiWinNtThunkProtocolGuid" Usage="ALWAYS_CONSUMED">
|
||||||
|
<HobType>GUID_EXTENSION</HobType>
|
||||||
|
</HobTypes>
|
||||||
|
</Hobs>
|
||||||
|
<Externs>
|
||||||
|
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
||||||
|
<Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
|
||||||
|
<Extern>
|
||||||
|
<Constructor>WinNtLibConstructor</Constructor>
|
||||||
|
</Extern>
|
||||||
|
</Externs>
|
||||||
|
</ModuleSurfaceArea>
|
53
Nt32Pkg/Library/DxeWinNtLib/WinNtLib.c
Normal file
53
Nt32Pkg/Library/DxeWinNtLib/WinNtLib.c
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) 2006, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
WinNtLib.c
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
WinNt Library
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Include common header file for this module.
|
||||||
|
//
|
||||||
|
#include "CommonHeader.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;
|
||||||
|
}
|
1106
Nt32Pkg/Library/EdkGenericBdsLib/BdsBoot.c
Normal file
1106
Nt32Pkg/Library/EdkGenericBdsLib/BdsBoot.c
Normal file
File diff suppressed because it is too large
Load Diff
362
Nt32Pkg/Library/EdkGenericBdsLib/BdsConnect.c
Normal file
362
Nt32Pkg/Library/EdkGenericBdsLib/BdsConnect.c
Normal file
@ -0,0 +1,362 @@
|
|||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
BdsConnect.c
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
BDS Lib functions which relate with connect the device
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// Include common header file for this module.
|
||||||
|
//
|
||||||
|
#include "CommonHeader.h"
|
||||||
|
|
||||||
|
VOID
|
||||||
|
BdsLibConnectAll (
|
||||||
|
VOID
|
||||||
|
)
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Routine Description:
|
||||||
|
|
||||||
|
This function will connect all the system driver to controller
|
||||||
|
first, and then special connect the default console, this make
|
||||||
|
sure all the system controller avialbe and the platform default
|
||||||
|
console connected.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
--*/
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Connect the platform console first
|
||||||
|
//
|
||||||
|
BdsLibConnectAllDefaultConsoles ();
|
||||||
|
|
||||||
|
//
|
||||||
|
// Generic way to connect all the drivers
|
||||||
|
//
|
||||||
|
BdsLibConnectAllDriversToAllControllers ();
|
||||||
|
|
||||||
|
//
|
||||||
|
// Here we have the assumption that we have already had
|
||||||
|
// platform default console
|
||||||
|
//
|
||||||
|
BdsLibConnectAllDefaultConsoles ();
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
BdsLibGenericConnectAll (
|
||||||
|
VOID
|
||||||
|
)
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Routine Description:
|
||||||
|
|
||||||
|
This function will connect all the system drivers to all controllers
|
||||||
|
first, and then connect all the console devices the system current
|
||||||
|
have. After this we should get all the device work and console avariable
|
||||||
|
if the system have console device.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
--*/
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Most generic way to connect all the drivers
|
||||||
|
//
|
||||||
|
BdsLibConnectAllDriversToAllControllers ();
|
||||||
|
BdsLibConnectAllConsoles ();
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
BdsLibConnectDevicePath (
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *DevicePathToConnect
|
||||||
|
)
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Routine Description:
|
||||||
|
This function will create all handles associate with every device
|
||||||
|
path node. If the handle associate with one device path node can not
|
||||||
|
be created success, then still give one chance to do the dispatch,
|
||||||
|
which load the missing drivers if possible.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
DevicePathToConnect - The device path which will be connected, it can
|
||||||
|
be a multi-instance device path
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
EFI_SUCCESS - All handles associate with every device path
|
||||||
|
node have been created
|
||||||
|
|
||||||
|
EFI_OUT_OF_RESOURCES - There is no resource to create new handles
|
||||||
|
|
||||||
|
EFI_NOT_FOUND - Create the handle associate with one device
|
||||||
|
path node failed
|
||||||
|
|
||||||
|
--*/
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *CopyOfDevicePath;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *Instance;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *Next;
|
||||||
|
EFI_HANDLE Handle;
|
||||||
|
EFI_HANDLE PreviousHandle;
|
||||||
|
UINTN Size;
|
||||||
|
|
||||||
|
if (DevicePathToConnect == NULL) {
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
DevicePath = DuplicateDevicePath (DevicePathToConnect);
|
||||||
|
CopyOfDevicePath = DevicePath;
|
||||||
|
if (DevicePath == NULL) {
|
||||||
|
return EFI_OUT_OF_RESOURCES;
|
||||||
|
}
|
||||||
|
|
||||||
|
do {
|
||||||
|
//
|
||||||
|
// The outer loop handles multi instance device paths.
|
||||||
|
// Only console variables contain multiple instance device paths.
|
||||||
|
//
|
||||||
|
// After this call DevicePath points to the next Instance
|
||||||
|
//
|
||||||
|
Instance = GetNextDevicePathInstance (&DevicePath, &Size);
|
||||||
|
Next = Instance;
|
||||||
|
while (!IsDevicePathEndType (Next)) {
|
||||||
|
Next = NextDevicePathNode (Next);
|
||||||
|
}
|
||||||
|
|
||||||
|
SetDevicePathEndNode (Next);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Start the real work of connect with RemainingDevicePath
|
||||||
|
//
|
||||||
|
PreviousHandle = NULL;
|
||||||
|
do {
|
||||||
|
//
|
||||||
|
// Find the handle that best matches the Device Path. If it is only a
|
||||||
|
// partial match the remaining part of the device path is returned in
|
||||||
|
// RemainingDevicePath.
|
||||||
|
//
|
||||||
|
RemainingDevicePath = Instance;
|
||||||
|
Status = gBS->LocateDevicePath (&gEfiDevicePathProtocolGuid, &RemainingDevicePath, &Handle);
|
||||||
|
|
||||||
|
if (!EFI_ERROR (Status)) {
|
||||||
|
if (Handle == PreviousHandle) {
|
||||||
|
//
|
||||||
|
// If no forward progress is made try invoking the Dispatcher.
|
||||||
|
// A new FV may have been added to the system an new drivers
|
||||||
|
// may now be found.
|
||||||
|
// Status == EFI_SUCCESS means a driver was dispatched
|
||||||
|
// Status == EFI_NOT_FOUND means no new drivers were dispatched
|
||||||
|
//
|
||||||
|
Status = gDS->Dispatch ();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!EFI_ERROR (Status)) {
|
||||||
|
PreviousHandle = Handle;
|
||||||
|
//
|
||||||
|
// Connect all drivers that apply to Handle and RemainingDevicePath,
|
||||||
|
// the Recursive flag is FALSE so only one level will be expanded.
|
||||||
|
//
|
||||||
|
// Do not check the connect status here, if the connect controller fail,
|
||||||
|
// then still give the chance to do dispatch, because partial
|
||||||
|
// RemainingDevicepath may be in the new FV
|
||||||
|
//
|
||||||
|
// 1. If the connect fail, RemainingDevicepath and handle will not
|
||||||
|
// change, so next time will do the dispatch, then dispatch's status
|
||||||
|
// will take effect
|
||||||
|
// 2. If the connect success, the RemainingDevicepath and handle will
|
||||||
|
// change, then avoid the dispatch, we have chance to continue the
|
||||||
|
// next connection
|
||||||
|
//
|
||||||
|
gBS->ConnectController (Handle, NULL, RemainingDevicePath, FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Loop until RemainingDevicePath is an empty device path
|
||||||
|
//
|
||||||
|
} while (!EFI_ERROR (Status) && !IsDevicePathEnd (RemainingDevicePath));
|
||||||
|
|
||||||
|
} while (DevicePath != NULL);
|
||||||
|
|
||||||
|
if (CopyOfDevicePath != NULL) {
|
||||||
|
FreePool (CopyOfDevicePath);
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// All handle with DevicePath exists in the handle database
|
||||||
|
//
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
BdsLibConnectAllEfi (
|
||||||
|
VOID
|
||||||
|
)
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Routine Description:
|
||||||
|
|
||||||
|
This function will connect all current system handles recursively. The
|
||||||
|
connection will finish until every handle's child handle created if it have.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
EFI_SUCCESS - All handles and it's child handle have been connected
|
||||||
|
|
||||||
|
EFI_STATUS - Return the status of gBS->LocateHandleBuffer().
|
||||||
|
|
||||||
|
--*/
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
UINTN HandleCount;
|
||||||
|
EFI_HANDLE *HandleBuffer;
|
||||||
|
UINTN Index;
|
||||||
|
|
||||||
|
Status = gBS->LocateHandleBuffer (
|
||||||
|
AllHandles,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
&HandleCount,
|
||||||
|
&HandleBuffer
|
||||||
|
);
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Index = 0; Index < HandleCount; Index++) {
|
||||||
|
Status = gBS->ConnectController (HandleBuffer[Index], NULL, NULL, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
FreePool (HandleBuffer);
|
||||||
|
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
BdsLibDisconnectAllEfi (
|
||||||
|
VOID
|
||||||
|
)
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Routine Description:
|
||||||
|
|
||||||
|
This function will disconnect all current system handles. The disconnection
|
||||||
|
will finish until every handle have been disconnected.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
EFI_SUCCESS - All handles have been disconnected
|
||||||
|
|
||||||
|
EFI_STATUS - Return the status of gBS->LocateHandleBuffer().
|
||||||
|
|
||||||
|
--*/
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
UINTN HandleCount;
|
||||||
|
EFI_HANDLE *HandleBuffer;
|
||||||
|
UINTN Index;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Disconnect all
|
||||||
|
//
|
||||||
|
Status = gBS->LocateHandleBuffer (
|
||||||
|
AllHandles,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
&HandleCount,
|
||||||
|
&HandleBuffer
|
||||||
|
);
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Index = 0; Index < HandleCount; Index++) {
|
||||||
|
Status = gBS->DisconnectController (HandleBuffer[Index], NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
FreePool (HandleBuffer);
|
||||||
|
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
BdsLibConnectAllDriversToAllControllers (
|
||||||
|
VOID
|
||||||
|
)
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Routine Description:
|
||||||
|
|
||||||
|
Connects all drivers to all controllers.
|
||||||
|
This function make sure all the current system driver will manage
|
||||||
|
the correspoinding controllers if have. And at the same time, make
|
||||||
|
sure all the system controllers have driver to manage it if have.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
--*/
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
|
||||||
|
do {
|
||||||
|
//
|
||||||
|
// Connect All EFI 1.10 drivers following EFI 1.10 algorithm
|
||||||
|
//
|
||||||
|
BdsLibConnectAllEfi ();
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check to see if it's possible to dispatch an more DXE drivers.
|
||||||
|
// The BdsLibConnectAllEfi () may have made new DXE drivers show up.
|
||||||
|
// If anything is Dispatched Status == EFI_SUCCESS and we will try
|
||||||
|
// the connect again.
|
||||||
|
//
|
||||||
|
Status = gDS->Dispatch ();
|
||||||
|
|
||||||
|
} while (!EFI_ERROR (Status));
|
||||||
|
|
||||||
|
}
|
399
Nt32Pkg/Library/EdkGenericBdsLib/BdsConsole.c
Normal file
399
Nt32Pkg/Library/EdkGenericBdsLib/BdsConsole.c
Normal file
@ -0,0 +1,399 @@
|
|||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
BdsConsole.c
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
BDS Lib functions which contain all the code to connect console device
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// Include common header file for this module.
|
||||||
|
//
|
||||||
|
#include "CommonHeader.h"
|
||||||
|
|
||||||
|
BOOLEAN
|
||||||
|
IsNvNeed (
|
||||||
|
IN CHAR16 *ConVarName
|
||||||
|
)
|
||||||
|
{
|
||||||
|
CHAR16 *Ptr;
|
||||||
|
|
||||||
|
Ptr = ConVarName;
|
||||||
|
|
||||||
|
//
|
||||||
|
// If the variable includes "Dev" at last, we consider
|
||||||
|
// it does not support NV attribute.
|
||||||
|
//
|
||||||
|
while (*Ptr) {
|
||||||
|
Ptr++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((*(Ptr - 3) == 'D') && (*(Ptr - 2) == 'e') && (*(Ptr - 1) == 'v')) {
|
||||||
|
return FALSE;
|
||||||
|
} else {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
BdsLibUpdateConsoleVariable (
|
||||||
|
IN CHAR16 *ConVarName,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *CustomizedConDevicePath,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *ExclusiveDevicePath
|
||||||
|
)
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Routine Description:
|
||||||
|
|
||||||
|
This function update console variable based on ConVarName, it can
|
||||||
|
add or remove one specific console device path from the variable
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
ConVarName - Console related variable name, ConIn, ConOut, ErrOut.
|
||||||
|
|
||||||
|
CustomizedConDevicePath - The console device path which will be added to
|
||||||
|
the console variable ConVarName, this parameter
|
||||||
|
can not be multi-instance.
|
||||||
|
|
||||||
|
ExclusiveDevicePath - The console device path which will be removed
|
||||||
|
from the console variable ConVarName, this
|
||||||
|
parameter can not be multi-instance.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
EFI_UNSUPPORTED - Add or remove the same device path.
|
||||||
|
|
||||||
|
EFI_SUCCESS - Success add or remove the device path from
|
||||||
|
the console variable.
|
||||||
|
|
||||||
|
--*/
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *VarConsole;
|
||||||
|
UINTN DevicePathSize;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *NewDevicePath;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *TempNewDevicePath;
|
||||||
|
UINT32 Attributes;
|
||||||
|
|
||||||
|
VarConsole = NULL;
|
||||||
|
DevicePathSize = 0;
|
||||||
|
Status = EFI_UNSUPPORTED;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Notes: check the device path point, here should check
|
||||||
|
// with compare memory
|
||||||
|
//
|
||||||
|
if (CustomizedConDevicePath == ExclusiveDevicePath) {
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Delete the ExclusiveDevicePath from current default console
|
||||||
|
//
|
||||||
|
VarConsole = BdsLibGetVariableAndSize (
|
||||||
|
ConVarName,
|
||||||
|
&gEfiGlobalVariableGuid,
|
||||||
|
&DevicePathSize
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Initialize NewDevicePath
|
||||||
|
//
|
||||||
|
NewDevicePath = VarConsole;
|
||||||
|
|
||||||
|
//
|
||||||
|
// If ExclusiveDevicePath is even the part of the instance in VarConsole, delete it.
|
||||||
|
// In the end, NewDevicePath is the final device path.
|
||||||
|
//
|
||||||
|
if (ExclusiveDevicePath != NULL && VarConsole != NULL) {
|
||||||
|
NewDevicePath = BdsLibDelPartMatchInstance (VarConsole, ExclusiveDevicePath);
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Try to append customized device path to NewDevicePath.
|
||||||
|
//
|
||||||
|
if (CustomizedConDevicePath != NULL) {
|
||||||
|
if (!BdsLibMatchDevicePaths (NewDevicePath, CustomizedConDevicePath)) {
|
||||||
|
//
|
||||||
|
// Check if there is part of CustomizedConDevicePath in NewDevicePath, delete it.
|
||||||
|
//
|
||||||
|
NewDevicePath = BdsLibDelPartMatchInstance (NewDevicePath, CustomizedConDevicePath);
|
||||||
|
//
|
||||||
|
// In the first check, the default console variable will be null,
|
||||||
|
// just append current customized device path
|
||||||
|
//
|
||||||
|
TempNewDevicePath = NewDevicePath;
|
||||||
|
NewDevicePath = AppendDevicePathInstance (NewDevicePath, CustomizedConDevicePath);
|
||||||
|
BdsLibSafeFreePool(TempNewDevicePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// The attribute for ConInDev, ConOutDev and ErrOutDev does not include NV.
|
||||||
|
//
|
||||||
|
if (IsNvNeed(ConVarName)) {
|
||||||
|
//
|
||||||
|
// ConVarName has NV attribute.
|
||||||
|
//
|
||||||
|
Attributes = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE;
|
||||||
|
} else {
|
||||||
|
//
|
||||||
|
// ConVarName does not have NV attribute.
|
||||||
|
//
|
||||||
|
Attributes = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Finally, Update the variable of the default console by NewDevicePath
|
||||||
|
//
|
||||||
|
gRT->SetVariable (
|
||||||
|
ConVarName,
|
||||||
|
&gEfiGlobalVariableGuid,
|
||||||
|
Attributes,
|
||||||
|
GetDevicePathSize (NewDevicePath),
|
||||||
|
NewDevicePath
|
||||||
|
);
|
||||||
|
|
||||||
|
if (VarConsole == NewDevicePath) {
|
||||||
|
BdsLibSafeFreePool(VarConsole);
|
||||||
|
} else {
|
||||||
|
BdsLibSafeFreePool(VarConsole);
|
||||||
|
BdsLibSafeFreePool(NewDevicePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
BdsLibConnectConsoleVariable (
|
||||||
|
IN CHAR16 *ConVarName
|
||||||
|
)
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Routine Description:
|
||||||
|
|
||||||
|
Connect the console device base on the variable ConVarName, if
|
||||||
|
device path of the ConVarName is multi-instance device path, if
|
||||||
|
anyone of the instances is connected success, then this function
|
||||||
|
will return success.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
ConVarName - Console related variable name, ConIn, ConOut, ErrOut.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
EFI_NOT_FOUND - There is not any console devices connected success
|
||||||
|
|
||||||
|
EFI_SUCCESS - Success connect any one instance of the console
|
||||||
|
device path base on the variable ConVarName.
|
||||||
|
|
||||||
|
--*/
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *StartDevicePath;
|
||||||
|
UINTN VariableSize;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *Instance;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *Next;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *CopyOfDevicePath;
|
||||||
|
UINTN Size;
|
||||||
|
BOOLEAN DeviceExist;
|
||||||
|
|
||||||
|
Status = EFI_SUCCESS;
|
||||||
|
DeviceExist = FALSE;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check if the console variable exist
|
||||||
|
//
|
||||||
|
StartDevicePath = BdsLibGetVariableAndSize (
|
||||||
|
ConVarName,
|
||||||
|
&gEfiGlobalVariableGuid,
|
||||||
|
&VariableSize
|
||||||
|
);
|
||||||
|
if (StartDevicePath == NULL) {
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
CopyOfDevicePath = StartDevicePath;
|
||||||
|
do {
|
||||||
|
//
|
||||||
|
// Check every instance of the console variable
|
||||||
|
//
|
||||||
|
Instance = GetNextDevicePathInstance (&CopyOfDevicePath, &Size);
|
||||||
|
Next = Instance;
|
||||||
|
while (!IsDevicePathEndType (Next)) {
|
||||||
|
Next = NextDevicePathNode (Next);
|
||||||
|
}
|
||||||
|
|
||||||
|
SetDevicePathEndNode (Next);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Connect the instance device path
|
||||||
|
//
|
||||||
|
Status = BdsLibConnectDevicePath (Instance);
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
//
|
||||||
|
// Delete the instance from the console varialbe
|
||||||
|
//
|
||||||
|
BdsLibUpdateConsoleVariable (ConVarName, NULL, Instance);
|
||||||
|
} else {
|
||||||
|
DeviceExist = TRUE;
|
||||||
|
}
|
||||||
|
BdsLibSafeFreePool(Instance);
|
||||||
|
} while (CopyOfDevicePath != NULL);
|
||||||
|
|
||||||
|
FreePool (StartDevicePath);
|
||||||
|
|
||||||
|
if (DeviceExist == FALSE) {
|
||||||
|
return EFI_NOT_FOUND;
|
||||||
|
}
|
||||||
|
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
BdsLibConnectAllConsoles (
|
||||||
|
VOID
|
||||||
|
)
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Routine Description:
|
||||||
|
|
||||||
|
This function will search every simpletxt devive in current system,
|
||||||
|
and make every simpletxt device as pertantial console device.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
--*/
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
UINTN Index;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *ConDevicePath;
|
||||||
|
UINTN HandleCount;
|
||||||
|
EFI_HANDLE *HandleBuffer;
|
||||||
|
|
||||||
|
Index = 0;
|
||||||
|
HandleCount = 0;
|
||||||
|
HandleBuffer = NULL;
|
||||||
|
ConDevicePath = NULL;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Update all the console varables
|
||||||
|
//
|
||||||
|
Status = gBS->LocateHandleBuffer (
|
||||||
|
ByProtocol,
|
||||||
|
&gEfiSimpleTextInProtocolGuid,
|
||||||
|
NULL,
|
||||||
|
&HandleCount,
|
||||||
|
&HandleBuffer
|
||||||
|
);
|
||||||
|
for (Index = 0; Index < HandleCount; Index++) {
|
||||||
|
Status = gBS->HandleProtocol (
|
||||||
|
HandleBuffer[Index],
|
||||||
|
&gEfiDevicePathProtocolGuid,
|
||||||
|
(VOID **) &ConDevicePath
|
||||||
|
);
|
||||||
|
BdsLibUpdateConsoleVariable (L"ConIn", ConDevicePath, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
BdsLibSafeFreePool(HandleBuffer);
|
||||||
|
|
||||||
|
Status = gBS->LocateHandleBuffer (
|
||||||
|
ByProtocol,
|
||||||
|
&gEfiSimpleTextOutProtocolGuid,
|
||||||
|
NULL,
|
||||||
|
&HandleCount,
|
||||||
|
&HandleBuffer
|
||||||
|
);
|
||||||
|
for (Index = 0; Index < HandleCount; Index++) {
|
||||||
|
Status = gBS->HandleProtocol (
|
||||||
|
HandleBuffer[Index],
|
||||||
|
&gEfiDevicePathProtocolGuid,
|
||||||
|
(VOID **) &ConDevicePath
|
||||||
|
);
|
||||||
|
BdsLibUpdateConsoleVariable (L"ConOut", ConDevicePath, NULL);
|
||||||
|
BdsLibUpdateConsoleVariable (L"ErrOut", ConDevicePath, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
BdsLibSafeFreePool(HandleBuffer);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Connect all console variables
|
||||||
|
//
|
||||||
|
BdsLibConnectAllDefaultConsoles ();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
BdsLibConnectAllDefaultConsoles (
|
||||||
|
VOID
|
||||||
|
)
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Routine Description:
|
||||||
|
|
||||||
|
This function will connect console device base on the console
|
||||||
|
device variable ConIn, ConOut and ErrOut.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
EFI_SUCCESS - At least one of the ConIn and ConOut device have
|
||||||
|
been connected success.
|
||||||
|
|
||||||
|
EFI_STATUS - Return the status of BdsLibConnectConsoleVariable ().
|
||||||
|
|
||||||
|
--*/
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Connect all default console variables
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// Because possibly the platform is legacy free, in such case,
|
||||||
|
// ConIn devices (Serial Port and PS2 Keyboard ) does not exist,
|
||||||
|
// so we need not check the status.
|
||||||
|
//
|
||||||
|
BdsLibConnectConsoleVariable (L"ConIn");
|
||||||
|
|
||||||
|
//
|
||||||
|
// It seems impossible not to have any ConOut device on platform,
|
||||||
|
// so we check the status here.
|
||||||
|
//
|
||||||
|
Status = BdsLibConnectConsoleVariable (L"ConOut");
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Special treat the err out device, becaues the null
|
||||||
|
// err out var is legal.
|
||||||
|
//
|
||||||
|
BdsLibConnectConsoleVariable (L"ErrOut");
|
||||||
|
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
|
||||||
|
}
|
1099
Nt32Pkg/Library/EdkGenericBdsLib/BdsMisc.c
Normal file
1099
Nt32Pkg/Library/EdkGenericBdsLib/BdsMisc.c
Normal file
File diff suppressed because it is too large
Load Diff
62
Nt32Pkg/Library/EdkGenericBdsLib/CommonHeader.h
Normal file
62
Nt32Pkg/Library/EdkGenericBdsLib/CommonHeader.h
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/**@file
|
||||||
|
Common header file shared by all source files.
|
||||||
|
|
||||||
|
This file includes package header files, library classes and protocol, PPI & GUID definitions.
|
||||||
|
|
||||||
|
Copyright (c) 2006 - 2007, Intel Corporation.
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef __COMMON_HEADER_H_
|
||||||
|
#define __COMMON_HEADER_H_
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// The package level header files this module uses
|
||||||
|
//
|
||||||
|
#include <Dxe.h>
|
||||||
|
#include <EdkDxe.h>
|
||||||
|
#include <WinNtDxe.h>
|
||||||
|
//
|
||||||
|
// The protocols, PPI and GUID defintions for this module
|
||||||
|
//
|
||||||
|
#include <Protocol/SimpleTextIn.h>
|
||||||
|
#include <Protocol/SimpleTextOut.h>
|
||||||
|
#include <Protocol/LoadedImage.h>
|
||||||
|
#include <Guid/GenericPlatformVariable.h>
|
||||||
|
#include <Guid/ShellFile.h>
|
||||||
|
#include <Protocol/SimpleFileSystem.h>
|
||||||
|
#include <Protocol/BlockIo.h>
|
||||||
|
#include <Protocol/SimpleNetwork.h>
|
||||||
|
#include <Protocol/AcpiS3Save.h>
|
||||||
|
#include <Guid/GlobalVariable.h>
|
||||||
|
#include <Protocol/FormBrowser.h>
|
||||||
|
#include <Protocol/LegacyBios.h>
|
||||||
|
#include <Protocol/DriverBinding.h>
|
||||||
|
#include <Protocol/LoadFile.h>
|
||||||
|
#include <Protocol/DevicePath.h>
|
||||||
|
#include <Protocol/FirmwareVolume.h>
|
||||||
|
//
|
||||||
|
// The Library classes this module consumes
|
||||||
|
//
|
||||||
|
#include <Library/EdkGenericBdsLib.h>
|
||||||
|
#include <Library/BaseLib.h>
|
||||||
|
#include <Library/UefiLib.h>
|
||||||
|
#include <Library/DxeServicesTableLib.h>
|
||||||
|
#include <Library/DebugLib.h>
|
||||||
|
#include <Library/PrintLib.h>
|
||||||
|
#include <Library/HobLib.h>
|
||||||
|
#include <Library/BaseMemoryLib.h>
|
||||||
|
#include <Library/MemoryAllocationLib.h>
|
||||||
|
#include <Library/UefiBootServicesTableLib.h>
|
||||||
|
#include <Library/UefiRuntimeServicesTableLib.h>
|
||||||
|
#include <Library/DevicePathLib.h>
|
||||||
|
#include <Library/PerformanceLib.h>
|
||||||
|
#include <Library/PeCoffLib.h>
|
||||||
|
|
||||||
|
#endif
|
1124
Nt32Pkg/Library/EdkGenericBdsLib/DevicePath.c
Normal file
1124
Nt32Pkg/Library/EdkGenericBdsLib/DevicePath.c
Normal file
File diff suppressed because it is too large
Load Diff
139
Nt32Pkg/Library/EdkGenericBdsLib/EdkGenericBdsLib.inf
Normal file
139
Nt32Pkg/Library/EdkGenericBdsLib/EdkGenericBdsLib.inf
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
#/** @file
|
||||||
|
# EDK Generic BDS Common APIs Library Instance.
|
||||||
|
#
|
||||||
|
# The library instance provides common library routines help in
|
||||||
|
# performance measurement, device path debug print, boot device selections,
|
||||||
|
# boot device connection, console supports in BDS phase and boot from boot
|
||||||
|
# device.
|
||||||
|
# Copyright (c) 2006 - 2007, Intel Corporation.
|
||||||
|
#
|
||||||
|
# All rights reserved. This program and the accompanying materials
|
||||||
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
|
# http://opensource.org/licenses/bsd-license.php
|
||||||
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#**/
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Defines Section - statements that will be processed to create a Makefile.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 0x00010005
|
||||||
|
BASE_NAME = EdkGenericBdsLib
|
||||||
|
FILE_GUID = 1ec995b2-d15b-44f6-abd2-050ea7dd37d2
|
||||||
|
MODULE_TYPE = DXE_DRIVER
|
||||||
|
VERSION_STRING = 1.0
|
||||||
|
LIBRARY_CLASS = EdkGenericBdsLib|DXE_DRIVER
|
||||||
|
EDK_RELEASE_VERSION = 0x00020000
|
||||||
|
EFI_SPECIFICATION_VERSION = 0x00020000
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# The following information is for reference only and not required by the build tools.
|
||||||
|
#
|
||||||
|
# VALID_ARCHITECTURES = IA32
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Sources Section - list of files that are required for the build to succeed.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Sources.common]
|
||||||
|
BdsMisc.c
|
||||||
|
Performance.c
|
||||||
|
Performance.h
|
||||||
|
DevicePath.c
|
||||||
|
BdsConnect.c
|
||||||
|
BdsConsole.c
|
||||||
|
BdsBoot.c
|
||||||
|
CommonHeader.h
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Includes Section - list of Include locations that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Includes]
|
||||||
|
$(WORKSPACE)/MdePkg/Include/Library
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Package Dependency Section - list of Package files that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
Nt32Pkg/Nt32Pkg.dec
|
||||||
|
EdkModulePkg/EdkModulePkg.dec
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Library Class Section - list of Library Classes that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[LibraryClasses]
|
||||||
|
PeCoffLib
|
||||||
|
PerformanceLib
|
||||||
|
DevicePathLib
|
||||||
|
UefiRuntimeServicesTableLib
|
||||||
|
UefiBootServicesTableLib
|
||||||
|
MemoryAllocationLib
|
||||||
|
BaseMemoryLib
|
||||||
|
HobLib
|
||||||
|
PrintLib
|
||||||
|
DebugLib
|
||||||
|
DxeServicesTableLib
|
||||||
|
UefiLib
|
||||||
|
BaseLib
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Guid C Name Section - list of Guids that this module uses or produces.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Guids]
|
||||||
|
gEfiGlobalVariableGuid # ALWAYS_CONSUMED
|
||||||
|
gEfiGenericPlatformVariableGuid # ALWAYS_CONSUMED
|
||||||
|
gEfiShellFileGuid # ALWAYS_CONSUMED
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Protocol C Name Section - list of Protocol and Protocol Notify C Names
|
||||||
|
# that this module uses or produces.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Protocols]
|
||||||
|
gEfiSimpleFileSystemProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
||||||
|
gEfiLoadFileProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
||||||
|
gEfiFormBrowserProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
|
gEfiDriverBindingProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
||||||
|
gEfiBlockIoProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
|
gEfiLegacyBiosProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
|
gEfiCpuArchProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
|
gEfiDevicePathProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
|
gEfiSimpleNetworkProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
||||||
|
gEfiSimpleTextInProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
||||||
|
gEfiSimpleTextOutProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
||||||
|
gEfiAcpiS3SaveProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
||||||
|
gEfiFirmwareVolumeProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
||||||
|
gEfiLoadedImageProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
|
|
144
Nt32Pkg/Library/EdkGenericBdsLib/EdkGenericBdsLib.msa
Normal file
144
Nt32Pkg/Library/EdkGenericBdsLib/EdkGenericBdsLib.msa
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<MsaHeader>
|
||||||
|
<ModuleName>EdkGenericBdsLib</ModuleName>
|
||||||
|
<ModuleType>DXE_DRIVER</ModuleType>
|
||||||
|
<GuidValue>1ec995b2-d15b-44f6-abd2-050ea7dd37d2</GuidValue>
|
||||||
|
<Version>1.0</Version>
|
||||||
|
<Abstract>EDK Generic BDS Common APIs Library Instance.</Abstract>
|
||||||
|
<Description>The library instance provides common library routines help in
|
||||||
|
performance measurement, device path debug print, boot device selections,
|
||||||
|
boot device connection, console supports in BDS phase and boot from boot
|
||||||
|
device.</Description>
|
||||||
|
<Copyright>Copyright (c) 2006 - 2007, Intel Corporation.</Copyright>
|
||||||
|
<License>All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>
|
||||||
|
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
|
||||||
|
</MsaHeader>
|
||||||
|
<ModuleDefinitions>
|
||||||
|
<SupportedArchitectures>IA32</SupportedArchitectures>
|
||||||
|
<BinaryModule>false</BinaryModule>
|
||||||
|
<OutputFileBasename>EdkGenericBdsLib</OutputFileBasename>
|
||||||
|
</ModuleDefinitions>
|
||||||
|
<LibraryClassDefinitions>
|
||||||
|
<LibraryClass Usage="ALWAYS_PRODUCED" SupModuleList="DXE_DRIVER">
|
||||||
|
<Keyword>EdkGenericBdsLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>BaseLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>UefiLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>DxeServicesTableLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>DebugLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>PrintLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>HobLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>BaseMemoryLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>MemoryAllocationLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>UefiBootServicesTableLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>UefiRuntimeServicesTableLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>DevicePathLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>PerformanceLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>PeCoffLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
</LibraryClassDefinitions>
|
||||||
|
<SourceFiles>
|
||||||
|
<Filename>BdsBoot.c</Filename>
|
||||||
|
<Filename>BdsConsole.c</Filename>
|
||||||
|
<Filename>BdsConnect.c</Filename>
|
||||||
|
<Filename>DevicePath.c</Filename>
|
||||||
|
<Filename>Performance.h</Filename>
|
||||||
|
<Filename>Performance.c</Filename>
|
||||||
|
<Filename>BdsMisc.c</Filename>
|
||||||
|
</SourceFiles>
|
||||||
|
<PackageDependencies>
|
||||||
|
<Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
||||||
|
<Package PackageGuid="68169ab0-d41b-4009-9060-292c253ac43d"/>
|
||||||
|
<Package PackageGuid="0fb2aa2d-10d5-40a5-a9dc-060c12a4a3f3"/>
|
||||||
|
</PackageDependencies>
|
||||||
|
<Protocols>
|
||||||
|
<Protocol Usage="ALWAYS_CONSUMED">
|
||||||
|
<ProtocolCName>gEfiLoadedImageProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
<Protocol Usage="SOMETIMES_CONSUMED">
|
||||||
|
<ProtocolCName>gEfiFirmwareVolumeProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
<Protocol Usage="SOMETIMES_CONSUMED">
|
||||||
|
<ProtocolCName>gEfiAcpiS3SaveProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
<Protocol Usage="SOMETIMES_CONSUMED">
|
||||||
|
<ProtocolCName>gEfiSimpleTextOutProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
<Protocol Usage="SOMETIMES_CONSUMED">
|
||||||
|
<ProtocolCName>gEfiSimpleTextInProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
<Protocol Usage="SOMETIMES_CONSUMED">
|
||||||
|
<ProtocolCName>gEfiSimpleNetworkProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
<Protocol Usage="ALWAYS_CONSUMED">
|
||||||
|
<ProtocolCName>gEfiDevicePathProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
<Protocol Usage="ALWAYS_CONSUMED">
|
||||||
|
<ProtocolCName>gEfiCpuArchProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
<Protocol Usage="ALWAYS_CONSUMED">
|
||||||
|
<ProtocolCName>gEfiLegacyBiosProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
<Protocol Usage="ALWAYS_CONSUMED">
|
||||||
|
<ProtocolCName>gEfiBlockIoProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
<Protocol Usage="SOMETIMES_CONSUMED">
|
||||||
|
<ProtocolCName>gEfiDriverBindingProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
<Protocol Usage="ALWAYS_CONSUMED">
|
||||||
|
<ProtocolCName>gEfiFormBrowserProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
<Protocol Usage="SOMETIMES_CONSUMED">
|
||||||
|
<ProtocolCName>gEfiLoadFileProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
<Protocol Usage="SOMETIMES_CONSUMED">
|
||||||
|
<ProtocolCName>gEfiSimpleFileSystemProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
</Protocols>
|
||||||
|
<Guids>
|
||||||
|
<GuidCNames Usage="ALWAYS_CONSUMED">
|
||||||
|
<GuidCName>gEfiShellFileGuid</GuidCName>
|
||||||
|
</GuidCNames>
|
||||||
|
<GuidCNames Usage="ALWAYS_CONSUMED">
|
||||||
|
<GuidCName>gEfiGenericPlatformVariableGuid</GuidCName>
|
||||||
|
</GuidCNames>
|
||||||
|
<GuidCNames Usage="ALWAYS_CONSUMED">
|
||||||
|
<GuidCName>gEfiGlobalVariableGuid</GuidCName>
|
||||||
|
</GuidCNames>
|
||||||
|
</Guids>
|
||||||
|
<Externs>
|
||||||
|
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
||||||
|
<Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
|
||||||
|
</Externs>
|
||||||
|
</ModuleSurfaceArea>
|
391
Nt32Pkg/Library/EdkGenericBdsLib/Performance.c
Normal file
391
Nt32Pkg/Library/EdkGenericBdsLib/Performance.c
Normal file
@ -0,0 +1,391 @@
|
|||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
Performance.c
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
This file include the file which can help to get the system
|
||||||
|
performance, all the function will only include if the performance
|
||||||
|
switch is set.
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// Include common header file for this module.
|
||||||
|
//
|
||||||
|
#include "CommonHeader.h"
|
||||||
|
|
||||||
|
#include "Performance.h"
|
||||||
|
|
||||||
|
|
||||||
|
STATIC
|
||||||
|
VOID
|
||||||
|
GetShortPdbFileName (
|
||||||
|
CHAR8 *PdbFileName,
|
||||||
|
CHAR8 *GaugeString
|
||||||
|
)
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Routine Description:
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
--*/
|
||||||
|
{
|
||||||
|
UINTN Index;
|
||||||
|
UINTN Index1;
|
||||||
|
UINTN StartIndex;
|
||||||
|
UINTN EndIndex;
|
||||||
|
|
||||||
|
if (PdbFileName == NULL) {
|
||||||
|
AsciiStrCpy (GaugeString, " ");
|
||||||
|
} else {
|
||||||
|
StartIndex = 0;
|
||||||
|
for (EndIndex = 0; PdbFileName[EndIndex] != 0; EndIndex++)
|
||||||
|
;
|
||||||
|
|
||||||
|
for (Index = 0; PdbFileName[Index] != 0; Index++) {
|
||||||
|
if (PdbFileName[Index] == '\\') {
|
||||||
|
StartIndex = Index + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (PdbFileName[Index] == '.') {
|
||||||
|
EndIndex = Index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Index1 = 0;
|
||||||
|
for (Index = StartIndex; Index < EndIndex; Index++) {
|
||||||
|
GaugeString[Index1] = PdbFileName[Index];
|
||||||
|
Index1++;
|
||||||
|
if (Index1 == PERF_TOKEN_LENGTH - 1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GaugeString[Index1] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
STATIC
|
||||||
|
CHAR8 *
|
||||||
|
GetPdbPath (
|
||||||
|
VOID *ImageBase
|
||||||
|
)
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Routine Description:
|
||||||
|
|
||||||
|
Located PDB path name in PE image
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
ImageBase - base of PE to search
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
Pointer into image at offset of PDB file name if PDB file name is found,
|
||||||
|
Otherwise a pointer to an empty string.
|
||||||
|
|
||||||
|
--*/
|
||||||
|
{
|
||||||
|
PE_COFF_LOADER_IMAGE_CONTEXT ImageContext;
|
||||||
|
|
||||||
|
ZeroMem (&ImageContext, sizeof (ImageContext));
|
||||||
|
ImageContext.Handle = ImageBase;
|
||||||
|
ImageContext.ImageRead = PeCoffLoaderImageReadFromMemory;
|
||||||
|
|
||||||
|
PeCoffLoaderGetImageInfo (&ImageContext);
|
||||||
|
|
||||||
|
return ImageContext.PdbPointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
STATIC
|
||||||
|
VOID
|
||||||
|
GetNameFromHandle (
|
||||||
|
IN EFI_HANDLE Handle,
|
||||||
|
OUT CHAR8 *GaugeString
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
EFI_LOADED_IMAGE_PROTOCOL *Image;
|
||||||
|
CHAR8 *PdbFileName;
|
||||||
|
EFI_DRIVER_BINDING_PROTOCOL *DriverBinding;
|
||||||
|
|
||||||
|
AsciiStrCpy (GaugeString, " ");
|
||||||
|
|
||||||
|
//
|
||||||
|
// Get handle name from image protocol
|
||||||
|
//
|
||||||
|
Status = gBS->HandleProtocol (
|
||||||
|
Handle,
|
||||||
|
&gEfiLoadedImageProtocolGuid,
|
||||||
|
&Image
|
||||||
|
);
|
||||||
|
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
Status = gBS->OpenProtocol (
|
||||||
|
Handle,
|
||||||
|
&gEfiDriverBindingProtocolGuid,
|
||||||
|
(VOID **) &DriverBinding,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||||
|
);
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Get handle name from image protocol
|
||||||
|
//
|
||||||
|
Status = gBS->HandleProtocol (
|
||||||
|
DriverBinding->ImageHandle,
|
||||||
|
&gEfiLoadedImageProtocolGuid,
|
||||||
|
&Image
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
PdbFileName = GetPdbPath (Image->ImageBase);
|
||||||
|
|
||||||
|
if (PdbFileName != NULL) {
|
||||||
|
GetShortPdbFileName (PdbFileName, GaugeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
WriteBootToOsPerformanceData (
|
||||||
|
VOID
|
||||||
|
)
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Routine Description:
|
||||||
|
|
||||||
|
Allocates a block of memory and writes performance data of booting to OS into it.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
--*/
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
EFI_CPU_ARCH_PROTOCOL *Cpu;
|
||||||
|
EFI_PHYSICAL_ADDRESS mAcpiLowMemoryBase;
|
||||||
|
UINT32 mAcpiLowMemoryLength;
|
||||||
|
UINT32 LimitCount;
|
||||||
|
PERF_HEADER mPerfHeader;
|
||||||
|
PERF_DATA mPerfData;
|
||||||
|
EFI_HANDLE *Handles;
|
||||||
|
UINTN NoHandles;
|
||||||
|
CHAR8 GaugeString[PERF_TOKEN_LENGTH];
|
||||||
|
UINT8 *Ptr;
|
||||||
|
UINT32 mIndex;
|
||||||
|
UINT64 Ticker;
|
||||||
|
UINT64 Freq;
|
||||||
|
UINT32 Duration;
|
||||||
|
UINT64 CurrentTicker;
|
||||||
|
UINT64 TimerPeriod;
|
||||||
|
UINTN LogEntryKey;
|
||||||
|
CONST VOID *Handle;
|
||||||
|
CONST CHAR8 *Token;
|
||||||
|
CONST CHAR8 *Module;
|
||||||
|
UINT64 StartTicker;
|
||||||
|
UINT64 EndTicker;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Retrive time stamp count as early as possilbe
|
||||||
|
//
|
||||||
|
Ticker = AsmReadTsc ();
|
||||||
|
|
||||||
|
//
|
||||||
|
// Allocate a block of memory that contain performance data to OS
|
||||||
|
//
|
||||||
|
mAcpiLowMemoryBase = 0xFFFFFFFF;
|
||||||
|
Status = gBS->AllocatePages (
|
||||||
|
AllocateMaxAddress,
|
||||||
|
EfiReservedMemoryType,
|
||||||
|
4,
|
||||||
|
&mAcpiLowMemoryBase
|
||||||
|
);
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
mAcpiLowMemoryLength = EFI_PAGES_TO_SIZE(4);
|
||||||
|
|
||||||
|
Ptr = (UINT8 *) ((UINT32) mAcpiLowMemoryBase + sizeof (PERF_HEADER));
|
||||||
|
LimitCount = (mAcpiLowMemoryLength - sizeof (PERF_HEADER)) / sizeof (PERF_DATA);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Initialize performance data structure
|
||||||
|
//
|
||||||
|
ZeroMem (&mPerfHeader, sizeof (PERF_HEADER));
|
||||||
|
|
||||||
|
//
|
||||||
|
// Get CPU frequency
|
||||||
|
//
|
||||||
|
Status = gBS->LocateProtocol (
|
||||||
|
&gEfiCpuArchProtocolGuid,
|
||||||
|
NULL,
|
||||||
|
&Cpu
|
||||||
|
);
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
gBS->FreePages (mAcpiLowMemoryBase, 4);
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Get Cpu Frequency
|
||||||
|
//
|
||||||
|
Status = Cpu->GetTimerValue (Cpu, 0, &(CurrentTicker), &TimerPeriod);
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
gBS->FreePages (mAcpiLowMemoryBase, 4);
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
Freq = DivU64x32 (1000000000000, (UINTN) TimerPeriod);
|
||||||
|
|
||||||
|
mPerfHeader.CpuFreq = Freq;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Record BDS raw performance data
|
||||||
|
//
|
||||||
|
mPerfHeader.BDSRaw = Ticker;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Put Detailed performance data into memory
|
||||||
|
//
|
||||||
|
Handles = NULL;
|
||||||
|
Status = gBS->LocateHandleBuffer (
|
||||||
|
AllHandles,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
&NoHandles,
|
||||||
|
&Handles
|
||||||
|
);
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
gBS->FreePages (mAcpiLowMemoryBase, 4);
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Get DXE drivers performance
|
||||||
|
//
|
||||||
|
for (mIndex = 0; mIndex < NoHandles; mIndex++) {
|
||||||
|
Ticker = 0;
|
||||||
|
LogEntryKey = 0;
|
||||||
|
while ((LogEntryKey = GetPerformanceMeasurement (
|
||||||
|
LogEntryKey,
|
||||||
|
&Handle,
|
||||||
|
&Token,
|
||||||
|
&Module,
|
||||||
|
&StartTicker,
|
||||||
|
&EndTicker)) != 0) {
|
||||||
|
if ((Handle == Handles[mIndex]) && (StartTicker < EndTicker)) {
|
||||||
|
Ticker += (EndTicker - StartTicker);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Duration = (UINT32) DivU64x32 (
|
||||||
|
Ticker,
|
||||||
|
(UINT32) Freq
|
||||||
|
);
|
||||||
|
|
||||||
|
if (Duration > 0) {
|
||||||
|
ZeroMem (&mPerfData, sizeof (PERF_DATA));
|
||||||
|
|
||||||
|
GetNameFromHandle (Handles[mIndex], GaugeString);
|
||||||
|
|
||||||
|
AsciiStrCpy (mPerfData.Token, GaugeString);
|
||||||
|
mPerfData.Duration = Duration;
|
||||||
|
|
||||||
|
CopyMem (Ptr, &mPerfData, sizeof (PERF_DATA));
|
||||||
|
Ptr += sizeof (PERF_DATA);
|
||||||
|
|
||||||
|
mPerfHeader.Count++;
|
||||||
|
if (mPerfHeader.Count == LimitCount) {
|
||||||
|
goto Done;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FreePool (Handles);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Get inserted performance data
|
||||||
|
//
|
||||||
|
LogEntryKey = 0;
|
||||||
|
while ((LogEntryKey = GetPerformanceMeasurement (
|
||||||
|
LogEntryKey,
|
||||||
|
&Handle,
|
||||||
|
&Token,
|
||||||
|
&Module,
|
||||||
|
&StartTicker,
|
||||||
|
&EndTicker)) != 0) {
|
||||||
|
if ((Handle == NULL) && (StartTicker <= EndTicker)) {
|
||||||
|
|
||||||
|
ZeroMem (&mPerfData, sizeof (PERF_DATA));
|
||||||
|
|
||||||
|
AsciiStrnCpy (mPerfData.Token, Token, DXE_PERFORMANCE_STRING_SIZE);
|
||||||
|
mPerfData.Duration = (UINT32) DivU64x32 (
|
||||||
|
EndTicker - StartTicker,
|
||||||
|
(UINT32) Freq
|
||||||
|
);
|
||||||
|
|
||||||
|
CopyMem (Ptr, &mPerfData, sizeof (PERF_DATA));
|
||||||
|
Ptr += sizeof (PERF_DATA);
|
||||||
|
|
||||||
|
mPerfHeader.Count++;
|
||||||
|
if (mPerfHeader.Count == LimitCount) {
|
||||||
|
goto Done;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Done:
|
||||||
|
|
||||||
|
mPerfHeader.Signiture = 0x66726550;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Put performance data to memory
|
||||||
|
//
|
||||||
|
CopyMem (
|
||||||
|
(UINT32 *) (UINT32) mAcpiLowMemoryBase,
|
||||||
|
&mPerfHeader,
|
||||||
|
sizeof (PERF_HEADER)
|
||||||
|
);
|
||||||
|
|
||||||
|
gRT->SetVariable (
|
||||||
|
L"PerfDataMemAddr",
|
||||||
|
&gEfiGenericPlatformVariableGuid,
|
||||||
|
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
|
||||||
|
sizeof (UINT32),
|
||||||
|
(VOID *) &mAcpiLowMemoryBase
|
||||||
|
);
|
||||||
|
|
||||||
|
return ;
|
||||||
|
}
|
60
Nt32Pkg/Library/EdkGenericBdsLib/Performance.h
Normal file
60
Nt32Pkg/Library/EdkGenericBdsLib/Performance.h
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) 2006, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
Performance.h
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
This file included the performance relete function header and
|
||||||
|
definition.
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
#ifndef _PERF_H_
|
||||||
|
#define _PERF_H_
|
||||||
|
|
||||||
|
//
|
||||||
|
// Include common header file for this module.
|
||||||
|
//
|
||||||
|
#include "CommonHeader.h"
|
||||||
|
|
||||||
|
#define PERF_TOKEN_LENGTH 28
|
||||||
|
#define PERF_PEI_ENTRY_MAX_NUM 50
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
CHAR8 Token[PERF_TOKEN_LENGTH];
|
||||||
|
UINT32 Duration;
|
||||||
|
} PERF_DATA;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT64 BootToOs;
|
||||||
|
UINT64 S3Resume;
|
||||||
|
UINT32 S3EntryNum;
|
||||||
|
PERF_DATA S3Entry[PERF_PEI_ENTRY_MAX_NUM];
|
||||||
|
UINT64 CpuFreq;
|
||||||
|
UINT64 BDSRaw;
|
||||||
|
UINT32 Count;
|
||||||
|
UINT32 Signiture;
|
||||||
|
} PERF_HEADER;
|
||||||
|
|
||||||
|
VOID
|
||||||
|
WriteBootToOsPerformanceData (
|
||||||
|
VOID
|
||||||
|
);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
ClearDebugRegisters (
|
||||||
|
VOID
|
||||||
|
);
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1,34 @@
|
|||||||
|
/**@file
|
||||||
|
Common header file shared by all source files.
|
||||||
|
|
||||||
|
This file includes package header files, library classes and protocol, PPI & GUID definitions.
|
||||||
|
|
||||||
|
Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef __COMMON_HEADER_H_
|
||||||
|
#define __COMMON_HEADER_H_
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// The package level header files this module uses
|
||||||
|
//
|
||||||
|
#include <Peim.h>
|
||||||
|
#include <WinNtPeim.h>
|
||||||
|
//
|
||||||
|
// The protocols, PPI and GUID defintions for this module
|
||||||
|
//
|
||||||
|
#include <Ppi/NtPeiLoadFile.h>
|
||||||
|
//
|
||||||
|
// The Library classes this module consumes
|
||||||
|
//
|
||||||
|
#include <Library/PeCoffGetEntryPointLib.h>
|
||||||
|
#include <Library/PeiServicesLib.h>
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1,92 @@
|
|||||||
|
#/** @file
|
||||||
|
# Component description file for the EdkNt32PeiPeCoffGetEntryPointLib library.
|
||||||
|
#
|
||||||
|
# PeCoffGetEntryPointLib library class for NT32 instance implemented by use NTPeiLoadFile PPI.
|
||||||
|
# Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
|
#
|
||||||
|
# All rights reserved. This program and the accompanying materials
|
||||||
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
|
# http://opensource.org/licenses/bsd-license.php
|
||||||
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#**/
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Defines Section - statements that will be processed to create a Makefile.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 0x00010005
|
||||||
|
BASE_NAME = EdkNt32PeiPeCoffGetEntryPointLib
|
||||||
|
FILE_GUID = 434b164e-5fa6-4a3d-bc04-02da2a4eeb26
|
||||||
|
MODULE_TYPE = PEIM
|
||||||
|
VERSION_STRING = 1.0
|
||||||
|
LIBRARY_CLASS = PeCoffGetEntryPointLib|PEI_CORE PEIM
|
||||||
|
EDK_RELEASE_VERSION = 0x00020000
|
||||||
|
EFI_SPECIFICATION_VERSION = 0x00020000
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# The following information is for reference only and not required by the build tools.
|
||||||
|
#
|
||||||
|
# VALID_ARCHITECTURES = IA32
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Sources Section - list of files that are required for the build to succeed.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Sources.common]
|
||||||
|
PeCoffGetEntryPoint.c
|
||||||
|
CommonHeader.h
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Includes Section - list of Include locations that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Includes]
|
||||||
|
$(WORKSPACE)/MdePkg/Include/Library
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Package Dependency Section - list of Package files that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
Nt32Pkg/Nt32Pkg.dec
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Library Class Section - list of Library Classes that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[LibraryClasses]
|
||||||
|
PeiServicesLib
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# PPI C Name Section - list of PPI and PPI Notify C Names that this module
|
||||||
|
# uses or produces.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Ppis]
|
||||||
|
gNtPeiLoadFilePpiGuid # PPI ALWAYS_CONSUMED
|
||||||
|
|
@ -0,0 +1,48 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<MsaHeader>
|
||||||
|
<ModuleName>EdkNt32PeiPeCoffGetEntryPointLib</ModuleName>
|
||||||
|
<ModuleType>PEIM</ModuleType>
|
||||||
|
<GuidValue>434b164e-5fa6-4a3d-bc04-02da2a4eeb26</GuidValue>
|
||||||
|
<Version>1.0</Version>
|
||||||
|
<Abstract>Component description file for the EdkNt32PeiPeCoffGetEntryPointLib library.</Abstract>
|
||||||
|
<Description>PeCoffGetEntryPointLib library class for NT32 instance implemented by use NTPeiLoadFile PPI.</Description>
|
||||||
|
<Copyright>Copyright (c) 2006 - 2007, Intel Corporation</Copyright>
|
||||||
|
<License>All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>
|
||||||
|
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
|
||||||
|
</MsaHeader>
|
||||||
|
<ModuleDefinitions>
|
||||||
|
<SupportedArchitectures>IA32</SupportedArchitectures>
|
||||||
|
<BinaryModule>false</BinaryModule>
|
||||||
|
<OutputFileBasename>EdkNt32PeiPeCoffGetEntryPointLib</OutputFileBasename>
|
||||||
|
</ModuleDefinitions>
|
||||||
|
<LibraryClassDefinitions>
|
||||||
|
<LibraryClass Usage="ALWAYS_PRODUCED" SupModuleList="PEI_CORE PEIM">
|
||||||
|
<Keyword>PeCoffGetEntryPointLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>PeiServicesLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
</LibraryClassDefinitions>
|
||||||
|
<SourceFiles>
|
||||||
|
<Filename>PeCoffGetEntryPoint.c</Filename>
|
||||||
|
</SourceFiles>
|
||||||
|
<PackageDependencies>
|
||||||
|
<Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
||||||
|
<Package PackageGuid="0fb2aa2d-10d5-40a5-a9dc-060c12a4a3f3"/>
|
||||||
|
</PackageDependencies>
|
||||||
|
<PPIs>
|
||||||
|
<Ppi Usage="ALWAYS_CONSUMED">
|
||||||
|
<PpiCName>gNtPeiLoadFilePpiGuid</PpiCName>
|
||||||
|
</Ppi>
|
||||||
|
</PPIs>
|
||||||
|
<Externs>
|
||||||
|
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
||||||
|
<Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
|
||||||
|
</Externs>
|
||||||
|
</ModuleSurfaceArea>
|
@ -0,0 +1,118 @@
|
|||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
PeCoffGetEntryPoint.c
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
Tiano PE/COFF loader
|
||||||
|
|
||||||
|
Revision History
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Include common header file for this module.
|
||||||
|
//
|
||||||
|
#include "CommonHeader.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;
|
||||||
|
|
||||||
|
Status = PeiServicesLocatePpi (
|
||||||
|
&gNtPeiLoadFilePpiGuid,
|
||||||
|
0,
|
||||||
|
&PpiDescriptor,
|
||||||
|
&PeiNtService
|
||||||
|
);
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
Status = PeiNtService->PeiLoadFileService (
|
||||||
|
Pe32Data,
|
||||||
|
&ImageAddress,
|
||||||
|
&ImageSize,
|
||||||
|
&ImageEntryPoint
|
||||||
|
);
|
||||||
|
*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 Image 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;
|
||||||
|
|
||||||
|
DosHdr = (EFI_IMAGE_DOS_HEADER *)Pe32Data;
|
||||||
|
if (DosHdr->e_magic == EFI_IMAGE_DOS_SIGNATURE) {
|
||||||
|
Hdr.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)((UINTN)Pe32Data + DosHdr->e_lfanew);
|
||||||
|
} else {
|
||||||
|
Hdr.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)((UINTN)Pe32Data);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Hdr.Pe32->Signature == EFI_IMAGE_NT_SIGNATURE) {
|
||||||
|
return Hdr.Pe32->FileHeader.Machine;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0x0000;
|
||||||
|
}
|
||||||
|
|
33
Nt32Pkg/Library/Nt32PeCoffLoaderLib/CommonHeader.h
Normal file
33
Nt32Pkg/Library/Nt32PeCoffLoaderLib/CommonHeader.h
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/**@file
|
||||||
|
Common header file shared by all source files.
|
||||||
|
|
||||||
|
This file includes package header files, library classes and protocol, PPI & GUID definitions.
|
||||||
|
|
||||||
|
Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef __COMMON_HEADER_H_
|
||||||
|
#define __COMMON_HEADER_H_
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// The package level header files this module uses
|
||||||
|
//
|
||||||
|
#include <Peim.h>
|
||||||
|
#include <EdkPeim.h>
|
||||||
|
//
|
||||||
|
// The protocols, PPI and GUID defintions for this module
|
||||||
|
//
|
||||||
|
#include <Guid/PeiPeCoffLoader.h>
|
||||||
|
//
|
||||||
|
// The Library classes this module consumes
|
||||||
|
//
|
||||||
|
#include <Library/EdkPeCoffLoaderLib.h>
|
||||||
|
|
||||||
|
#endif
|
57
Nt32Pkg/Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoader.c
Normal file
57
Nt32Pkg/Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoader.c
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) 2006, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
TianoPeCoffLoader.c
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
Wrap the Base PE/COFF loader with the PE COFF Protocol
|
||||||
|
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Include common header file for this module.
|
||||||
|
//
|
||||||
|
#include "CommonHeader.h"
|
||||||
|
|
||||||
|
EFI_PEI_PE_COFF_LOADER_PROTOCOL *mPeiEfiPeiPeCoffLoader;
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
PeCoffLoaderConstructor (
|
||||||
|
IN EFI_FFS_FILE_HEADER *FfsHeader,
|
||||||
|
IN EFI_PEI_SERVICES **PeiServices
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
|
||||||
|
Status = (*PeiServices)->LocatePpi (
|
||||||
|
PeiServices,
|
||||||
|
&gEfiPeiPeCoffLoaderGuid,
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
&mPeiEfiPeiPeCoffLoader
|
||||||
|
);
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_PEI_PE_COFF_LOADER_PROTOCOL *
|
||||||
|
EFIAPI
|
||||||
|
GetPeCoffLoaderProtocol (
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return mPeiEfiPeiPeCoffLoader;
|
||||||
|
}
|
81
Nt32Pkg/Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoaderLib.inf
Normal file
81
Nt32Pkg/Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoaderLib.inf
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
#/** @file
|
||||||
|
# Component description file for the Nt32PeCoffLoaderLib library.
|
||||||
|
#
|
||||||
|
# EdkPeCoffLoaderLib library class for NT32 instance implemented by PeiPeCoffLoader PPI.
|
||||||
|
# Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
|
#
|
||||||
|
# All rights reserved. This program and the accompanying materials
|
||||||
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
|
# http://opensource.org/licenses/bsd-license.php
|
||||||
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#**/
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Defines Section - statements that will be processed to create a Makefile.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 0x00010005
|
||||||
|
BASE_NAME = Nt32PeCoffLoaderLib
|
||||||
|
FILE_GUID = 3c5702f2-9b17-4273-b60c-b96e6cd13066
|
||||||
|
MODULE_TYPE = PEIM
|
||||||
|
VERSION_STRING = 1.0
|
||||||
|
LIBRARY_CLASS = EdkPeCoffLoaderLib|DXE_CORE PEIM
|
||||||
|
EDK_RELEASE_VERSION = 0x00020000
|
||||||
|
EFI_SPECIFICATION_VERSION = 0x00020000
|
||||||
|
|
||||||
|
CONSTRUCTOR = PeCoffLoaderConstructor
|
||||||
|
|
||||||
|
#
|
||||||
|
# The following information is for reference only and not required by the build tools.
|
||||||
|
#
|
||||||
|
# VALID_ARCHITECTURES = IA32
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Sources Section - list of files that are required for the build to succeed.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Sources.common]
|
||||||
|
Nt32PeCoffLoader.c
|
||||||
|
CommonHeader.h
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Includes Section - list of Include locations that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Includes]
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Package Dependency Section - list of Package files that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
EdkModulePkg/EdkModulePkg.dec
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# PPI C Name Section - list of PPI and PPI Notify C Names that this module
|
||||||
|
# uses or produces.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Ppis]
|
||||||
|
gEfiPeiPeCoffLoaderGuid # PPI ALWAYS_CONSUMED
|
||||||
|
|
48
Nt32Pkg/Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoaderLib.msa
Normal file
48
Nt32Pkg/Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoaderLib.msa
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<MsaHeader>
|
||||||
|
<ModuleName>Nt32PeCoffLoaderLib</ModuleName>
|
||||||
|
<ModuleType>PEIM</ModuleType>
|
||||||
|
<GuidValue>3c5702f2-9b17-4273-b60c-b96e6cd13066</GuidValue>
|
||||||
|
<Version>1.0</Version>
|
||||||
|
<Abstract>Component description file for the Nt32PeCoffLoaderLib library.</Abstract>
|
||||||
|
<Description>EdkPeCoffLoaderLib library class for NT32 instance implemented by PeiPeCoffLoader PPI.</Description>
|
||||||
|
<Copyright>Copyright (c) 2006 - 2007, Intel Corporation</Copyright>
|
||||||
|
<License>All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>
|
||||||
|
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
|
||||||
|
</MsaHeader>
|
||||||
|
<ModuleDefinitions>
|
||||||
|
<SupportedArchitectures>IA32</SupportedArchitectures>
|
||||||
|
<BinaryModule>false</BinaryModule>
|
||||||
|
<OutputFileBasename>Nt32PeCoffLoaderLib</OutputFileBasename>
|
||||||
|
</ModuleDefinitions>
|
||||||
|
<LibraryClassDefinitions>
|
||||||
|
<LibraryClass Usage="ALWAYS_PRODUCED" SupModuleList="DXE_CORE PEIM">
|
||||||
|
<Keyword>EdkPeCoffLoaderLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
</LibraryClassDefinitions>
|
||||||
|
<SourceFiles>
|
||||||
|
<Filename>Nt32PeCoffLoader.c</Filename>
|
||||||
|
</SourceFiles>
|
||||||
|
<PackageDependencies>
|
||||||
|
<Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
||||||
|
<Package PackageGuid="68169ab0-d41b-4009-9060-292c253ac43d"/>
|
||||||
|
</PackageDependencies>
|
||||||
|
<PPIs>
|
||||||
|
<Ppi Usage="ALWAYS_CONSUMED">
|
||||||
|
<PpiCName>gEfiPeiPeCoffLoaderGuid</PpiCName>
|
||||||
|
</Ppi>
|
||||||
|
</PPIs>
|
||||||
|
<Externs>
|
||||||
|
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
||||||
|
<Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
|
||||||
|
<Extern>
|
||||||
|
<Constructor>PeCoffLoaderConstructor</Constructor>
|
||||||
|
</Extern>
|
||||||
|
</Externs>
|
||||||
|
</ModuleSurfaceArea>
|
42
Nt32Pkg/Library/PeiNt32OemHookStatusCodeLib/CommonHeader.h
Normal file
42
Nt32Pkg/Library/PeiNt32OemHookStatusCodeLib/CommonHeader.h
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
/**@file
|
||||||
|
Common header file shared by all source files.
|
||||||
|
|
||||||
|
This file includes package header files, library classes and protocol, PPI & GUID definitions.
|
||||||
|
|
||||||
|
Copyright (c) 2007, Intel Corporation.
|
||||||
|
All rights reserved.
|
||||||
|
This software and associated documentation (if any) is furnished
|
||||||
|
under a license and may only be used or copied in accordance
|
||||||
|
with the terms of the license. Except as permitted by such
|
||||||
|
license, no part of this software or documentation may be
|
||||||
|
reproduced, stored in a retrieval system, or transmitted in any
|
||||||
|
form or by any means without the express written consent of
|
||||||
|
Intel Corporation.
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef __COMMON_HEADER_H_
|
||||||
|
#define __COMMON_HEADER_H_
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// The package level header files this module uses
|
||||||
|
//
|
||||||
|
#include <Peim.h>
|
||||||
|
#include <EdkPeim.h>
|
||||||
|
#include <WinNtPeim.h>
|
||||||
|
//
|
||||||
|
// The protocols, PPI and GUID defintions for this module
|
||||||
|
//
|
||||||
|
#include <Guid/StatusCodeDataTypeId.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>
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1,245 @@
|
|||||||
|
/** @file
|
||||||
|
OEM hook status code library functions with no library constructor/destructor
|
||||||
|
|
||||||
|
Copyright (c) 2006, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name: Nt32OemHookStatusCodeLib.c
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
//
|
||||||
|
// Include common header file for this module.
|
||||||
|
//
|
||||||
|
#include "CommonHeader.h"
|
||||||
|
|
||||||
|
//
|
||||||
|
// Cache of WinNtThunk protocol
|
||||||
|
//
|
||||||
|
STATIC
|
||||||
|
EFI_WIN_NT_THUNK_PROTOCOL *mWinNt;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Cache of standard output handle .
|
||||||
|
//
|
||||||
|
STATIC
|
||||||
|
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 EFI 1.10 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;
|
||||||
|
VA_LIST Marker;
|
||||||
|
EFI_DEBUG_INFO *DebugInfo;
|
||||||
|
|
||||||
|
Buffer[0] = '\0';
|
||||||
|
|
||||||
|
if (Data != NULL &&
|
||||||
|
ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber)) {
|
||||||
|
//
|
||||||
|
// Print ASSERT() information into output buffer.
|
||||||
|
//
|
||||||
|
CharCount = AsciiSPrint (
|
||||||
|
Buffer,
|
||||||
|
EFI_STATUS_CODE_DATA_MAX_SIZE,
|
||||||
|
"\n\rASSERT!: %a (%d): %a\n\r",
|
||||||
|
Filename,
|
||||||
|
LineNumber,
|
||||||
|
Description
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Callout to standard output.
|
||||||
|
//
|
||||||
|
mWinNt->WriteFile (
|
||||||
|
mStdOut,
|
||||||
|
Buffer,
|
||||||
|
CharCount,
|
||||||
|
&CharCount,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
|
||||||
|
} else if (Data != NULL &&
|
||||||
|
ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format)) {
|
||||||
|
//
|
||||||
|
// Print DEBUG() information into output buffer.
|
||||||
|
//
|
||||||
|
CharCount = AsciiVSPrint (
|
||||||
|
Buffer,
|
||||||
|
EFI_STATUS_CODE_DATA_MAX_SIZE,
|
||||||
|
Format,
|
||||||
|
Marker
|
||||||
|
);
|
||||||
|
} else if (Data != NULL &&
|
||||||
|
CompareGuid (&Data->Type, &gEfiStatusCodeSpecificDataGuid) &&
|
||||||
|
(CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE) {
|
||||||
|
//
|
||||||
|
// Print specific data into output buffer.
|
||||||
|
//
|
||||||
|
DebugInfo = (EFI_DEBUG_INFO *) (Data + 1);
|
||||||
|
Marker = (VA_LIST) (DebugInfo + 1);
|
||||||
|
Format = (CHAR8 *) (((UINT64 *) Marker) + 12);
|
||||||
|
|
||||||
|
CharCount = AsciiVSPrint (Buffer, EFI_STATUS_CODE_DATA_MAX_SIZE, Format, Marker);
|
||||||
|
} else if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) {
|
||||||
|
//
|
||||||
|
// Print ERROR information into output buffer.
|
||||||
|
//
|
||||||
|
CharCount = AsciiSPrint (
|
||||||
|
Buffer,
|
||||||
|
EFI_STATUS_CODE_DATA_MAX_SIZE,
|
||||||
|
"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],
|
||||||
|
(EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),
|
||||||
|
" %g",
|
||||||
|
CallerId
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Data != NULL) {
|
||||||
|
CharCount += AsciiSPrint (
|
||||||
|
&Buffer[CharCount - 1],
|
||||||
|
(EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),
|
||||||
|
" %x",
|
||||||
|
Data
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
CharCount += AsciiSPrint (
|
||||||
|
&Buffer[CharCount - 1],
|
||||||
|
(EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),
|
||||||
|
"\n\r"
|
||||||
|
);
|
||||||
|
} else if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) {
|
||||||
|
CharCount = AsciiSPrint (
|
||||||
|
Buffer,
|
||||||
|
EFI_STATUS_CODE_DATA_MAX_SIZE,
|
||||||
|
"PROGRESS CODE: V%x I%x\n\r",
|
||||||
|
Value,
|
||||||
|
Instance
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
CharCount = AsciiSPrint (
|
||||||
|
Buffer,
|
||||||
|
EFI_STATUS_CODE_DATA_MAX_SIZE,
|
||||||
|
"Undefined: C%x:V%x I%x\n\r",
|
||||||
|
CodeType,
|
||||||
|
Value,
|
||||||
|
Instance
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Callout to standard output.
|
||||||
|
//
|
||||||
|
mWinNt->WriteFile (
|
||||||
|
mStdOut,
|
||||||
|
Buffer,
|
||||||
|
CharCount,
|
||||||
|
&CharCount,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,109 @@
|
|||||||
|
#/** @file
|
||||||
|
# Memory Status Code Library for UEFI drivers
|
||||||
|
#
|
||||||
|
# Lib to provide memory journal status code reporting Routines
|
||||||
|
# Copyright (c) 2007, Intel Corporation.
|
||||||
|
#
|
||||||
|
# All rights reserved.
|
||||||
|
# This software and associated documentation (if any) is furnished
|
||||||
|
# under a license and may only be used or copied in accordance
|
||||||
|
# with the terms of the license. Except as permitted by such
|
||||||
|
# license, no part of this software or documentation may be
|
||||||
|
# reproduced, stored in a retrieval system, or transmitted in any
|
||||||
|
# form or by any means without the express written consent of
|
||||||
|
# Intel Corporation.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#**/
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Defines Section - statements that will be processed to create a Makefile.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
[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
|
||||||
|
EDK_RELEASE_VERSION = 0x00020000
|
||||||
|
EFI_SPECIFICATION_VERSION = 0x00020000
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# The following information is for reference only and not required by the build tools.
|
||||||
|
#
|
||||||
|
# VALID_ARCHITECTURES = IA32
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Sources Section - list of files that are required for the build to succeed.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Sources.common]
|
||||||
|
Nt32OemHookStatusCodeLib.c
|
||||||
|
CommonHeader.h
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Includes Section - list of Include locations that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Includes]
|
||||||
|
$(WORKSPACE)/MdePkg/Include/Library
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Package Dependency Section - list of Package files that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
Nt32Pkg/Nt32Pkg.dec
|
||||||
|
EdkModulePkg/EdkModulePkg.dec
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Library Class Section - list of Library Classes that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[LibraryClasses]
|
||||||
|
PeiServicesLib
|
||||||
|
ReportStatusCodeLib
|
||||||
|
BaseMemoryLib
|
||||||
|
PrintLib
|
||||||
|
DebugLib
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Guid C Name Section - list of Guids that this module uses or produces.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Guids]
|
||||||
|
gEfiStatusCodeSpecificDataGuid # SOMETIMES_CONSUMED
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# PPI C Name Section - list of PPI and PPI Notify C Names that this module
|
||||||
|
# uses or produces.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Ppis]
|
||||||
|
gPeiNtThunkPpiGuid # PPI ALWAYS_CONSUMED
|
||||||
|
|
@ -0,0 +1,68 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<MsaHeader>
|
||||||
|
<ModuleName>PeiNt32OemHookStatusCodeLib</ModuleName>
|
||||||
|
<ModuleType>PEIM</ModuleType>
|
||||||
|
<GuidValue>0C2070F9-02A7-4e8e-B584-84EA922363FB</GuidValue>
|
||||||
|
<Version>1.0</Version>
|
||||||
|
<Abstract>Memory Status Code Library for UEFI drivers</Abstract>
|
||||||
|
<Description>Lib to provide memory journal status code reporting Routines</Description>
|
||||||
|
<Copyright>Copyright (c) 2007, Intel Corporation.</Copyright>
|
||||||
|
<License>All rights reserved.
|
||||||
|
This software and associated documentation (if any) is furnished
|
||||||
|
under a license and may only be used or copied in accordance
|
||||||
|
with the terms of the license. Except as permitted by such
|
||||||
|
license, no part of this software or documentation may be
|
||||||
|
reproduced, stored in a retrieval system, or transmitted in any
|
||||||
|
form or by any means without the express written consent of
|
||||||
|
Intel Corporation.</License>
|
||||||
|
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
|
||||||
|
</MsaHeader>
|
||||||
|
<ModuleDefinitions>
|
||||||
|
<SupportedArchitectures>IA32</SupportedArchitectures>
|
||||||
|
<BinaryModule>false</BinaryModule>
|
||||||
|
<OutputFileBasename>PeiNt32OemHookStatusCodeLib</OutputFileBasename>
|
||||||
|
</ModuleDefinitions>
|
||||||
|
<LibraryClassDefinitions>
|
||||||
|
<LibraryClass Usage="ALWAYS_PRODUCED" SupModuleList="PEIM">
|
||||||
|
<Keyword>OemHookStatusCodeLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>DebugLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>PrintLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>BaseMemoryLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>ReportStatusCodeLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>PeiServicesLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
</LibraryClassDefinitions>
|
||||||
|
<SourceFiles>
|
||||||
|
<Filename>Nt32OemHookStatusCodeLib.c</Filename>
|
||||||
|
</SourceFiles>
|
||||||
|
<PackageDependencies>
|
||||||
|
<Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
||||||
|
<Package PackageGuid="68169ab0-d41b-4009-9060-292c253ac43d"/>
|
||||||
|
<Package PackageGuid="0fb2aa2d-10d5-40a5-a9dc-060c12a4a3f3"/>
|
||||||
|
</PackageDependencies>
|
||||||
|
<PPIs>
|
||||||
|
<Ppi Usage="ALWAYS_CONSUMED">
|
||||||
|
<PpiCName>gPeiNtThunkPpiGuid</PpiCName>
|
||||||
|
</Ppi>
|
||||||
|
</PPIs>
|
||||||
|
<Guids>
|
||||||
|
<GuidCNames Usage="SOMETIMES_CONSUMED">
|
||||||
|
<GuidCName>gEfiStatusCodeSpecificDataGuid</GuidCName>
|
||||||
|
</GuidCNames>
|
||||||
|
</Guids>
|
||||||
|
<Externs>
|
||||||
|
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
||||||
|
<Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
|
||||||
|
</Externs>
|
||||||
|
</ModuleSurfaceArea>
|
776
Nt32Pkg/Nt32.dsc
776
Nt32Pkg/Nt32.dsc
@ -51,66 +51,66 @@
|
|||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
[LibraryClass.IA32.DXE_CORE]
|
[LibraryClasses.IA32.DXE_CORE]
|
||||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||||
EdkPeCoffLoaderLib|$(WORKSPACE)\Nt32Pkg\Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoaderLib.inf
|
EdkPeCoffLoaderLib|$(WORKSPACE)\Nt32Pkg\Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoaderLib.inf
|
||||||
|
|
||||||
[LibraryClass.IA32]
|
[LibraryClasses.IA32]
|
||||||
IoLib|$(WORKSPACE)\MdePkg\Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
|
IoLib|$(WORKSPACE)\MdePkg\Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
|
||||||
|
|
||||||
[LibraryClass.IA32.DXE_SAL_DRIVER]
|
[LibraryClasses.IA32.DXE_SAL_DRIVER]
|
||||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||||
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
||||||
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
||||||
|
|
||||||
[LibraryClass.IA32.DXE_SMM_DRIVER]
|
[LibraryClasses.IA32.DXE_SMM_DRIVER]
|
||||||
WinNtLib|$(WORKSPACE)\Nt32Pkg\Library/DxeWinNtLib/DxeWinNtLib.inf
|
WinNtLib|$(WORKSPACE)\Nt32Pkg\Library/DxeWinNtLib/DxeWinNtLib.inf
|
||||||
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
||||||
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
||||||
|
|
||||||
[LibraryClass.IA32.PEIM]
|
[LibraryClasses.IA32.PEIM]
|
||||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||||
EdkPeCoffLoaderLib|$(WORKSPACE)\Nt32Pkg\Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoaderLib.inf
|
EdkPeCoffLoaderLib|$(WORKSPACE)\Nt32Pkg\Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoaderLib.inf
|
||||||
PeiServicesTablePointerLib|$(WORKSPACE)\MdePkg\Library/PeiServicesTablePointerLibMm7/PeiServicesTablePointerLibMm7.inf
|
PeiServicesTablePointerLib|$(WORKSPACE)\MdePkg\Library/PeiServicesTablePointerLibMm7/PeiServicesTablePointerLibMm7.inf
|
||||||
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/PeiNt32OemHookStatusCodeLib/PeiNt32OemHookStatusCodeLib.inf
|
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/PeiNt32OemHookStatusCodeLib/PeiNt32OemHookStatusCodeLib.inf
|
||||||
PeCoffGetEntryPointLib|$(WORKSPACE)\Nt32Pkg\Library/EdkNt32PeiPeCoffGetEntryPointLib/EdkNt32PeiPeCoffGetEntryPointLib.inf
|
PeCoffGetEntryPointLib|$(WORKSPACE)\Nt32Pkg\Library/EdkNt32PeiPeCoffGetEntryPointLib/EdkNt32PeiPeCoffGetEntryPointLib.inf
|
||||||
|
|
||||||
[LibraryClass.IA32.PEI_CORE]
|
[LibraryClasses.IA32.PEI_CORE]
|
||||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||||
PeiServicesTablePointerLib|$(WORKSPACE)\MdePkg\Library/PeiServicesTablePointerLibMm7/PeiServicesTablePointerLibMm7.inf
|
PeiServicesTablePointerLib|$(WORKSPACE)\MdePkg\Library/PeiServicesTablePointerLibMm7/PeiServicesTablePointerLibMm7.inf
|
||||||
PeCoffGetEntryPointLib|$(WORKSPACE)\Nt32Pkg\Library/EdkNt32PeiPeCoffGetEntryPointLib/EdkNt32PeiPeCoffGetEntryPointLib.inf
|
PeCoffGetEntryPointLib|$(WORKSPACE)\Nt32Pkg\Library/EdkNt32PeiPeCoffGetEntryPointLib/EdkNt32PeiPeCoffGetEntryPointLib.inf
|
||||||
|
|
||||||
[LibraryClass.IA32.DXE_RUNTIME_DRIVER]
|
[LibraryClasses.IA32.DXE_RUNTIME_DRIVER]
|
||||||
WinNtLib|$(WORKSPACE)\Nt32Pkg\Library/DxeWinNtLib/DxeWinNtLib.inf
|
WinNtLib|$(WORKSPACE)\Nt32Pkg\Library/DxeWinNtLib/DxeWinNtLib.inf
|
||||||
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
||||||
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
||||||
|
|
||||||
[LibraryClass.IA32.BASE]
|
[LibraryClasses.IA32.BASE]
|
||||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||||
|
|
||||||
[LibraryClass.IA32.SEC]
|
[LibraryClasses.IA32.SEC]
|
||||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||||
|
|
||||||
[LibraryClass.IA32.UEFI_DRIVER]
|
[LibraryClasses.IA32.UEFI_DRIVER]
|
||||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||||
WinNtLib|$(WORKSPACE)\Nt32Pkg\Library/DxeWinNtLib/DxeWinNtLib.inf
|
WinNtLib|$(WORKSPACE)\Nt32Pkg\Library/DxeWinNtLib/DxeWinNtLib.inf
|
||||||
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
||||||
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
||||||
|
|
||||||
[LibraryClass.IA32.DXE_DRIVER]
|
[LibraryClasses.IA32.DXE_DRIVER]
|
||||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||||
WinNtLib|$(WORKSPACE)\Nt32Pkg\Library/DxeWinNtLib/DxeWinNtLib.inf
|
WinNtLib|$(WORKSPACE)\Nt32Pkg\Library/DxeWinNtLib/DxeWinNtLib.inf
|
||||||
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
||||||
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
||||||
EdkGenericBdsLib|$(WORKSPACE)\Nt32Pkg\Library/EdkGenericBdsLib/EdkGenericBdsLib.inf
|
EdkGenericBdsLib|$(WORKSPACE)\Nt32Pkg\Library/EdkGenericBdsLib/EdkGenericBdsLib.inf
|
||||||
|
|
||||||
[LibraryClass.IA32.UEFI_APPLICATION]
|
[LibraryClasses.IA32.UEFI_APPLICATION]
|
||||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||||
WinNtLib|$(WORKSPACE)\Nt32Pkg\Library/DxeWinNtLib/DxeWinNtLib.inf
|
WinNtLib|$(WORKSPACE)\Nt32Pkg\Library/DxeWinNtLib/DxeWinNtLib.inf
|
||||||
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
||||||
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
||||||
|
|
||||||
[LibraryClass.common.DXE_CORE]
|
[LibraryClasses.common.DXE_CORE]
|
||||||
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||||
DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
||||||
UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf
|
UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf
|
||||||
@ -124,7 +124,7 @@
|
|||||||
ReportStatusCodeLib|$(WORKSPACE)\MdePkg\Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
|
ReportStatusCodeLib|$(WORKSPACE)\MdePkg\Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
|
||||||
TianoDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreTianoDecompressLibFromHob/DxeCoreTianoDecompressLibFromHob.inf
|
TianoDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreTianoDecompressLibFromHob/DxeCoreTianoDecompressLibFromHob.inf
|
||||||
|
|
||||||
[LibraryClass.common]
|
[LibraryClasses.common]
|
||||||
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||||
PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf
|
PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf
|
||||||
UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/BaseUefiTianoDecompressLib/BaseUefiTianoDecompressLib.inf
|
UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/BaseUefiTianoDecompressLib/BaseUefiTianoDecompressLib.inf
|
||||||
@ -140,7 +140,7 @@
|
|||||||
PciIncompatibleDeviceSupportLib|$(WORKSPACE)\MdeModulePkg\Library/EdkPciIncompatibleDeviceSupportLib/EdkPciIncompatibleDeviceSupportLib.inf
|
PciIncompatibleDeviceSupportLib|$(WORKSPACE)\MdeModulePkg\Library/EdkPciIncompatibleDeviceSupportLib/EdkPciIncompatibleDeviceSupportLib.inf
|
||||||
CacheMaintenanceLib|$(WORKSPACE)\MdePkg\Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
|
CacheMaintenanceLib|$(WORKSPACE)\MdePkg\Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
|
||||||
|
|
||||||
[LibraryClass.common.DXE_SAL_DRIVER]
|
[LibraryClasses.common.DXE_SAL_DRIVER]
|
||||||
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||||
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
||||||
HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf
|
HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf
|
||||||
@ -164,7 +164,7 @@
|
|||||||
EdkUsbLib|$(WORKSPACE)\MdeModulePkg\Library/EdkUsbLib/EdkUsbLib.inf
|
EdkUsbLib|$(WORKSPACE)\MdeModulePkg\Library/EdkUsbLib/EdkUsbLib.inf
|
||||||
EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf
|
EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf
|
||||||
|
|
||||||
[LibraryClass.common.DXE_SMM_DRIVER]
|
[LibraryClasses.common.DXE_SMM_DRIVER]
|
||||||
EdkUsbLib|$(WORKSPACE)\MdeModulePkg\Library/EdkUsbLib/EdkUsbLib.inf
|
EdkUsbLib|$(WORKSPACE)\MdeModulePkg\Library/EdkUsbLib/EdkUsbLib.inf
|
||||||
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||||
DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
||||||
@ -186,7 +186,7 @@
|
|||||||
TianoDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreTianoDecompressLibFromHob/DxeCoreTianoDecompressLibFromHob.inf
|
TianoDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreTianoDecompressLibFromHob/DxeCoreTianoDecompressLibFromHob.inf
|
||||||
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
||||||
|
|
||||||
[LibraryClass.common.PEIM]
|
[LibraryClasses.common.PEIM]
|
||||||
HobLib|$(WORKSPACE)\MdePkg\Library/PeiHobLib/PeiHobLib.inf
|
HobLib|$(WORKSPACE)\MdePkg\Library/PeiHobLib/PeiHobLib.inf
|
||||||
PeiServicesTablePointerLib|$(WORKSPACE)\MdePkg\Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
PeiServicesTablePointerLib|$(WORKSPACE)\MdePkg\Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
||||||
PcdLib|$(WORKSPACE)\MdePkg\Library/PeiPcdLib/PeiPcdLib.inf
|
PcdLib|$(WORKSPACE)\MdePkg\Library/PeiPcdLib/PeiPcdLib.inf
|
||||||
@ -198,7 +198,7 @@
|
|||||||
MemoryAllocationLib|$(WORKSPACE)\MdePkg\Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
|
MemoryAllocationLib|$(WORKSPACE)\MdePkg\Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
|
||||||
ReportStatusCodeLib|$(WORKSPACE)\MdePkg\Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
|
ReportStatusCodeLib|$(WORKSPACE)\MdePkg\Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
|
||||||
|
|
||||||
[LibraryClass.common.PEI_CORE]
|
[LibraryClasses.common.PEI_CORE]
|
||||||
HobLib|$(WORKSPACE)\MdePkg\Library/PeiHobLib/PeiHobLib.inf
|
HobLib|$(WORKSPACE)\MdePkg\Library/PeiHobLib/PeiHobLib.inf
|
||||||
PeiServicesTablePointerLib|$(WORKSPACE)\MdePkg\Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
PeiServicesTablePointerLib|$(WORKSPACE)\MdePkg\Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
||||||
PcdLib|$(WORKSPACE)\MdePkg\Library/PeiPcdLib/PeiPcdLib.inf
|
PcdLib|$(WORKSPACE)\MdePkg\Library/PeiPcdLib/PeiPcdLib.inf
|
||||||
@ -209,7 +209,7 @@
|
|||||||
PeiCoreEntryPoint|$(WORKSPACE)\MdePkg\Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
|
PeiCoreEntryPoint|$(WORKSPACE)\MdePkg\Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
|
||||||
ReportStatusCodeLib|$(WORKSPACE)\MdePkg\Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
|
ReportStatusCodeLib|$(WORKSPACE)\MdePkg\Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
|
||||||
|
|
||||||
[LibraryClass.common.DXE_RUNTIME_DRIVER]
|
[LibraryClasses.common.DXE_RUNTIME_DRIVER]
|
||||||
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||||
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
||||||
HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf
|
HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf
|
||||||
@ -234,7 +234,7 @@
|
|||||||
EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf
|
EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf
|
||||||
UefiDriverModelLib|$(WORKSPACE)\MdePkg\Library/UefiDriverModelLib/UefiDriverModelLib.inf
|
UefiDriverModelLib|$(WORKSPACE)\MdePkg\Library/UefiDriverModelLib/UefiDriverModelLib.inf
|
||||||
|
|
||||||
[LibraryClass.common.UEFI_DRIVER]
|
[LibraryClasses.common.UEFI_DRIVER]
|
||||||
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||||
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
||||||
HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf
|
HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf
|
||||||
@ -258,8 +258,8 @@
|
|||||||
EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf
|
EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf
|
||||||
UefiDriverModelLib|$(WORKSPACE)\MdePkg\Library/UefiDriverModelLib/UefiDriverModelLib.inf
|
UefiDriverModelLib|$(WORKSPACE)\MdePkg\Library/UefiDriverModelLib/UefiDriverModelLib.inf
|
||||||
|
|
||||||
[LibraryClass.common.DXE_DRIVER]
|
[LibraryClasses.common.DXE_DRIVER]
|
||||||
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
DebugLib|$(WORKSPACE)\MdePkg\Library/BaseDebugLibNull/BaseDebugLibNull.inf
|
||||||
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
||||||
HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf
|
HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf
|
||||||
EdkIfrSupportLib|$(WORKSPACE)\MdeModulePkg\Library/EdkIfrSupportLib/EdkIfrSupportLib.inf
|
EdkIfrSupportLib|$(WORKSPACE)\MdeModulePkg\Library/EdkIfrSupportLib/EdkIfrSupportLib.inf
|
||||||
@ -270,19 +270,19 @@
|
|||||||
UefiDriverEntryPoint|$(WORKSPACE)\MdePkg\Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
|
UefiDriverEntryPoint|$(WORKSPACE)\MdePkg\Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
|
||||||
EdkGraphicsLib|$(WORKSPACE)\MdeModulePkg\Library/EdkGraphicsLib/EdkGraphicsLib.inf
|
EdkGraphicsLib|$(WORKSPACE)\MdeModulePkg\Library/EdkGraphicsLib/EdkGraphicsLib.inf
|
||||||
ReportStatusCodeLib|$(WORKSPACE)\MdePkg\Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
|
ReportStatusCodeLib|$(WORKSPACE)\MdePkg\Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
|
||||||
PrintLib|$(WORKSPACE)\MdeModulePkg\Library/EdkDxePrintLib/EdkDxePrintLib.inf
|
PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf
|
||||||
DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
||||||
UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf
|
UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf
|
||||||
HiiLib|$(WORKSPACE)\MdePkg\Library/HiiLib/HiiLib.inf
|
HiiLib|$(WORKSPACE)\MdePkg\Library/HiiLib/HiiLib.inf
|
||||||
UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
|
UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
|
||||||
DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
||||||
BaseMemoryLib|$(WORKSPACE)\MdePkg\Library/DxeMemoryLib/DxeMemoryLib.inf
|
BaseMemoryLib|$(WORKSPACE)\MdePkg\Library/BaseMemoryLib/BaseMemoryLib.inf
|
||||||
TianoDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreTianoDecompressLibFromHob/DxeCoreTianoDecompressLibFromHob.inf
|
TianoDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreTianoDecompressLibFromHob/DxeCoreTianoDecompressLibFromHob.inf
|
||||||
EdkUsbLib|$(WORKSPACE)\MdeModulePkg\Library/EdkUsbLib/EdkUsbLib.inf
|
EdkUsbLib|$(WORKSPACE)\MdeModulePkg\Library/EdkUsbLib/EdkUsbLib.inf
|
||||||
EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf
|
EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf
|
||||||
UefiDriverModelLib|$(WORKSPACE)\MdePkg\Library/UefiDriverModelLib/UefiDriverModelLib.inf
|
UefiDriverModelLib|$(WORKSPACE)\MdePkg\Library/UefiDriverModelLib/UefiDriverModelLib.inf
|
||||||
|
|
||||||
[LibraryClass.common.UEFI_APPLICATION]
|
[LibraryClasses.common.UEFI_APPLICATION]
|
||||||
EdkUsbLib|$(WORKSPACE)\MdeModulePkg\Library/EdkUsbLib/EdkUsbLib.inf
|
EdkUsbLib|$(WORKSPACE)\MdeModulePkg\Library/EdkUsbLib/EdkUsbLib.inf
|
||||||
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||||
DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
||||||
@ -311,11 +311,11 @@
|
|||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
[PcdPatchableInModule.IA32]
|
[PcdsPatchableInModule.IA32]
|
||||||
PcdStatusCodeMemorySize|gEfiMdeModulePkgTokenSpaceGuid|1
|
PcdStatusCodeMemorySize|gEfiMdeModulePkgTokenSpaceGuid|1
|
||||||
PcdStatusCodeRuntimeMemorySize|gEfiMdeModulePkgTokenSpaceGuid|128
|
PcdStatusCodeRuntimeMemorySize|gEfiMdeModulePkgTokenSpaceGuid|128
|
||||||
|
|
||||||
[PcdFixedAtBuild.IA32]
|
[PcdsFixedAtBuild.IA32]
|
||||||
PcdWinNtMemorySizeForSecMain|gEfiNt32PkgTokenSpaceGuid|L"64!64"|VOID*|10
|
PcdWinNtMemorySizeForSecMain|gEfiNt32PkgTokenSpaceGuid|L"64!64"|VOID*|10
|
||||||
PcdWinNtFirmwareVolume|gEfiNt32PkgTokenSpaceGuid|L"..\\Fv\\Fv_Recovery.fd"|VOID*|52
|
PcdWinNtFirmwareVolume|gEfiNt32PkgTokenSpaceGuid|L"..\\Fv\\Fv_Recovery.fd"|VOID*|52
|
||||||
PcdWinNtBootMode|gEfiNt32PkgTokenSpaceGuid|1
|
PcdWinNtBootMode|gEfiNt32PkgTokenSpaceGuid|1
|
||||||
@ -323,7 +323,6 @@
|
|||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
||||||
@ -334,637 +333,9 @@
|
|||||||
PcdPerformanceLibraryPropertyMask|gEfiMdePkgTokenSpaceGuid|0
|
PcdPerformanceLibraryPropertyMask|gEfiMdePkgTokenSpaceGuid|0
|
||||||
PcdMaxPeiPcdCallBackNumberPerPcdEntry|gEfiMdeModulePkgTokenSpaceGuid|0x08
|
PcdMaxPeiPcdCallBackNumberPerPcdEntry|gEfiMdeModulePkgTokenSpaceGuid|0x08
|
||||||
PcdVpdBaseAddress|gEfiMdeModulePkgTokenSpaceGuid|0x0
|
PcdVpdBaseAddress|gEfiMdeModulePkgTokenSpaceGuid|0x0
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdFSBClock|gEfiMdePkgTokenSpaceGuid|200000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdPerformanceLibraryPropertyMask|gEfiMdePkgTokenSpaceGuid|0
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdVpdBaseAddress|gEfiMdeModulePkgTokenSpaceGuid|0x0
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdPerformanceLibraryPropertyMask|gEfiMdePkgTokenSpaceGuid|0
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaxSizePopulateCapsule|gEfiMdeModulePkgTokenSpaceGuid|0x0
|
|
||||||
PcdMaxSizeNonPopulateCapsule|gEfiMdeModulePkgTokenSpaceGuid|0x0
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdPciIncompatibleDeviceSupportMask|gEfiMdeModulePkgTokenSpaceGuid|0x0
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdPerformanceLibraryPropertyMask|gEfiMdePkgTokenSpaceGuid|0
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdReportStatusCodePropertyMask|gEfiMdePkgTokenSpaceGuid|0x06
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1F
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
|
||||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
|
||||||
PcdDebugPropertyMask|gEfiMdePkgTokenSpaceGuid|0x1f
|
|
||||||
PcdDebugClearMemoryValue|gEfiMdePkgTokenSpaceGuid|0xAF
|
|
||||||
PcdDebugPrintErrorLevel|gEfiMdePkgTokenSpaceGuid|0x80000000
|
|
||||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
|
||||||
|
|
||||||
[PcdFeatureFlag.IA32]
|
|
||||||
|
[PcdsFeatureFlag.IA32]
|
||||||
PcdPeiPcdDatabaseTraverseEnabled|gEfiMdeModulePkgTokenSpaceGuid|TRUE
|
PcdPeiPcdDatabaseTraverseEnabled|gEfiMdeModulePkgTokenSpaceGuid|TRUE
|
||||||
PcdPeiPcdDatabaseCallbackOnSetEnabled|gEfiMdeModulePkgTokenSpaceGuid|TRUE
|
PcdPeiPcdDatabaseCallbackOnSetEnabled|gEfiMdeModulePkgTokenSpaceGuid|TRUE
|
||||||
PcdPeiPcdDatabaseExEnabled|gEfiMdeModulePkgTokenSpaceGuid|TRUE
|
PcdPeiPcdDatabaseExEnabled|gEfiMdeModulePkgTokenSpaceGuid|TRUE
|
||||||
@ -992,74 +363,12 @@
|
|||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
||||||
PcdNtEmulatorEnable|gEfiMdeModulePkgTokenSpaceGuid|FALSE
|
PcdNtEmulatorEnable|gEfiMdeModulePkgTokenSpaceGuid|FALSE
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDevicePathSupportDevicePathToText|gEfiMdeModulePkgTokenSpaceGuid|TRUE
|
PcdDevicePathSupportDevicePathToText|gEfiMdeModulePkgTokenSpaceGuid|TRUE
|
||||||
PcdDevicePathSupportDevicePathFromText|gEfiMdeModulePkgTokenSpaceGuid|TRUE
|
PcdDevicePathSupportDevicePathFromText|gEfiMdeModulePkgTokenSpaceGuid|TRUE
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdPciIsaEnable|gEfiGenericPlatformTokenSpaceGuid|FALSE
|
|
||||||
PcdPciVgaEnable|gEfiGenericPlatformTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdPciBusHotplugDeviceSupport|gEfiGenericPlatformTokenSpaceGuid|TRUE
|
PcdPciBusHotplugDeviceSupport|gEfiGenericPlatformTokenSpaceGuid|TRUE
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
PcdComponentName2Disable|gEfiMdePkgTokenSpaceGuid|TRUE
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
PcdDriverDiagnostics2Disable|gEfiMdePkgTokenSpaceGuid|TRUE
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
@ -1067,7 +376,7 @@
|
|||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
[PcdDynamic.DEFAULT]
|
[PcdsDynamic.DEFAULT]
|
||||||
PcdFlashNvStorageFtwSpareBase|gEfiGenericPlatformTokenSpaceGuid|0x0
|
PcdFlashNvStorageFtwSpareBase|gEfiGenericPlatformTokenSpaceGuid|0x0
|
||||||
PcdFlashNvStorageVariableSize|gEfiGenericPlatformTokenSpaceGuid|0x0
|
PcdFlashNvStorageVariableSize|gEfiGenericPlatformTokenSpaceGuid|0x0
|
||||||
PcdWinNtCpuSpeed|gEfiNt32PkgTokenSpaceGuid|L"3000"|8
|
PcdWinNtCpuSpeed|gEfiNt32PkgTokenSpaceGuid|L"3000"|8
|
||||||
@ -1092,3 +401,4 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
[Components.IA32]
|
[Components.IA32]
|
||||||
|
$(WORKSPACE)\Nt32Pkg\WinNtThunkDxe\WinNtThunk.inf
|
@ -73,7 +73,7 @@
|
|||||||
gEfiWinNtFileSystemGuid = { 0x0C95A935, 0xA006, 0x11D4, { 0xBC, 0xFA, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
|
gEfiWinNtFileSystemGuid = { 0x0C95A935, 0xA006, 0x11D4, { 0xBC, 0xFA, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
|
||||||
gEfiWinNtPhysicalDisksGuid = { 0x0C95A92F, 0xA006, 0x11D4, { 0xBC, 0xFA, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
|
gEfiWinNtPhysicalDisksGuid = { 0x0C95A92F, 0xA006, 0x11D4, { 0xBC, 0xFA, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
|
||||||
gEfiWinNtVirtualDisksGuid = { 0x0C95A928, 0xA006, 0x11D4, { 0xBC, 0xFA, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
|
gEfiWinNtVirtualDisksGuid = { 0x0C95A928, 0xA006, 0x11D4, { 0xBC, 0xFA, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
|
||||||
gEfiEdkNt32PkgTokenSpaceGuid = { 0x0D79A645, 0x1D91, 0x40a6, { 0xA8, 0x1F, 0x61, 0xE6, 0x98, 0x2B, 0x32, 0xB4 }}
|
gEfiNt32PkgTokenSpaceGuid = { 0x0D79A645, 0x1D91, 0x40a6, { 0xA8, 0x1F, 0x61, 0xE6, 0x98, 0x2B, 0x32, 0xB4 }}
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -97,23 +97,23 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
[PcdFixedAtBuild.common]
|
[PcdFixedAtBuild.common]
|
||||||
PcdWinNtBootMode|0x00001006|gEfiEdkNt32PkgTokenSpaceGuid|UINT32|1
|
PcdWinNtBootMode|0x00001006|gEfiNt32PkgTokenSpaceGuid|UINT32|1
|
||||||
PcdWinNtFirmwareVolume|0x00001009|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"..\\Fv\\Fv_Recovery.fd"
|
PcdWinNtFirmwareVolume|0x00001009|gEfiNt32PkgTokenSpaceGuid|VOID*|L"..\\Fv\\Fv_Recovery.fd"
|
||||||
PcdWinNtMemorySizeForSecMain|0x0000100c|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"64!64"
|
PcdWinNtMemorySizeForSecMain|0x0000100c|gEfiNt32PkgTokenSpaceGuid|VOID*|L"64!64"
|
||||||
|
|
||||||
[PcdDynamic.common]
|
[PcdDynamic.common]
|
||||||
PcdWinNtPhysicalDisk|0x00001000|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"E:RW;245760;512"
|
PcdWinNtPhysicalDisk|0x00001000|gEfiNt32PkgTokenSpaceGuid|VOID*|L"E:RW;245760;512"
|
||||||
PcdWinNtVirtualDisk|0x00001001|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"FW;40960;512"
|
PcdWinNtVirtualDisk|0x00001001|gEfiNt32PkgTokenSpaceGuid|VOID*|L"FW;40960;512"
|
||||||
PcdWinNtSerialPort|0x00001002|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"COM1!COM2"
|
PcdWinNtSerialPort|0x00001002|gEfiNt32PkgTokenSpaceGuid|VOID*|L"COM1!COM2"
|
||||||
PcdWinNtUga|0x00001003|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"UGA Window 1!UGA Window 2"
|
PcdWinNtUga|0x00001003|gEfiNt32PkgTokenSpaceGuid|VOID*|L"UGA Window 1!UGA Window 2"
|
||||||
PcdWinNtFileSystem|0x00001004|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L".!..\\..\\..\\..\\EdkShellBinPkg\\bin\\ia32\\Apps"
|
PcdWinNtFileSystem|0x00001004|gEfiNt32PkgTokenSpaceGuid|VOID*|L".!..\\..\\..\\..\\EdkShellBinPkg\\bin\\ia32\\Apps"
|
||||||
PcdWinNtMemorySize|0x00001005|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"64!64"
|
PcdWinNtMemorySize|0x00001005|gEfiNt32PkgTokenSpaceGuid|VOID*|L"64!64"
|
||||||
PcdWinNtCpuModel|0x00001007|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"Intel(R) Processor Model"
|
PcdWinNtCpuModel|0x00001007|gEfiNt32PkgTokenSpaceGuid|VOID*|L"Intel(R) Processor Model"
|
||||||
PcdWinNtCpuSpeed|0x00001008|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"3000"
|
PcdWinNtCpuSpeed|0x00001008|gEfiNt32PkgTokenSpaceGuid|VOID*|L"3000"
|
||||||
PcdWinNtConsole|0x0000100a|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"Bus Driver Console Window"
|
PcdWinNtConsole|0x0000100a|gEfiNt32PkgTokenSpaceGuid|VOID*|L"Bus Driver Console Window"
|
||||||
PcdWinNtGop|0x0000100d|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"UGA Window 1!UGA Window 2"
|
PcdWinNtGop|0x0000100d|gEfiNt32PkgTokenSpaceGuid|VOID*|L"UGA Window 1!UGA Window 2"
|
||||||
|
|
||||||
[PcdPatchableInModule.common]
|
[PcdPatchableInModule.common]
|
||||||
PcdWinNtBootMode|0x00001006|gEfiEdkNt32PkgTokenSpaceGuid|UINT32|1
|
PcdWinNtBootMode|0x00001006|gEfiNt32PkgTokenSpaceGuid|UINT32|1
|
||||||
PcdWinNtFirmwareVolume|0x00001009|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"..\\Fv\\Fv_Recovery.fd"
|
PcdWinNtFirmwareVolume|0x00001009|gEfiNt32PkgTokenSpaceGuid|VOID*|L"..\\Fv\\Fv_Recovery.fd"
|
||||||
PcdWinNtMemorySizeForSecMain|0x0000100c|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"64!64"
|
PcdWinNtMemorySizeForSecMain|0x0000100c|gEfiNt32PkgTokenSpaceGuid|VOID*|L"64!64"
|
37
Nt32Pkg/WinNtThunkDxe/CommonHeader.h
Normal file
37
Nt32Pkg/WinNtThunkDxe/CommonHeader.h
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
/**@file
|
||||||
|
Common header file shared by all source files.
|
||||||
|
|
||||||
|
This file includes package header files, library classes and protocol, PPI & GUID definitions.
|
||||||
|
|
||||||
|
Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef __COMMON_HEADER_H_
|
||||||
|
#define __COMMON_HEADER_H_
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// The package level header files this module uses
|
||||||
|
//
|
||||||
|
#include <PiDxe.h>
|
||||||
|
#include <WinNtDxe.h>
|
||||||
|
//
|
||||||
|
// The protocols, PPI and GUID defintions for this module
|
||||||
|
//
|
||||||
|
#include <Protocol/WinNtThunk.h>
|
||||||
|
#include <Protocol/DevicePath.h>
|
||||||
|
//
|
||||||
|
// The Library classes this module consumes
|
||||||
|
//
|
||||||
|
#include <Library/DebugLib.h>
|
||||||
|
#include <Library/UefiDriverEntryPoint.h>
|
||||||
|
#include <Library/WinNtLib.h>
|
||||||
|
#include <Library/UefiBootServicesTableLib.h>
|
||||||
|
|
||||||
|
#endif
|
92
Nt32Pkg/WinNtThunkDxe/WinNtThunk.c
Normal file
92
Nt32Pkg/WinNtThunkDxe/WinNtThunk.c
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) 2006, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
WinNtThunk.c
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
Produce WinNtThunk protocol and it's associated device path and controller
|
||||||
|
state protocols. WinNtThunk is to the NT emulation environment as
|
||||||
|
PCI_ROOT_BRIGE is to real hardware. The WinNtBusDriver is the child of this
|
||||||
|
driver.
|
||||||
|
|
||||||
|
Since we are a root hardware abstraction we do not install a Driver Binding
|
||||||
|
protocol on this handle. This driver can only support one one WinNtThunk protocol
|
||||||
|
in the system, since the device path is hard coded.
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// Include common header file for this module.
|
||||||
|
//
|
||||||
|
#include "CommonHeader.h"
|
||||||
|
|
||||||
|
#include "WinNtThunk.h"
|
||||||
|
|
||||||
|
//
|
||||||
|
// WinNtThunk Device Path Protocol Instance
|
||||||
|
//
|
||||||
|
static WIN_NT_THUNK_DEVICE_PATH mWinNtThunkDevicePath = {
|
||||||
|
{
|
||||||
|
HARDWARE_DEVICE_PATH,
|
||||||
|
HW_VENDOR_DP,
|
||||||
|
(UINT8) (sizeof (VENDOR_DEVICE_PATH)),
|
||||||
|
(UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),
|
||||||
|
EFI_WIN_NT_THUNK_PROTOCOL_GUID,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
END_DEVICE_PATH_TYPE,
|
||||||
|
END_ENTIRE_DEVICE_PATH_SUBTYPE,
|
||||||
|
END_DEVICE_PATH_LENGTH,
|
||||||
|
0
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
InitializeWinNtThunk (
|
||||||
|
IN EFI_HANDLE ImageHandle,
|
||||||
|
IN EFI_SYSTEM_TABLE *SystemTable
|
||||||
|
)
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Routine Description:
|
||||||
|
Install WinNtThunk Protocol and it's associated Device Path protocol
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
(Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
EFI_SUCEESS - WinNtThunk protocol is added or error status from
|
||||||
|
gBS->InstallMultiProtocolInterfaces().
|
||||||
|
|
||||||
|
--*/
|
||||||
|
// TODO: ImageHandle - add argument and description to function comment
|
||||||
|
// TODO: SystemTable - add argument and description to function comment
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
EFI_HANDLE ControllerHandle;
|
||||||
|
|
||||||
|
ControllerHandle = NULL;
|
||||||
|
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||||
|
&ControllerHandle,
|
||||||
|
&gEfiWinNtThunkProtocolGuid,
|
||||||
|
gWinNt,
|
||||||
|
&gEfiDevicePathProtocolGuid,
|
||||||
|
&mWinNtThunkDevicePath,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
return Status;
|
||||||
|
}
|
31
Nt32Pkg/WinNtThunkDxe/WinNtThunk.dxs
Normal file
31
Nt32Pkg/WinNtThunkDxe/WinNtThunk.dxs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) 2006, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
WinNtThunk.dxs
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
Dependency expression source file.
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// Include common header file for this module.
|
||||||
|
//
|
||||||
|
#include "CommonHeader.h"
|
||||||
|
|
||||||
|
#include <DxeDepex.h>
|
||||||
|
|
||||||
|
DEPENDENCY_START
|
||||||
|
TRUE
|
||||||
|
DEPENDENCY_END
|
38
Nt32Pkg/WinNtThunkDxe/WinNtThunk.h
Normal file
38
Nt32Pkg/WinNtThunkDxe/WinNtThunk.h
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) 2006, Intel Corporation
|
||||||
|
All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
WinNtThunk.h
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// Include common header file for this module.
|
||||||
|
//
|
||||||
|
#include "CommonHeader.h"
|
||||||
|
#ifndef _WIN_NT_THUNK_H_
|
||||||
|
#define _WIN_NT_THUNK_H_
|
||||||
|
|
||||||
|
// TODO: add protective #ifndef
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// WinNtThunk Device Path Protocol Instance Type
|
||||||
|
//
|
||||||
|
typedef struct {
|
||||||
|
VENDOR_DEVICE_PATH Vendor;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
|
||||||
|
} WIN_NT_THUNK_DEVICE_PATH;
|
||||||
|
|
||||||
|
#endif
|
98
Nt32Pkg/WinNtThunkDxe/WinNtThunk.inf
Normal file
98
Nt32Pkg/WinNtThunkDxe/WinNtThunk.inf
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
#/** @file
|
||||||
|
# A DXE driver to produce EFI_WIN_NT_THUNK_PROTOCOL
|
||||||
|
#
|
||||||
|
# EFI_WIN_NT_THUNK_PROTOCOL is a table of pointers to various Windows APIs used by various drivers to accomplish certain task in an NT32 emulator.
|
||||||
|
# Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
|
#
|
||||||
|
# All rights reserved. This program and the accompanying materials
|
||||||
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
|
# http://opensource.org/licenses/bsd-license.php
|
||||||
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#**/
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Defines Section - statements that will be processed to create a Makefile.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 0x00010005
|
||||||
|
BASE_NAME = WinNtThunk
|
||||||
|
FILE_GUID = 0C95A916-A006-11d4-BCFA-0080C73C8881
|
||||||
|
MODULE_TYPE = DXE_DRIVER
|
||||||
|
VERSION_STRING = 1.0
|
||||||
|
EDK_RELEASE_VERSION = 0x00020000
|
||||||
|
EFI_SPECIFICATION_VERSION = 0x00020000
|
||||||
|
|
||||||
|
ENTRY_POINT = InitializeWinNtThunk
|
||||||
|
|
||||||
|
#
|
||||||
|
# The following information is for reference only and not required by the build tools.
|
||||||
|
#
|
||||||
|
# VALID_ARCHITECTURES = IA32
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Sources Section - list of files that are required for the build to succeed.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Sources.common]
|
||||||
|
WinNtThunk.dxs
|
||||||
|
WinNtThunk.c
|
||||||
|
WinNtThunk.h
|
||||||
|
CommonHeader.h
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Includes Section - list of Include locations that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Includes]
|
||||||
|
$(WORKSPACE)/MdePkg/Include/Library
|
||||||
|
$(WORKSPACE)/Nt32Pkg/Include/Library
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Package Dependency Section - list of Package files that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
Nt32Pkg/Nt32Pkg.dec
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Library Class Section - list of Library Classes that are required for
|
||||||
|
# this module.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[LibraryClasses]
|
||||||
|
UefiBootServicesTableLib
|
||||||
|
WinNtLib
|
||||||
|
UefiDriverEntryPoint
|
||||||
|
DebugLib
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Protocol C Name Section - list of Protocol and Protocol Notify C Names
|
||||||
|
# that this module uses or produces.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[Protocols]
|
||||||
|
gEfiDevicePathProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
||||||
|
gEfiWinNtThunkProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
||||||
|
|
62
Nt32Pkg/WinNtThunkDxe/WinNtThunk.msa
Normal file
62
Nt32Pkg/WinNtThunkDxe/WinNtThunk.msa
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<MsaHeader>
|
||||||
|
<ModuleName>WinNtThunk</ModuleName>
|
||||||
|
<ModuleType>DXE_DRIVER</ModuleType>
|
||||||
|
<GuidValue>0C95A916-A006-11d4-BCFA-0080C73C8881</GuidValue>
|
||||||
|
<Version>1.0</Version>
|
||||||
|
<Abstract>A DXE driver to produce EFI_WIN_NT_THUNK_PROTOCOL</Abstract>
|
||||||
|
<Description>EFI_WIN_NT_THUNK_PROTOCOL is a table of pointers to various Windows APIs used by various drivers to accomplish certain task in an NT32 emulator.</Description>
|
||||||
|
<Copyright>Copyright (c) 2006 - 2007, Intel Corporation</Copyright>
|
||||||
|
<License>All rights reserved. This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>
|
||||||
|
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
|
||||||
|
</MsaHeader>
|
||||||
|
<ModuleDefinitions>
|
||||||
|
<SupportedArchitectures>IA32</SupportedArchitectures>
|
||||||
|
<BinaryModule>false</BinaryModule>
|
||||||
|
<OutputFileBasename>WinNtThunk</OutputFileBasename>
|
||||||
|
</ModuleDefinitions>
|
||||||
|
<LibraryClassDefinitions>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>DebugLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>UefiDriverEntryPoint</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>WinNtLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
<LibraryClass Usage="ALWAYS_CONSUMED">
|
||||||
|
<Keyword>UefiBootServicesTableLib</Keyword>
|
||||||
|
</LibraryClass>
|
||||||
|
</LibraryClassDefinitions>
|
||||||
|
<SourceFiles>
|
||||||
|
<Filename>WinNtThunk.h</Filename>
|
||||||
|
<Filename>WinNtThunk.c</Filename>
|
||||||
|
<Filename>WinNtThunk.dxs</Filename>
|
||||||
|
</SourceFiles>
|
||||||
|
<PackageDependencies>
|
||||||
|
<Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
|
||||||
|
<Package PackageGuid="0fb2aa2d-10d5-40a5-a9dc-060c12a4a3f3"/>
|
||||||
|
</PackageDependencies>
|
||||||
|
<Protocols>
|
||||||
|
<Protocol Usage="ALWAYS_PRODUCED">
|
||||||
|
<ProtocolCName>gEfiWinNtThunkProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
<Protocol Usage="ALWAYS_PRODUCED">
|
||||||
|
<ProtocolCName>gEfiDevicePathProtocolGuid</ProtocolCName>
|
||||||
|
</Protocol>
|
||||||
|
</Protocols>
|
||||||
|
<Externs>
|
||||||
|
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
||||||
|
<Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
|
||||||
|
<Extern>
|
||||||
|
<ModuleEntryPoint>InitializeWinNtThunk</ModuleEntryPoint>
|
||||||
|
</Extern>
|
||||||
|
</Externs>
|
||||||
|
</ModuleSurfaceArea>
|
Loading…
x
Reference in New Issue
Block a user