mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-08 17:05:09 +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__
|
||||
#define __WIN_NT_LIB_H__
|
||||
|
||||
#include <WinNtThunk.h>
|
||||
extern EFI_WIN_NT_THUNK_PROTOCOL *gWinNt;
|
||||
|
||||
#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]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
||||
[LibraryClasses.IA32.DXE_CORE]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||
EdkPeCoffLoaderLib|$(WORKSPACE)\Nt32Pkg\Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoaderLib.inf
|
||||
|
||||
[LibraryClass.IA32]
|
||||
[LibraryClasses.IA32]
|
||||
IoLib|$(WORKSPACE)\MdePkg\Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
|
||||
|
||||
[LibraryClass.IA32.DXE_SAL_DRIVER]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
||||
[LibraryClasses.IA32.DXE_SAL_DRIVER]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.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
|
||||
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
||||
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
||||
|
||||
[LibraryClass.IA32.PEIM]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
||||
[LibraryClasses.IA32.PEIM]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||
EdkPeCoffLoaderLib|$(WORKSPACE)\Nt32Pkg\Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoaderLib.inf
|
||||
PeiServicesTablePointerLib|$(WORKSPACE)\MdePkg\Library/PeiServicesTablePointerLibMm7/PeiServicesTablePointerLibMm7.inf
|
||||
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/PeiNt32OemHookStatusCodeLib/PeiNt32OemHookStatusCodeLib.inf
|
||||
PeCoffGetEntryPointLib|$(WORKSPACE)\Nt32Pkg\Library/EdkNt32PeiPeCoffGetEntryPointLib/EdkNt32PeiPeCoffGetEntryPointLib.inf
|
||||
|
||||
[LibraryClass.IA32.PEI_CORE]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
||||
[LibraryClasses.IA32.PEI_CORE]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||
PeiServicesTablePointerLib|$(WORKSPACE)\MdePkg\Library/PeiServicesTablePointerLibMm7/PeiServicesTablePointerLibMm7.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
|
||||
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
||||
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
||||
|
||||
[LibraryClass.IA32.BASE]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
||||
[LibraryClasses.IA32.BASE]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||
|
||||
[LibraryClass.IA32.SEC]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
||||
[LibraryClasses.IA32.SEC]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||
|
||||
[LibraryClass.IA32.UEFI_DRIVER]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
||||
[LibraryClasses.IA32.UEFI_DRIVER]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||
WinNtLib|$(WORKSPACE)\Nt32Pkg\Library/DxeWinNtLib/DxeWinNtLib.inf
|
||||
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
||||
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
||||
|
||||
[LibraryClass.IA32.DXE_DRIVER]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
||||
[LibraryClasses.IA32.DXE_DRIVER]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||
WinNtLib|$(WORKSPACE)\Nt32Pkg\Library/DxeWinNtLib/DxeWinNtLib.inf
|
||||
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
||||
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
||||
EdkGenericBdsLib|$(WORKSPACE)\Nt32Pkg\Library/EdkGenericBdsLib/EdkGenericBdsLib.inf
|
||||
|
||||
[LibraryClass.IA32.UEFI_APPLICATION]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.inf
|
||||
[LibraryClasses.IA32.UEFI_APPLICATION]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||
WinNtLib|$(WORKSPACE)\Nt32Pkg\Library/DxeWinNtLib/DxeWinNtLib.inf
|
||||
EdkFvbServiceLib|$(WORKSPACE)\MdeModulePkg\Library/EdkFvbServiceLib/EdkFvbServiceLib.inf
|
||||
OemHookStatusCodeLib|$(WORKSPACE)\Nt32Pkg\Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
|
||||
|
||||
[LibraryClass.common.DXE_CORE]
|
||||
[LibraryClasses.common.DXE_CORE]
|
||||
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||
DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
||||
UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf
|
||||
@ -124,7 +124,7 @@
|
||||
ReportStatusCodeLib|$(WORKSPACE)\MdePkg\Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
|
||||
TianoDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreTianoDecompressLibFromHob/DxeCoreTianoDecompressLibFromHob.inf
|
||||
|
||||
[LibraryClass.common]
|
||||
[LibraryClasses.common]
|
||||
TimerLib|$(WORKSPACE)\MdePkg\Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||
PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf
|
||||
UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/BaseUefiTianoDecompressLib/BaseUefiTianoDecompressLib.inf
|
||||
@ -140,7 +140,7 @@
|
||||
PciIncompatibleDeviceSupportLib|$(WORKSPACE)\MdeModulePkg\Library/EdkPciIncompatibleDeviceSupportLib/EdkPciIncompatibleDeviceSupportLib.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
|
||||
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
||||
HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf
|
||||
@ -164,7 +164,7 @@
|
||||
EdkUsbLib|$(WORKSPACE)\MdeModulePkg\Library/EdkUsbLib/EdkUsbLib.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
|
||||
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||
DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
||||
@ -186,7 +186,7 @@
|
||||
TianoDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreTianoDecompressLibFromHob/DxeCoreTianoDecompressLibFromHob.inf
|
||||
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
||||
|
||||
[LibraryClass.common.PEIM]
|
||||
[LibraryClasses.common.PEIM]
|
||||
HobLib|$(WORKSPACE)\MdePkg\Library/PeiHobLib/PeiHobLib.inf
|
||||
PeiServicesTablePointerLib|$(WORKSPACE)\MdePkg\Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
||||
PcdLib|$(WORKSPACE)\MdePkg\Library/PeiPcdLib/PeiPcdLib.inf
|
||||
@ -198,7 +198,7 @@
|
||||
MemoryAllocationLib|$(WORKSPACE)\MdePkg\Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
|
||||
ReportStatusCodeLib|$(WORKSPACE)\MdePkg\Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
|
||||
|
||||
[LibraryClass.common.PEI_CORE]
|
||||
[LibraryClasses.common.PEI_CORE]
|
||||
HobLib|$(WORKSPACE)\MdePkg\Library/PeiHobLib/PeiHobLib.inf
|
||||
PeiServicesTablePointerLib|$(WORKSPACE)\MdePkg\Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
||||
PcdLib|$(WORKSPACE)\MdePkg\Library/PeiPcdLib/PeiPcdLib.inf
|
||||
@ -209,7 +209,7 @@
|
||||
PeiCoreEntryPoint|$(WORKSPACE)\MdePkg\Library/PeiCoreEntryPoint/PeiCoreEntryPoint.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
|
||||
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
||||
HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf
|
||||
@ -234,7 +234,7 @@
|
||||
EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf
|
||||
UefiDriverModelLib|$(WORKSPACE)\MdePkg\Library/UefiDriverModelLib/UefiDriverModelLib.inf
|
||||
|
||||
[LibraryClass.common.UEFI_DRIVER]
|
||||
[LibraryClasses.common.UEFI_DRIVER]
|
||||
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
||||
HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf
|
||||
@ -258,8 +258,8 @@
|
||||
EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf
|
||||
UefiDriverModelLib|$(WORKSPACE)\MdePkg\Library/UefiDriverModelLib/UefiDriverModelLib.inf
|
||||
|
||||
[LibraryClass.common.DXE_DRIVER]
|
||||
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||
[LibraryClasses.common.DXE_DRIVER]
|
||||
DebugLib|$(WORKSPACE)\MdePkg\Library/BaseDebugLibNull/BaseDebugLibNull.inf
|
||||
UefiRuntimeServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
||||
HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf
|
||||
EdkIfrSupportLib|$(WORKSPACE)\MdeModulePkg\Library/EdkIfrSupportLib/EdkIfrSupportLib.inf
|
||||
@ -270,19 +270,19 @@
|
||||
UefiDriverEntryPoint|$(WORKSPACE)\MdePkg\Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
|
||||
EdkGraphicsLib|$(WORKSPACE)\MdeModulePkg\Library/EdkGraphicsLib/EdkGraphicsLib.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
|
||||
UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf
|
||||
HiiLib|$(WORKSPACE)\MdePkg\Library/HiiLib/HiiLib.inf
|
||||
UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.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
|
||||
EdkUsbLib|$(WORKSPACE)\MdeModulePkg\Library/EdkUsbLib/EdkUsbLib.inf
|
||||
EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf
|
||||
UefiDriverModelLib|$(WORKSPACE)\MdePkg\Library/UefiDriverModelLib/UefiDriverModelLib.inf
|
||||
|
||||
[LibraryClass.common.UEFI_APPLICATION]
|
||||
[LibraryClasses.common.UEFI_APPLICATION]
|
||||
EdkUsbLib|$(WORKSPACE)\MdeModulePkg\Library/EdkUsbLib/EdkUsbLib.inf
|
||||
DebugLib|$(WORKSPACE)\MdePkg\Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||
DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
||||
@ -311,11 +311,11 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
[PcdPatchableInModule.IA32]
|
||||
[PcdsPatchableInModule.IA32]
|
||||
PcdStatusCodeMemorySize|gEfiMdeModulePkgTokenSpaceGuid|1
|
||||
PcdStatusCodeRuntimeMemorySize|gEfiMdeModulePkgTokenSpaceGuid|128
|
||||
|
||||
[PcdFixedAtBuild.IA32]
|
||||
[PcdsFixedAtBuild.IA32]
|
||||
PcdWinNtMemorySizeForSecMain|gEfiNt32PkgTokenSpaceGuid|L"64!64"|VOID*|10
|
||||
PcdWinNtFirmwareVolume|gEfiNt32PkgTokenSpaceGuid|L"..\\Fv\\Fv_Recovery.fd"|VOID*|52
|
||||
PcdWinNtBootMode|gEfiNt32PkgTokenSpaceGuid|1
|
||||
@ -323,7 +323,6 @@
|
||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
||||
PcdMaximumUnicodeStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
||||
PcdMaximumAsciiStringLength|gEfiMdePkgTokenSpaceGuid|1000000
|
||||
PcdMaximumLinkedListLength|gEfiMdePkgTokenSpaceGuid|1000000
|
||||
PcdSpinLockTimeout|gEfiMdePkgTokenSpaceGuid|10000000
|
||||
@ -334,637 +333,9 @@
|
||||
PcdPerformanceLibraryPropertyMask|gEfiMdePkgTokenSpaceGuid|0
|
||||
PcdMaxPeiPcdCallBackNumberPerPcdEntry|gEfiMdeModulePkgTokenSpaceGuid|0x08
|
||||
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
|
||||
PcdPeiPcdDatabaseCallbackOnSetEnabled|gEfiMdeModulePkgTokenSpaceGuid|TRUE
|
||||
PcdPeiPcdDatabaseExEnabled|gEfiMdeModulePkgTokenSpaceGuid|TRUE
|
||||
@ -992,74 +363,12 @@
|
||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|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
|
||||
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
|
||||
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
|
||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
||||
PcdComponentNameDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
||||
PcdDriverDiagnosticsDisable|gEfiMdePkgTokenSpaceGuid|FALSE
|
||||
|
||||
PcdComponentName2Disable|gEfiMdePkgTokenSpaceGuid|TRUE
|
||||
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
|
||||
PcdDriverDiagnostics2Disable|gEfiMdePkgTokenSpaceGuid|TRUE
|
||||
|
||||
################################################################################
|
||||
#
|
||||
@ -1067,7 +376,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
[PcdDynamic.DEFAULT]
|
||||
[PcdsDynamic.DEFAULT]
|
||||
PcdFlashNvStorageFtwSpareBase|gEfiGenericPlatformTokenSpaceGuid|0x0
|
||||
PcdFlashNvStorageVariableSize|gEfiGenericPlatformTokenSpaceGuid|0x0
|
||||
PcdWinNtCpuSpeed|gEfiNt32PkgTokenSpaceGuid|L"3000"|8
|
||||
@ -1092,3 +401,4 @@
|
||||
################################################################################
|
||||
|
||||
[Components.IA32]
|
||||
$(WORKSPACE)\Nt32Pkg\WinNtThunkDxe\WinNtThunk.inf
|
@ -73,7 +73,7 @@
|
||||
gEfiWinNtFileSystemGuid = { 0x0C95A935, 0xA006, 0x11D4, { 0xBC, 0xFA, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
|
||||
gEfiWinNtPhysicalDisksGuid = { 0x0C95A92F, 0xA006, 0x11D4, { 0xBC, 0xFA, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
|
||||
gEfiWinNtVirtualDisksGuid = { 0x0C95A928, 0xA006, 0x11D4, { 0xBC, 0xFA, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
|
||||
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]
|
||||
PcdWinNtBootMode|0x00001006|gEfiEdkNt32PkgTokenSpaceGuid|UINT32|1
|
||||
PcdWinNtFirmwareVolume|0x00001009|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"..\\Fv\\Fv_Recovery.fd"
|
||||
PcdWinNtMemorySizeForSecMain|0x0000100c|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"64!64"
|
||||
PcdWinNtBootMode|0x00001006|gEfiNt32PkgTokenSpaceGuid|UINT32|1
|
||||
PcdWinNtFirmwareVolume|0x00001009|gEfiNt32PkgTokenSpaceGuid|VOID*|L"..\\Fv\\Fv_Recovery.fd"
|
||||
PcdWinNtMemorySizeForSecMain|0x0000100c|gEfiNt32PkgTokenSpaceGuid|VOID*|L"64!64"
|
||||
|
||||
[PcdDynamic.common]
|
||||
PcdWinNtPhysicalDisk|0x00001000|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"E:RW;245760;512"
|
||||
PcdWinNtVirtualDisk|0x00001001|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"FW;40960;512"
|
||||
PcdWinNtSerialPort|0x00001002|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"COM1!COM2"
|
||||
PcdWinNtUga|0x00001003|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"UGA Window 1!UGA Window 2"
|
||||
PcdWinNtFileSystem|0x00001004|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L".!..\\..\\..\\..\\EdkShellBinPkg\\bin\\ia32\\Apps"
|
||||
PcdWinNtMemorySize|0x00001005|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"64!64"
|
||||
PcdWinNtCpuModel|0x00001007|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"Intel(R) Processor Model"
|
||||
PcdWinNtCpuSpeed|0x00001008|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"3000"
|
||||
PcdWinNtConsole|0x0000100a|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"Bus Driver Console Window"
|
||||
PcdWinNtGop|0x0000100d|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"UGA Window 1!UGA Window 2"
|
||||
PcdWinNtPhysicalDisk|0x00001000|gEfiNt32PkgTokenSpaceGuid|VOID*|L"E:RW;245760;512"
|
||||
PcdWinNtVirtualDisk|0x00001001|gEfiNt32PkgTokenSpaceGuid|VOID*|L"FW;40960;512"
|
||||
PcdWinNtSerialPort|0x00001002|gEfiNt32PkgTokenSpaceGuid|VOID*|L"COM1!COM2"
|
||||
PcdWinNtUga|0x00001003|gEfiNt32PkgTokenSpaceGuid|VOID*|L"UGA Window 1!UGA Window 2"
|
||||
PcdWinNtFileSystem|0x00001004|gEfiNt32PkgTokenSpaceGuid|VOID*|L".!..\\..\\..\\..\\EdkShellBinPkg\\bin\\ia32\\Apps"
|
||||
PcdWinNtMemorySize|0x00001005|gEfiNt32PkgTokenSpaceGuid|VOID*|L"64!64"
|
||||
PcdWinNtCpuModel|0x00001007|gEfiNt32PkgTokenSpaceGuid|VOID*|L"Intel(R) Processor Model"
|
||||
PcdWinNtCpuSpeed|0x00001008|gEfiNt32PkgTokenSpaceGuid|VOID*|L"3000"
|
||||
PcdWinNtConsole|0x0000100a|gEfiNt32PkgTokenSpaceGuid|VOID*|L"Bus Driver Console Window"
|
||||
PcdWinNtGop|0x0000100d|gEfiNt32PkgTokenSpaceGuid|VOID*|L"UGA Window 1!UGA Window 2"
|
||||
|
||||
[PcdPatchableInModule.common]
|
||||
PcdWinNtBootMode|0x00001006|gEfiEdkNt32PkgTokenSpaceGuid|UINT32|1
|
||||
PcdWinNtFirmwareVolume|0x00001009|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"..\\Fv\\Fv_Recovery.fd"
|
||||
PcdWinNtMemorySizeForSecMain|0x0000100c|gEfiEdkNt32PkgTokenSpaceGuid|VOID*|L"64!64"
|
||||
PcdWinNtBootMode|0x00001006|gEfiNt32PkgTokenSpaceGuid|UINT32|1
|
||||
PcdWinNtFirmwareVolume|0x00001009|gEfiNt32PkgTokenSpaceGuid|VOID*|L"..\\Fv\\Fv_Recovery.fd"
|
||||
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