DebugLib:
Fix a bug in PeiDxeDebugLibReportStatusCode: it should use gReportStatusCodeDebugType so that report status code infrastructure can correctly extract debug info. Fix functional and coding style issues in the three instances in EdkModulePkg, namely: EdkDxeDebugLibReportStatusCode, EdkUefiDebugLibStderr, EdkUefiDebugLibConout. DevicePathLib: Sync with MWG 0.57 and add new interface of CreateDevicePathNode(). All the function headers have been updated. PeiServicesLib: Adjust coding style and fix a minor comment error. PciLib: Adjust assert() condition to sync with MWG 0.57 BaseMemoryLib: Adjust assert() for ScanMemXX (), ScanGuid() Rename UefiMemoryLib to DxeMemoryLib PrintLib: Change the return value of all print services to exclude the NULL-terminator. Misc: Slightly adjust the coding style in hob.c in PeiCore module. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@757 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -30,7 +30,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDebugLibStdErr</Library>
|
<Library>UefiDebugLibStdErr</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -30,7 +30,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiRuntimeServicesTableLib</Library>
|
<Library>UefiRuntimeServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -30,7 +30,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiRuntimeServicesTableLib</Library>
|
<Library>UefiRuntimeServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -30,7 +30,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiRuntimeServicesTableLib</Library>
|
<Library>UefiRuntimeServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -61,7 +61,7 @@ Returns:
|
|||||||
|
|
||||||
PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS(PeiServices);
|
PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS(PeiServices);
|
||||||
|
|
||||||
*HobList = PrivateData->HobList.Raw;
|
*HobList = PrivateData->HobList.Raw;
|
||||||
|
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
@ -111,7 +111,7 @@ Returns:
|
|||||||
|
|
||||||
HandOffHob = *Hob;
|
HandOffHob = *Hob;
|
||||||
|
|
||||||
Length = (UINT16)((Length + 0x7) & (~0x7));
|
Length = (UINT16)((Length + 0x7) & (~0x7));
|
||||||
|
|
||||||
FreeMemory = HandOffHob->EfiFreeMemoryTop -
|
FreeMemory = HandOffHob->EfiFreeMemoryTop -
|
||||||
HandOffHob->EfiFreeMemoryBottom;
|
HandOffHob->EfiFreeMemoryBottom;
|
||||||
@ -121,9 +121,9 @@ Returns:
|
|||||||
}
|
}
|
||||||
|
|
||||||
*Hob = (VOID*) (UINTN) HandOffHob->EfiEndOfHobList;
|
*Hob = (VOID*) (UINTN) HandOffHob->EfiEndOfHobList;
|
||||||
((EFI_HOB_GENERIC_HEADER*) *Hob)->HobType = Type;
|
((EFI_HOB_GENERIC_HEADER*) *Hob)->HobType = Type;
|
||||||
((EFI_HOB_GENERIC_HEADER*) *Hob)->HobLength = Length;
|
((EFI_HOB_GENERIC_HEADER*) *Hob)->HobLength = Length;
|
||||||
((EFI_HOB_GENERIC_HEADER*) *Hob)->Reserved = 0;
|
((EFI_HOB_GENERIC_HEADER*) *Hob)->Reserved = 0;
|
||||||
|
|
||||||
HobEnd = (EFI_HOB_GENERIC_HEADER*) ((UINTN) *Hob + Length);
|
HobEnd = (EFI_HOB_GENERIC_HEADER*) ((UINTN) *Hob + Length);
|
||||||
HandOffHob->EfiEndOfHobList = (EFI_PHYSICAL_ADDRESS) (UINTN) HobEnd;
|
HandOffHob->EfiEndOfHobList = (EFI_PHYSICAL_ADDRESS) (UINTN) HobEnd;
|
||||||
@ -164,13 +164,13 @@ Returns:
|
|||||||
--*/
|
--*/
|
||||||
{
|
{
|
||||||
EFI_HOB_HANDOFF_INFO_TABLE *Hob;
|
EFI_HOB_HANDOFF_INFO_TABLE *Hob;
|
||||||
EFI_HOB_GENERIC_HEADER *HobEnd;
|
EFI_HOB_GENERIC_HEADER *HobEnd;
|
||||||
|
|
||||||
Hob = (VOID *)(UINTN)MemoryBegin;
|
Hob = (VOID *)(UINTN)MemoryBegin;
|
||||||
HobEnd = (EFI_HOB_GENERIC_HEADER*) (Hob+1);
|
HobEnd = (EFI_HOB_GENERIC_HEADER*) (Hob+1);
|
||||||
Hob->Header.HobType = EFI_HOB_TYPE_HANDOFF;
|
Hob->Header.HobType = EFI_HOB_TYPE_HANDOFF;
|
||||||
Hob->Header.HobLength = sizeof(EFI_HOB_HANDOFF_INFO_TABLE);
|
Hob->Header.HobLength = sizeof(EFI_HOB_HANDOFF_INFO_TABLE);
|
||||||
Hob->Header.Reserved = 0;
|
Hob->Header.Reserved = 0;
|
||||||
|
|
||||||
HobEnd->HobType = EFI_HOB_TYPE_END_OF_HOB_LIST;
|
HobEnd->HobType = EFI_HOB_TYPE_END_OF_HOB_LIST;
|
||||||
HobEnd->HobLength = sizeof(EFI_HOB_GENERIC_HEADER);
|
HobEnd->HobLength = sizeof(EFI_HOB_GENERIC_HEADER);
|
||||||
|
@ -1,108 +1,183 @@
|
|||||||
/*++
|
/** @file
|
||||||
|
EFI Debug Library that installs Debug Level Protocol.
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation
|
Copyright (c) 2006, Intel Corporation<BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
http://opensource.org/licenses/bsd-license.php
|
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:
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
DebugLib.c
|
**/
|
||||||
|
|
||||||
Abstract:
|
STATIC BOOLEAN mDebugLevelInstalled = FALSE;
|
||||||
|
STATIC EFI_DEBUG_LEVEL_PROTOCOL mDebugLevel = { 0 };
|
||||||
|
|
||||||
EFI Debug Library
|
/**
|
||||||
|
Installs Debug Level Protocol.
|
||||||
|
|
||||||
|
The constructor function installs Debug Level Protocol on the ImageHandle.
|
||||||
|
It will ASSERT() if the installation fails and will always return EFI_SUCCESS.
|
||||||
|
|
||||||
--*/
|
@param ImageHandle The firmware allocated handle for the EFI image.
|
||||||
|
@param SystemTable A pointer to the EFI System Table.
|
||||||
static BOOLEAN mDebugLevelInstalled = FALSE;
|
|
||||||
static EFI_DEBUG_LEVEL_PROTOCOL mDebugLevel = { 0 };
|
@retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
DebugLibConstructor (
|
DebugLibConstructor (
|
||||||
IN EFI_HANDLE ImageHandle,
|
IN EFI_HANDLE ImageHandle,
|
||||||
IN EFI_SYSTEM_TABLE *SystemTable
|
IN EFI_SYSTEM_TABLE *SystemTable
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Initialize Debug Level Protocol
|
// Initialize Debug Level Protocol.
|
||||||
//
|
//
|
||||||
mDebugLevel.DebugLevel = PcdGet32(PcdDebugPrintErrorLevel);
|
mDebugLevel.DebugLevel = PcdGet32(PcdDebugPrintErrorLevel);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Install Debug Level Protocol
|
// Install Debug Level Protocol.
|
||||||
//
|
//
|
||||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||||
&ImageHandle,
|
&ImageHandle,
|
||||||
&gEfiDebugLevelProtocolGuid, &mDebugLevel,
|
&gEfiDebugLevelProtocolGuid,
|
||||||
|
&mDebugLevel,
|
||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Set flag to show that the Debug Level Protocol has been installed
|
// Set flag to show that the Debug Level Protocol has been installed.
|
||||||
//
|
//
|
||||||
mDebugLevelInstalled = TRUE;
|
mDebugLevelInstalled = TRUE;
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Prints a debug message to the debug output device if the specified error level is enabled.
|
||||||
|
|
||||||
|
If any bit in ErrorLevel is also set in PcdDebugPrintErrorLevel, then print
|
||||||
|
the message specified by Format and the associated variable argument list to
|
||||||
|
the debug output device.
|
||||||
|
|
||||||
|
If Format is NULL, then ASSERT().
|
||||||
|
|
||||||
|
@param ErrorLevel The error level of the debug message.
|
||||||
|
@param Format Format string for the debug message to print.
|
||||||
|
|
||||||
|
**/
|
||||||
|
VOID
|
||||||
|
EFIAPI
|
||||||
|
DebugPrint (
|
||||||
|
IN UINTN ErrorLevel,
|
||||||
|
IN CONST CHAR8 *Format,
|
||||||
|
...
|
||||||
|
)
|
||||||
|
{
|
||||||
|
UINT64 Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE / sizeof (UINT64)];
|
||||||
|
EFI_DEBUG_INFO *DebugInfo;
|
||||||
|
UINTN TotalSize;
|
||||||
|
UINTN Index;
|
||||||
|
VA_LIST Marker;
|
||||||
|
UINT64 *ArgumentPointer;
|
||||||
|
|
||||||
|
//
|
||||||
|
// If Format is NULL, then ASSERT().
|
||||||
|
//
|
||||||
|
ASSERT (Format != NULL);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check driver Debug Level value and global debug level
|
||||||
|
//
|
||||||
|
if (mDebugLevelInstalled) {
|
||||||
|
if ((ErrorLevel & mDebugLevel.DebugLevel) == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ((ErrorLevel & PcdGet32(PcdDebugPrintErrorLevel)) == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TotalSize = sizeof (EFI_DEBUG_INFO) + 12 * sizeof (UINT64) + AsciiStrLen (Format) + 1;
|
||||||
|
if (TotalSize > EFI_STATUS_CODE_DATA_MAX_SIZE) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Then EFI_DEBUG_INFO
|
||||||
|
//
|
||||||
|
DebugInfo = (EFI_DEBUG_INFO *)Buffer;
|
||||||
|
DebugInfo->ErrorLevel = (UINT32)ErrorLevel;
|
||||||
|
|
||||||
|
//
|
||||||
|
// 256 byte mini Var Arg stack. That is followed by the format string.
|
||||||
|
//
|
||||||
|
VA_START (Marker, Format);
|
||||||
|
for (Index = 0, ArgumentPointer = (UINT64 *)(DebugInfo + 1); Index < 12; Index++, ArgumentPointer++) {
|
||||||
|
*ArgumentPointer = VA_ARG (Marker, UINT64);
|
||||||
|
}
|
||||||
|
VA_END (Marker);
|
||||||
|
AsciiStrCpy ((CHAR8 *)ArgumentPointer, Format);
|
||||||
|
|
||||||
|
REPORT_STATUS_CODE_EX (
|
||||||
|
EFI_DEBUG_CODE,
|
||||||
|
(EFI_SOFTWARE_DXE_BS_DRIVER | EFI_DC_UNSPECIFIED),
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
&gEfiStatusCodeDataTypeDebugGuid,
|
||||||
|
DebugInfo,
|
||||||
|
TotalSize
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Prints an assert message containing a filename, line number, and description.
|
||||||
|
This may be followed by a breakpoint or a dead loop.
|
||||||
|
|
||||||
|
Print a message of the form "ASSERT <FileName>(<LineNumber>): <Description>\n"
|
||||||
|
to the debug output device. If DEBUG_PROPERTY_ASSERT_BREAKPOINT_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set then CpuBreakpoint() is called. Otherwise, if
|
||||||
|
DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED bit of PcdDebugProperyMask is set then
|
||||||
|
CpuDeadLoop() is called. If neither of these bits are set, then this function
|
||||||
|
returns immediately after the message is printed to the debug output device.
|
||||||
|
DebugAssert() must actively prevent recusrsion. If DebugAssert() is called while
|
||||||
|
processing another DebugAssert(), then DebugAssert() must return immediately.
|
||||||
|
|
||||||
|
If FileName is NULL, then a <FileName> string of "(NULL) Filename" is printed.
|
||||||
|
|
||||||
|
If Description is NULL, then a <Description> string of "(NULL) Description" is printed.
|
||||||
|
|
||||||
|
@param FileName Pointer to the name of the source file that generated the assert condition.
|
||||||
|
@param LineNumber The line number in the source file that generated the assert condition
|
||||||
|
@param Description Pointer to the description of the assert condition.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugAssert (
|
DebugAssert (
|
||||||
IN CHAR8 *FileName,
|
IN CONST CHAR8 *FileName,
|
||||||
IN UINTN LineNumber,
|
IN UINTN LineNumber,
|
||||||
IN CHAR8 *Description
|
IN CONST CHAR8 *Description
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Worker function for ASSERT(). If Error Logging hub is loaded log ASSERT
|
|
||||||
information. If Error Logging hub is not loaded CpuBreakpoint ().
|
|
||||||
|
|
||||||
We use UINT64 buffers due to IPF alignment concerns.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
FileName - File name of failing routine.
|
|
||||||
|
|
||||||
LineNumber - Line number of failing ASSERT().
|
|
||||||
|
|
||||||
Description - Descritption, usally the assertion,
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
UINT64 Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE / sizeof(UINT64)];
|
UINT64 Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE / sizeof(UINT64)];
|
||||||
EFI_DEBUG_ASSERT_DATA *AssertData;
|
EFI_DEBUG_ASSERT_DATA *AssertData;
|
||||||
UINTN TotalSize;
|
UINTN TotalSize;
|
||||||
CHAR8 *Temp;
|
CHAR8 *Temp;
|
||||||
|
|
||||||
if ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED) == 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Make sure it will all fit in the passed in buffer
|
// Make sure it will all fit in the passed in buffer.
|
||||||
//
|
//
|
||||||
TotalSize = sizeof (EFI_DEBUG_ASSERT_DATA) + AsciiStrLen (FileName) + 1 + AsciiStrLen (Description) + 1;
|
TotalSize = sizeof (EFI_DEBUG_ASSERT_DATA) + AsciiStrLen (FileName) + 1 + AsciiStrLen (Description) + 1;
|
||||||
if (TotalSize <= EFI_STATUS_CODE_DATA_MAX_SIZE) {
|
if (TotalSize <= EFI_STATUS_CODE_DATA_MAX_SIZE) {
|
||||||
@ -118,9 +193,9 @@ Returns:
|
|||||||
Temp = AsciiStrCpy ((CHAR8 *)(AssertData + 1), FileName);
|
Temp = AsciiStrCpy ((CHAR8 *)(AssertData + 1), FileName);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Copy Ascii Description
|
// Copy Ascii Description.
|
||||||
//
|
//
|
||||||
AsciiStrCpy (Temp + AsciiStrLen(FileName) + 1, Description);
|
AsciiStrCpy (Temp + AsciiStrLen (FileName) + 1, Description);
|
||||||
|
|
||||||
REPORT_STATUS_CODE_WITH_EXTENDED_DATA (
|
REPORT_STATUS_CODE_WITH_EXTENDED_DATA (
|
||||||
(EFI_ERROR_CODE | EFI_ERROR_UNRECOVERED),
|
(EFI_ERROR_CODE | EFI_ERROR_UNRECOVERED),
|
||||||
@ -131,124 +206,18 @@ Returns:
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Put break point in module that contained the error.
|
// Generate a Breakpoint, DeadLoop, or NOP based on PCD settings
|
||||||
//
|
//
|
||||||
CpuBreakpoint ();
|
if ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_ASSERT_BREAKPOINT_ENABLED) != 0) {
|
||||||
|
CpuBreakpoint ();
|
||||||
|
} else if ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED) != 0) {
|
||||||
|
CpuDeadLoop ();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
|
||||||
DebugVPrint (
|
|
||||||
IN UINTN ErrorLevel,
|
|
||||||
IN CHAR8 *Format,
|
|
||||||
IN VA_LIST Marker
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Worker function for DEBUG(). If Error Logging hub is loaded log ASSERT
|
|
||||||
information. If Error Logging hub is not loaded do nothing.
|
|
||||||
|
|
||||||
We use UINT64 buffers due to IPF alignment concerns.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
ErrorLevel - If error level is set do the debug print.
|
|
||||||
|
|
||||||
Format - String to use for the print, followed by Print arguments.
|
|
||||||
|
|
||||||
Marker - VarArgs
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
|
||||||
UINT64 Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE / sizeof (UINT64)];
|
|
||||||
EFI_DEBUG_INFO *DebugInfo;
|
|
||||||
UINTN TotalSize;
|
|
||||||
UINTN Index;
|
|
||||||
UINT64 *ArgumentPointer;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Check driver Debug Level value and global debug level
|
|
||||||
//
|
|
||||||
if (mDebugLevelInstalled) {
|
|
||||||
if ((ErrorLevel & mDebugLevel.DebugLevel) == 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if ((ErrorLevel & PcdGet32(PcdDebugPrintErrorLevel)) == 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
TotalSize = sizeof (EFI_DEBUG_INFO) + 12 * sizeof (UINT64 *) + AsciiStrLen (Format) + 1;
|
|
||||||
if (TotalSize > EFI_STATUS_CODE_DATA_MAX_SIZE) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Then EFI_DEBUG_INFO
|
|
||||||
//
|
|
||||||
DebugInfo = (EFI_DEBUG_INFO *)Buffer;
|
|
||||||
DebugInfo->ErrorLevel = (UINT32)ErrorLevel;
|
|
||||||
|
|
||||||
//
|
|
||||||
// 256 byte mini Var Arg stack. That is followed by the format string.
|
|
||||||
//
|
|
||||||
for (Index = 0, ArgumentPointer = (UINT64 *)(DebugInfo + 1); Index < 12; Index++, ArgumentPointer++) {
|
|
||||||
*ArgumentPointer = VA_ARG (Marker, UINT64);
|
|
||||||
}
|
|
||||||
AsciiStrCpy ((CHAR8 *)ArgumentPointer, Format);
|
|
||||||
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
REPORT_STATUS_CODE_WITH_EXTENDED_DATA (
|
|
||||||
EFI_DEBUG_CODE,
|
|
||||||
(EFI_SOFTWARE_DXE_BS_DRIVER | EFI_DC_UNSPECIFIED),
|
|
||||||
DebugInfo,
|
|
||||||
TotalSize
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
EFIAPI
|
|
||||||
DebugPrint (
|
|
||||||
IN UINTN ErrorLevel,
|
|
||||||
IN CHAR8 *Format,
|
|
||||||
...
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Wrapper for DebugVPrint ()
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
ErrorLevel - If error level is set do the debug print.
|
|
||||||
|
|
||||||
Format - String to use for the print, followed by Print arguments.
|
|
||||||
|
|
||||||
... - Print arguments.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
|
||||||
VA_LIST Marker;
|
|
||||||
|
|
||||||
VA_START (Marker, Format);
|
|
||||||
DebugVPrint (ErrorLevel, Format, Marker);
|
|
||||||
VA_END (Marker);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
Fills a target buffer with PcdDebugClearMemoryValue, and returns the target buffer.
|
Fills a target buffer with PcdDebugClearMemoryValue, and returns the target buffer.
|
||||||
|
|
||||||
This function fills Length bytes of Buffer with the value specified by
|
This function fills Length bytes of Buffer with the value specified by
|
||||||
@ -258,8 +227,8 @@ Returns:
|
|||||||
|
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to fill with PcdDebugClearMemoryValue.
|
@param Buffer Pointer to the target buffer to fill with PcdDebugClearMemoryValue.
|
||||||
@param Length Number of bytes in Buffer to fill with zeros PcdDebugClearMemoryValue.
|
@param Length Number of bytes in Buffer to fill with zeros PcdDebugClearMemoryValue.
|
||||||
|
|
||||||
@return Buffer
|
@return Buffer
|
||||||
|
|
||||||
@ -271,11 +240,29 @@ DebugClearMemory (
|
|||||||
IN UINTN Length
|
IN UINTN Length
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// SetMem (Buffer, Length, PcdGet8(PcdDebugClearMemoryValue));
|
//
|
||||||
SetMem (Buffer, Length, 0xAF);
|
// If Buffer is NULL, then ASSERT().
|
||||||
return Buffer;
|
//
|
||||||
|
ASSERT (Buffer != NULL);
|
||||||
|
|
||||||
|
//
|
||||||
|
// SetMem() checks for the the ASSERT() condition on Length and returns Buffer
|
||||||
|
//
|
||||||
|
return SetMem (Buffer, Length, PcdGet8(PcdDebugClearMemoryValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Returns TRUE if ASSERT() macros are enabled.
|
||||||
|
|
||||||
|
This function returns TRUE if the DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set. Otherwise FALSE is returned.
|
||||||
|
|
||||||
|
@retval TRUE The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is set.
|
||||||
|
@retval FALSE The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is clear.
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugAssertEnabled (
|
DebugAssertEnabled (
|
||||||
@ -285,6 +272,18 @@ DebugAssertEnabled (
|
|||||||
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED) != 0);
|
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Returns TRUE if DEBUG()macros are enabled.
|
||||||
|
|
||||||
|
This function returns TRUE if the DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set. Otherwise FALSE is returned.
|
||||||
|
|
||||||
|
@retval TRUE The DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of PcdDebugProperyMask is set.
|
||||||
|
@retval FALSE The DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of PcdDebugProperyMask is clear.
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugPrintEnabled (
|
DebugPrintEnabled (
|
||||||
@ -294,6 +293,18 @@ DebugPrintEnabled (
|
|||||||
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_PRINT_ENABLED) != 0);
|
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_PRINT_ENABLED) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Returns TRUE if DEBUG_CODE()macros are enabled.
|
||||||
|
|
||||||
|
This function returns TRUE if the DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set. Otherwise FALSE is returned.
|
||||||
|
|
||||||
|
@retval TRUE The DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of PcdDebugProperyMask is set.
|
||||||
|
@retval FALSE The DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of PcdDebugProperyMask is clear.
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugCodeEnabled (
|
DebugCodeEnabled (
|
||||||
@ -303,6 +314,18 @@ DebugCodeEnabled (
|
|||||||
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_CODE_ENABLED) != 0);
|
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_CODE_ENABLED) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Returns TRUE if DEBUG_CLEAR_MEMORY()macro is enabled.
|
||||||
|
|
||||||
|
This function returns TRUE if the DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set. Otherwise FALSE is returned.
|
||||||
|
|
||||||
|
@retval TRUE The DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of PcdDebugProperyMask is set.
|
||||||
|
@retval FALSE The DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of PcdDebugProperyMask is clear.
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugClearMemoryEnabled (
|
DebugClearMemoryEnabled (
|
||||||
@ -311,4 +334,3 @@ DebugClearMemoryEnabled (
|
|||||||
{
|
{
|
||||||
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_CLEAR_MEMORY_ENABLED) != 0);
|
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_CLEAR_MEMORY_ENABLED) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,10 +49,15 @@
|
|||||||
<Package PackageGuid="B6EC423C-21D2-490D-85C6-DD5864EAA674"/>
|
<Package PackageGuid="B6EC423C-21D2-490D-85C6-DD5864EAA674"/>
|
||||||
</PackageDependencies>
|
</PackageDependencies>
|
||||||
<Protocols>
|
<Protocols>
|
||||||
<Protocol Usage="ALWAYS_CONSUMED">
|
<Protocol Usage="ALWAYS_PRODUCED">
|
||||||
<ProtocolCName>DebugLevel</ProtocolCName>
|
<ProtocolCName>DebugLevel</ProtocolCName>
|
||||||
</Protocol>
|
</Protocol>
|
||||||
</Protocols>
|
</Protocols>
|
||||||
|
<Guids>
|
||||||
|
<GuidCNames Usage="ALWAYS_CONSUMED">
|
||||||
|
<GuidCName>StatusCodeDataTypeDebug</GuidCName>
|
||||||
|
</GuidCNames>
|
||||||
|
</Guids>
|
||||||
<Externs>
|
<Externs>
|
||||||
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
||||||
<Specification>EDK_RELEASE_VERSION 0x00090000</Specification>
|
<Specification>EDK_RELEASE_VERSION 0x00090000</Specification>
|
||||||
@ -66,6 +71,11 @@
|
|||||||
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
|
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
|
||||||
|
|
||||||
<HelpText/>
|
<HelpText/>
|
||||||
|
</PcdEntry>
|
||||||
|
<PcdEntry PcdItemType="FIXED_AT_BUILD">
|
||||||
|
<C_Name>PcdDebugClearMemoryValue</C_Name>
|
||||||
|
<TokenSpaceGuidCName>FIX_ME_PcdDebugClearMemoryValue</TokenSpaceGuidCName>
|
||||||
|
<HelpText/>
|
||||||
</PcdEntry>
|
</PcdEntry>
|
||||||
<PcdEntry PcdItemType="PATCHABLE_IN_MODULE">
|
<PcdEntry PcdItemType="PATCHABLE_IN_MODULE">
|
||||||
<C_Name>PcdDebugPrintErrorLevel</C_Name>
|
<C_Name>PcdDebugPrintErrorLevel</C_Name>
|
||||||
|
@ -1,105 +1,99 @@
|
|||||||
/*++
|
/** @file
|
||||||
|
UEFI Debug Library that uses PrintLib to send messages to CONOUT.
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation
|
Copyright (c) 2006, Intel Corporation<BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
http://opensource.org/licenses/bsd-license.php
|
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:
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
DebugLib.c
|
**/
|
||||||
|
|
||||||
Abstract:
|
//
|
||||||
|
// Define the maximum debug and assert message length that this library supports.
|
||||||
|
//
|
||||||
|
#define MAX_DEBUG_MESSAGE_LENGTH 0x100
|
||||||
|
|
||||||
UEFI Debug Library that uses PrintLib to send messages to CONOUT
|
STATIC BOOLEAN mDebugLevelInstalled = FALSE;
|
||||||
|
STATIC EFI_DEBUG_LEVEL_PROTOCOL mDebugLevel = { 0 };
|
||||||
|
|
||||||
--*/
|
/**
|
||||||
|
Installs Debug Level Protocol.
|
||||||
|
|
||||||
|
The constructor function installs Debug Level Protocol on the ImageHandle.
|
||||||
|
It will ASSERT() if the installation fails and will always return EFI_SUCCESS.
|
||||||
|
|
||||||
static BOOLEAN mDebugLevelInstalled = FALSE;
|
@param ImageHandle The firmware allocated handle for the EFI image.
|
||||||
static EFI_DEBUG_LEVEL_PROTOCOL mDebugLevel = { 0 };
|
@param SystemTable A pointer to the EFI System Table.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
DebugLibConstructor (
|
DebugLibConstructor (
|
||||||
IN EFI_HANDLE ImageHandle,
|
IN EFI_HANDLE ImageHandle,
|
||||||
IN EFI_SYSTEM_TABLE *SystemTable
|
IN EFI_SYSTEM_TABLE *SystemTable
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Initialize Debug Level Protocol
|
// Initialize Debug Level Protocol.
|
||||||
//
|
//
|
||||||
mDebugLevel.DebugLevel = PcdGet32(PcdDebugPrintErrorLevel);
|
mDebugLevel.DebugLevel = PcdGet32(PcdDebugPrintErrorLevel);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Install Debug Level Protocol
|
// Install Debug Level Protocol.
|
||||||
//
|
//
|
||||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||||
&ImageHandle,
|
&ImageHandle,
|
||||||
&gEfiDebugLevelProtocolGuid, &mDebugLevel,
|
&gEfiDebugLevelProtocolGuid,
|
||||||
|
&mDebugLevel,
|
||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Set flag to show that the Debug Level Protocol has been installed
|
// Set flag to show that the Debug Level Protocol has been installed.
|
||||||
//
|
//
|
||||||
mDebugLevelInstalled = TRUE;
|
mDebugLevelInstalled = TRUE;
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Prints a debug message to the debug output device if the specified error level is enabled.
|
||||||
|
|
||||||
|
If any bit in ErrorLevel is also set in PcdDebugPrintErrorLevel, then print
|
||||||
|
the message specified by Format and the associated variable argument list to
|
||||||
|
the debug output device.
|
||||||
|
|
||||||
|
If Format is NULL, then ASSERT().
|
||||||
|
|
||||||
|
@param ErrorLevel The error level of the debug message.
|
||||||
|
@param Format Format string for the debug message to print.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugPrint (
|
DebugPrint (
|
||||||
IN UINTN ErrorLevel,
|
IN UINTN ErrorLevel,
|
||||||
IN CHAR8 *Format,
|
IN CONST CHAR8 *Format,
|
||||||
...
|
...
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Wrapper for DebugVPrint ()
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
ErrorLevel - If error level is set do the debug print.
|
|
||||||
|
|
||||||
Format - String to use for the print, followed by Print arguments.
|
|
||||||
|
|
||||||
... - Print arguments.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
CHAR16 Buffer[0x100];
|
CHAR16 Buffer[MAX_DEBUG_MESSAGE_LENGTH];
|
||||||
CHAR16 UnicodeBuffer[0x100];
|
|
||||||
UINT32 Index;
|
|
||||||
VA_LIST Marker;
|
VA_LIST Marker;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check to see if CONOUT is avilable
|
// If Format is NULL, then ASSERT().
|
||||||
//
|
//
|
||||||
if (gST->ConOut == NULL) {
|
ASSERT (Format != NULL);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check driver Debug Level value and global debug level
|
// Check driver Debug Level value and global debug level
|
||||||
@ -114,83 +108,80 @@ Returns:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// BUGBUG: Need print that take CHAR8 Format and returns CHAR16 Buffer
|
|
||||||
//
|
|
||||||
for (Index = 0; Format[Index] != 0; Index++) {
|
|
||||||
UnicodeBuffer[Index] = Format[Index];
|
|
||||||
}
|
|
||||||
UnicodeBuffer[Index] = Format[Index];
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Convert the DEBUG() message to a Unicode String
|
// Convert the DEBUG() message to a Unicode String
|
||||||
//
|
//
|
||||||
VA_START (Marker, Format);
|
VA_START (Marker, Format);
|
||||||
UnicodeVSPrint (Buffer, sizeof (Buffer), UnicodeBuffer, Marker);
|
UnicodeVSPrintAsciiFormat (Buffer, sizeof (Buffer), Format, Marker);
|
||||||
VA_END (Marker);
|
VA_END (Marker);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Send the print string to the Standard Error device
|
// Send the print string to the Console Output device if CONOUT is available.
|
||||||
//
|
//
|
||||||
gST->ConOut->OutputString (gST->ConOut, Buffer);
|
if (gST->ConOut != NULL) {
|
||||||
|
gST->ConOut->OutputString (gST->ConOut, Buffer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Prints an assert message containing a filename, line number, and description.
|
||||||
|
This may be followed by a breakpoint or a dead loop.
|
||||||
|
|
||||||
|
Print a message of the form "ASSERT <FileName>(<LineNumber>): <Description>\n"
|
||||||
|
to the debug output device. If DEBUG_PROPERTY_ASSERT_BREAKPOINT_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set then CpuBreakpoint() is called. Otherwise, if
|
||||||
|
DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED bit of PcdDebugProperyMask is set then
|
||||||
|
CpuDeadLoop() is called. If neither of these bits are set, then this function
|
||||||
|
returns immediately after the message is printed to the debug output device.
|
||||||
|
DebugAssert() must actively prevent recusrsion. If DebugAssert() is called while
|
||||||
|
processing another DebugAssert(), then DebugAssert() must return immediately.
|
||||||
|
|
||||||
|
If FileName is NULL, then a <FileName> string of "(NULL) Filename" is printed.
|
||||||
|
|
||||||
|
If Description is NULL, then a <Description> string of "(NULL) Description" is printed.
|
||||||
|
|
||||||
|
@param FileName Pointer to the name of the source file that generated the assert condition.
|
||||||
|
@param LineNumber The line number in the source file that generated the assert condition
|
||||||
|
@param Description Pointer to the description of the assert condition.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugAssert (
|
DebugAssert (
|
||||||
IN CHAR8 *FileName,
|
IN CONST CHAR8 *FileName,
|
||||||
IN UINTN LineNumber,
|
IN UINTN LineNumber,
|
||||||
IN CHAR8 *Description
|
IN CONST CHAR8 *Description
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Worker function for ASSERT(). If Error Logging hub is loaded log ASSERT
|
|
||||||
information. If Error Logging hub is not loaded CpuBreakpoint ().
|
|
||||||
|
|
||||||
We use UINT64 buffers due to IPF alignment concerns.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
FileName - File name of failing routine.
|
|
||||||
|
|
||||||
LineNumber - Line number of failing ASSERT().
|
|
||||||
|
|
||||||
Description - Descritption, usally the assertion,
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
CHAR16 Buffer[0x100];
|
CHAR16 Buffer[MAX_DEBUG_MESSAGE_LENGTH];
|
||||||
|
|
||||||
//
|
|
||||||
// Check to see if CONOUT is avilable
|
|
||||||
//
|
|
||||||
if (gST->ConOut == NULL) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Generate the ASSERT() message in Unicode format
|
// Generate the ASSERT() message in Unicode format
|
||||||
//
|
//
|
||||||
UnicodeSPrint (Buffer, sizeof (Buffer), (CHAR16 *)L"ASSERT %s(%d): %s\n", FileName, LineNumber, Description);
|
UnicodeSPrintAsciiFormat (Buffer, sizeof (Buffer), "ASSERT %s(%d): %s\n", FileName, LineNumber, Description);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Send the print string to the Standard Error device
|
// Send the print string to the Console Output device if CONOUT is available.
|
||||||
//
|
//
|
||||||
gST->ConOut->OutputString (gST->ConOut, Buffer);
|
if (gST->ConOut != NULL) {
|
||||||
|
gST->ConOut->OutputString (gST->ConOut, Buffer);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Put break point in module that contained the error.
|
// Generate a Breakpoint, DeadLoop, or NOP based on PCD settings
|
||||||
//
|
//
|
||||||
CpuBreakpoint ();
|
if ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_ASSERT_BREAKPOINT_ENABLED) != 0) {
|
||||||
|
CpuBreakpoint ();
|
||||||
|
} else if ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED) != 0) {
|
||||||
|
CpuDeadLoop ();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
Fills a target buffer with PcdDebugClearMemoryValue, and returns the target buffer.
|
Fills a target buffer with PcdDebugClearMemoryValue, and returns the target buffer.
|
||||||
|
|
||||||
This function fills Length bytes of Buffer with the value specified by
|
This function fills Length bytes of Buffer with the value specified by
|
||||||
@ -200,8 +191,8 @@ Returns:
|
|||||||
|
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to fill with PcdDebugClearMemoryValue.
|
@param Buffer Pointer to the target buffer to fill with PcdDebugClearMemoryValue.
|
||||||
@param Length Number of bytes in Buffer to fill with zeros PcdDebugClearMemoryValue.
|
@param Length Number of bytes in Buffer to fill with zeros PcdDebugClearMemoryValue.
|
||||||
|
|
||||||
@return Buffer
|
@return Buffer
|
||||||
|
|
||||||
@ -213,11 +204,29 @@ DebugClearMemory (
|
|||||||
IN UINTN Length
|
IN UINTN Length
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// SetMem (Buffer, Length, PcdGet8(PcdDebugClearMemoryValue));
|
//
|
||||||
SetMem (Buffer, Length, 0xAF);
|
// If Buffer is NULL, then ASSERT().
|
||||||
return Buffer;
|
//
|
||||||
|
ASSERT (Buffer != NULL);
|
||||||
|
|
||||||
|
//
|
||||||
|
// SetMem() checks for the the ASSERT() condition on Length and returns Buffer
|
||||||
|
//
|
||||||
|
return SetMem (Buffer, Length, PcdGet8(PcdDebugClearMemoryValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Returns TRUE if ASSERT() macros are enabled.
|
||||||
|
|
||||||
|
This function returns TRUE if the DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set. Otherwise FALSE is returned.
|
||||||
|
|
||||||
|
@retval TRUE The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is set.
|
||||||
|
@retval FALSE The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is clear.
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugAssertEnabled (
|
DebugAssertEnabled (
|
||||||
@ -227,6 +236,18 @@ DebugAssertEnabled (
|
|||||||
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED) != 0);
|
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Returns TRUE if DEBUG()macros are enabled.
|
||||||
|
|
||||||
|
This function returns TRUE if the DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set. Otherwise FALSE is returned.
|
||||||
|
|
||||||
|
@retval TRUE The DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of PcdDebugProperyMask is set.
|
||||||
|
@retval FALSE The DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of PcdDebugProperyMask is clear.
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugPrintEnabled (
|
DebugPrintEnabled (
|
||||||
@ -236,6 +257,18 @@ DebugPrintEnabled (
|
|||||||
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_PRINT_ENABLED) != 0);
|
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_PRINT_ENABLED) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Returns TRUE if DEBUG_CODE()macros are enabled.
|
||||||
|
|
||||||
|
This function returns TRUE if the DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set. Otherwise FALSE is returned.
|
||||||
|
|
||||||
|
@retval TRUE The DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of PcdDebugProperyMask is set.
|
||||||
|
@retval FALSE The DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of PcdDebugProperyMask is clear.
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugCodeEnabled (
|
DebugCodeEnabled (
|
||||||
@ -245,6 +278,18 @@ DebugCodeEnabled (
|
|||||||
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_CODE_ENABLED) != 0);
|
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_CODE_ENABLED) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Returns TRUE if DEBUG_CLEAR_MEMORY()macro is enabled.
|
||||||
|
|
||||||
|
This function returns TRUE if the DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set. Otherwise FALSE is returned.
|
||||||
|
|
||||||
|
@retval TRUE The DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of PcdDebugProperyMask is set.
|
||||||
|
@retval FALSE The DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of PcdDebugProperyMask is clear.
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugClearMemoryEnabled (
|
DebugClearMemoryEnabled (
|
||||||
|
@ -53,6 +53,11 @@
|
|||||||
<ProtocolCName>DebugLevel</ProtocolCName>
|
<ProtocolCName>DebugLevel</ProtocolCName>
|
||||||
</Protocol>
|
</Protocol>
|
||||||
</Protocols>
|
</Protocols>
|
||||||
|
<Guids>
|
||||||
|
<GuidCNames Usage="ALWAYS_CONSUMED">
|
||||||
|
<GuidCName>StatusCodeDataTypeDebug</GuidCName>
|
||||||
|
</GuidCNames>
|
||||||
|
</Guids>
|
||||||
<Externs>
|
<Externs>
|
||||||
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
||||||
<Specification>EDK_RELEASE_VERSION 0x00090000</Specification>
|
<Specification>EDK_RELEASE_VERSION 0x00090000</Specification>
|
||||||
@ -66,6 +71,11 @@
|
|||||||
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
|
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
|
||||||
|
|
||||||
<HelpText/>
|
<HelpText/>
|
||||||
|
</PcdEntry>
|
||||||
|
<PcdEntry PcdItemType="FIXED_AT_BUILD">
|
||||||
|
<C_Name>PcdDebugClearMemoryValue</C_Name>
|
||||||
|
<TokenSpaceGuidCName>FIX_ME_PcdDebugClearMemoryValue</TokenSpaceGuidCName>
|
||||||
|
<HelpText/>
|
||||||
</PcdEntry>
|
</PcdEntry>
|
||||||
<PcdEntry PcdItemType="PATCHABLE_IN_MODULE">
|
<PcdEntry PcdItemType="PATCHABLE_IN_MODULE">
|
||||||
<C_Name>PcdDebugPrintErrorLevel</C_Name>
|
<C_Name>PcdDebugPrintErrorLevel</C_Name>
|
||||||
|
@ -1,105 +1,99 @@
|
|||||||
/*++
|
/** @file
|
||||||
|
UEFI Debug Library that uses PrintLib to send messages to STDERR.
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation
|
Copyright (c) 2006, Intel Corporation<BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
http://opensource.org/licenses/bsd-license.php
|
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:
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
DebugLib.c
|
**/
|
||||||
|
|
||||||
Abstract:
|
//
|
||||||
|
// Define the maximum debug and assert message length that this library supports.
|
||||||
|
//
|
||||||
|
#define MAX_DEBUG_MESSAGE_LENGTH 0x100
|
||||||
|
|
||||||
UEFI Debug Library that uses PrintLib to send messages to STDERR
|
STATIC BOOLEAN mDebugLevelInstalled = FALSE;
|
||||||
|
STATIC EFI_DEBUG_LEVEL_PROTOCOL mDebugLevel = { 0 };
|
||||||
|
|
||||||
--*/
|
/**
|
||||||
|
Installs Debug Level Protocol.
|
||||||
|
|
||||||
|
The constructor function installs Debug Level Protocol on the ImageHandle.
|
||||||
|
It will ASSERT() if the installation fails and will always return EFI_SUCCESS.
|
||||||
|
|
||||||
static BOOLEAN mDebugLevelInstalled = FALSE;
|
@param ImageHandle The firmware allocated handle for the EFI image.
|
||||||
static EFI_DEBUG_LEVEL_PROTOCOL mDebugLevel = { 0 };
|
@param SystemTable A pointer to the EFI System Table.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
DebugLibConstructor (
|
DebugLibConstructor (
|
||||||
IN EFI_HANDLE ImageHandle,
|
IN EFI_HANDLE ImageHandle,
|
||||||
IN EFI_SYSTEM_TABLE *SystemTable
|
IN EFI_SYSTEM_TABLE *SystemTable
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Initialize Debug Level Protocol
|
// Initialize Debug Level Protocol.
|
||||||
//
|
//
|
||||||
mDebugLevel.DebugLevel = PcdGet32(PcdDebugPrintErrorLevel);
|
mDebugLevel.DebugLevel = PcdGet32(PcdDebugPrintErrorLevel);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Install Debug Level Protocol
|
// Install Debug Level Protocol.
|
||||||
//
|
//
|
||||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||||
&ImageHandle,
|
&ImageHandle,
|
||||||
&gEfiDebugLevelProtocolGuid, &mDebugLevel,
|
&gEfiDebugLevelProtocolGuid,
|
||||||
|
&mDebugLevel,
|
||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Set flag to show that the Debug Level Protocol has been installed
|
// Set flag to show that the Debug Level Protocol has been installed.
|
||||||
//
|
//
|
||||||
mDebugLevelInstalled = TRUE;
|
mDebugLevelInstalled = TRUE;
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Prints a debug message to the debug output device if the specified error level is enabled.
|
||||||
|
|
||||||
|
If any bit in ErrorLevel is also set in PcdDebugPrintErrorLevel, then print
|
||||||
|
the message specified by Format and the associated variable argument list to
|
||||||
|
the debug output device.
|
||||||
|
|
||||||
|
If Format is NULL, then ASSERT().
|
||||||
|
|
||||||
|
@param ErrorLevel The error level of the debug message.
|
||||||
|
@param Format Format string for the debug message to print.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugPrint (
|
DebugPrint (
|
||||||
IN UINTN ErrorLevel,
|
IN UINTN ErrorLevel,
|
||||||
IN CHAR8 *Format,
|
IN CONST CHAR8 *Format,
|
||||||
...
|
...
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Wrapper for DebugVPrint ()
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
ErrorLevel - If error level is set do the debug print.
|
|
||||||
|
|
||||||
Format - String to use for the print, followed by Print arguments.
|
|
||||||
|
|
||||||
... - Print arguments.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
CHAR16 Buffer[0x100];
|
CHAR16 Buffer[MAX_DEBUG_MESSAGE_LENGTH];
|
||||||
CHAR16 UnicodeBuffer[0x100];
|
|
||||||
UINT32 Index;
|
|
||||||
VA_LIST Marker;
|
VA_LIST Marker;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check to see if STDERR is avilable
|
// If Format is NULL, then ASSERT().
|
||||||
//
|
//
|
||||||
if (gST->StdErr == NULL) {
|
ASSERT (Format != NULL);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check driver Debug Level value and global debug level
|
// Check driver Debug Level value and global debug level
|
||||||
@ -114,83 +108,80 @@ Returns:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// BUGBUG: Need print that take CHAR8 Format and returns CHAR16 Buffer
|
|
||||||
//
|
|
||||||
for (Index = 0; Format[Index] != 0; Index++) {
|
|
||||||
UnicodeBuffer[Index] = Format[Index];
|
|
||||||
}
|
|
||||||
UnicodeBuffer[Index] = Format[Index];
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Convert the DEBUG() message to a Unicode String
|
// Convert the DEBUG() message to a Unicode String
|
||||||
//
|
//
|
||||||
VA_START (Marker, Format);
|
VA_START (Marker, Format);
|
||||||
UnicodeVSPrint (Buffer, sizeof (Buffer), UnicodeBuffer, Marker);
|
UnicodeVSPrintAsciiFormat (Buffer, sizeof (Buffer), Format, Marker);
|
||||||
VA_END (Marker);
|
VA_END (Marker);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Send the print string to the Standard Error device
|
// Send the print string to the Standard Error device if STDERR is available.
|
||||||
//
|
//
|
||||||
gST->StdErr->OutputString (gST->StdErr, Buffer);
|
if (gST->StdErr != NULL) {
|
||||||
|
gST->StdErr->OutputString (gST->StdErr, Buffer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Prints an assert message containing a filename, line number, and description.
|
||||||
|
This may be followed by a breakpoint or a dead loop.
|
||||||
|
|
||||||
|
Print a message of the form "ASSERT <FileName>(<LineNumber>): <Description>\n"
|
||||||
|
to the debug output device. If DEBUG_PROPERTY_ASSERT_BREAKPOINT_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set then CpuBreakpoint() is called. Otherwise, if
|
||||||
|
DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED bit of PcdDebugProperyMask is set then
|
||||||
|
CpuDeadLoop() is called. If neither of these bits are set, then this function
|
||||||
|
returns immediately after the message is printed to the debug output device.
|
||||||
|
DebugAssert() must actively prevent recusrsion. If DebugAssert() is called while
|
||||||
|
processing another DebugAssert(), then DebugAssert() must return immediately.
|
||||||
|
|
||||||
|
If FileName is NULL, then a <FileName> string of "(NULL) Filename" is printed.
|
||||||
|
|
||||||
|
If Description is NULL, then a <Description> string of "(NULL) Description" is printed.
|
||||||
|
|
||||||
|
@param FileName Pointer to the name of the source file that generated the assert condition.
|
||||||
|
@param LineNumber The line number in the source file that generated the assert condition
|
||||||
|
@param Description Pointer to the description of the assert condition.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugAssert (
|
DebugAssert (
|
||||||
IN CHAR8 *FileName,
|
IN CONST CHAR8 *FileName,
|
||||||
IN UINTN LineNumber,
|
IN UINTN LineNumber,
|
||||||
IN CHAR8 *Description
|
IN CONST CHAR8 *Description
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Worker function for ASSERT(). If Error Logging hub is loaded log ASSERT
|
|
||||||
information. If Error Logging hub is not loaded CpuBreakpoint ().
|
|
||||||
|
|
||||||
We use UINT64 buffers due to IPF alignment concerns.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
FileName - File name of failing routine.
|
|
||||||
|
|
||||||
LineNumber - Line number of failing ASSERT().
|
|
||||||
|
|
||||||
Description - Descritption, usally the assertion,
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
CHAR16 Buffer[0x100];
|
CHAR16 Buffer[MAX_DEBUG_MESSAGE_LENGTH];
|
||||||
|
|
||||||
//
|
|
||||||
// Check to see if STDERR is avilable
|
|
||||||
//
|
|
||||||
if (gST->StdErr == NULL) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Generate the ASSERT() message in Unicode format
|
// Generate the ASSERT() message in Unicode format
|
||||||
//
|
//
|
||||||
UnicodeSPrint (Buffer, sizeof (Buffer), (CHAR16 *)L"ASSERT %s(%d): %s\n", FileName, LineNumber, Description);
|
UnicodeSPrintAsciiFormat (Buffer, sizeof (Buffer), "ASSERT %s(%d): %s\n", FileName, LineNumber, Description);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Send the print string to the Standard Error device
|
// Send the print string to the Standard Error device if STDERR is available.
|
||||||
//
|
//
|
||||||
gST->StdErr->OutputString (gST->StdErr, Buffer);
|
if (gST->StdErr != NULL) {
|
||||||
|
gST->StdErr->OutputString (gST->StdErr, Buffer);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Put break point in module that contained the error.
|
// Generate a Breakpoint, DeadLoop, or NOP based on PCD settings
|
||||||
//
|
//
|
||||||
CpuBreakpoint ();
|
if ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_ASSERT_BREAKPOINT_ENABLED) != 0) {
|
||||||
|
CpuBreakpoint ();
|
||||||
|
} else if ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED) != 0) {
|
||||||
|
CpuDeadLoop ();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
Fills a target buffer with PcdDebugClearMemoryValue, and returns the target buffer.
|
Fills a target buffer with PcdDebugClearMemoryValue, and returns the target buffer.
|
||||||
|
|
||||||
This function fills Length bytes of Buffer with the value specified by
|
This function fills Length bytes of Buffer with the value specified by
|
||||||
@ -200,8 +191,8 @@ Returns:
|
|||||||
|
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to fill with PcdDebugClearMemoryValue.
|
@param Buffer Pointer to the target buffer to fill with PcdDebugClearMemoryValue.
|
||||||
@param Length Number of bytes in Buffer to fill with zeros PcdDebugClearMemoryValue.
|
@param Length Number of bytes in Buffer to fill with zeros PcdDebugClearMemoryValue.
|
||||||
|
|
||||||
@return Buffer
|
@return Buffer
|
||||||
|
|
||||||
@ -213,11 +204,29 @@ DebugClearMemory (
|
|||||||
IN UINTN Length
|
IN UINTN Length
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// SetMem (Buffer, Length, PcdGet8(PcdDebugClearMemoryValue));
|
//
|
||||||
SetMem (Buffer, Length, 0xAF);
|
// If Buffer is NULL, then ASSERT().
|
||||||
return Buffer;
|
//
|
||||||
|
ASSERT (Buffer != NULL);
|
||||||
|
|
||||||
|
//
|
||||||
|
// SetMem() checks for the the ASSERT() condition on Length and returns Buffer
|
||||||
|
//
|
||||||
|
return SetMem (Buffer, Length, PcdGet8(PcdDebugClearMemoryValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Returns TRUE if ASSERT() macros are enabled.
|
||||||
|
|
||||||
|
This function returns TRUE if the DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set. Otherwise FALSE is returned.
|
||||||
|
|
||||||
|
@retval TRUE The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is set.
|
||||||
|
@retval FALSE The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is clear.
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugAssertEnabled (
|
DebugAssertEnabled (
|
||||||
@ -227,6 +236,18 @@ DebugAssertEnabled (
|
|||||||
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED) != 0);
|
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Returns TRUE if DEBUG()macros are enabled.
|
||||||
|
|
||||||
|
This function returns TRUE if the DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set. Otherwise FALSE is returned.
|
||||||
|
|
||||||
|
@retval TRUE The DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of PcdDebugProperyMask is set.
|
||||||
|
@retval FALSE The DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of PcdDebugProperyMask is clear.
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugPrintEnabled (
|
DebugPrintEnabled (
|
||||||
@ -236,6 +257,18 @@ DebugPrintEnabled (
|
|||||||
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_PRINT_ENABLED) != 0);
|
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_PRINT_ENABLED) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Returns TRUE if DEBUG_CODE()macros are enabled.
|
||||||
|
|
||||||
|
This function returns TRUE if the DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set. Otherwise FALSE is returned.
|
||||||
|
|
||||||
|
@retval TRUE The DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of PcdDebugProperyMask is set.
|
||||||
|
@retval FALSE The DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of PcdDebugProperyMask is clear.
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugCodeEnabled (
|
DebugCodeEnabled (
|
||||||
@ -245,6 +278,18 @@ DebugCodeEnabled (
|
|||||||
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_CODE_ENABLED) != 0);
|
return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_CODE_ENABLED) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Returns TRUE if DEBUG_CLEAR_MEMORY()macro is enabled.
|
||||||
|
|
||||||
|
This function returns TRUE if the DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of
|
||||||
|
PcdDebugProperyMask is set. Otherwise FALSE is returned.
|
||||||
|
|
||||||
|
@retval TRUE The DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of PcdDebugProperyMask is set.
|
||||||
|
@retval FALSE The DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of PcdDebugProperyMask is clear.
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DebugClearMemoryEnabled (
|
DebugClearMemoryEnabled (
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<ModuleDefinitions>
|
<ModuleDefinitions>
|
||||||
<SupportedArchitectures>IA32 X64 IPF EBC</SupportedArchitectures>
|
<SupportedArchitectures>IA32 X64 IPF EBC</SupportedArchitectures>
|
||||||
<BinaryModule>false</BinaryModule>
|
<BinaryModule>false</BinaryModule>
|
||||||
<OutputFileBasename>EdkUefiDebugLibStdErr</OutputFileBasename>
|
<OutputFileBasename>EdkUefiDebugLibConOut</OutputFileBasename>
|
||||||
</ModuleDefinitions>
|
</ModuleDefinitions>
|
||||||
<LibraryClassDefinitions>
|
<LibraryClassDefinitions>
|
||||||
<LibraryClass Usage="ALWAYS_PRODUCED">
|
<LibraryClass Usage="ALWAYS_PRODUCED">
|
||||||
@ -53,6 +53,11 @@
|
|||||||
<ProtocolCName>DebugLevel</ProtocolCName>
|
<ProtocolCName>DebugLevel</ProtocolCName>
|
||||||
</Protocol>
|
</Protocol>
|
||||||
</Protocols>
|
</Protocols>
|
||||||
|
<Guids>
|
||||||
|
<GuidCNames Usage="ALWAYS_CONSUMED">
|
||||||
|
<GuidCName>StatusCodeDataTypeDebug</GuidCName>
|
||||||
|
</GuidCNames>
|
||||||
|
</Guids>
|
||||||
<Externs>
|
<Externs>
|
||||||
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
|
||||||
<Specification>EDK_RELEASE_VERSION 0x00090000</Specification>
|
<Specification>EDK_RELEASE_VERSION 0x00090000</Specification>
|
||||||
@ -66,6 +71,11 @@
|
|||||||
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
|
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
|
||||||
|
|
||||||
<HelpText/>
|
<HelpText/>
|
||||||
|
</PcdEntry>
|
||||||
|
<PcdEntry PcdItemType="FIXED_AT_BUILD">
|
||||||
|
<C_Name>PcdDebugClearMemoryValue</C_Name>
|
||||||
|
<TokenSpaceGuidCName>FIX_ME_PcdDebugClearMemoryValue</TokenSpaceGuidCName>
|
||||||
|
<HelpText/>
|
||||||
</PcdEntry>
|
</PcdEntry>
|
||||||
<PcdEntry PcdItemType="PATCHABLE_IN_MODULE">
|
<PcdEntry PcdItemType="PATCHABLE_IN_MODULE">
|
||||||
<C_Name>PcdDebugPrintErrorLevel</C_Name>
|
<C_Name>PcdDebugPrintErrorLevel</C_Name>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -31,7 +31,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>HiiLib</Library>
|
<Library>HiiLib</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
|
@ -30,7 +30,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiRuntimeServicesTableLib</Library>
|
<Library>UefiRuntimeServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -30,7 +30,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiRuntimeServicesTableLib</Library>
|
<Library>UefiRuntimeServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
||||||
|
@ -30,7 +30,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
||||||
|
@ -30,7 +30,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiRuntimeServicesTableLib</Library>
|
<Library>UefiRuntimeServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -30,7 +30,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -30,7 +30,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>DxeHobLib</Library>
|
<Library>DxeHobLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
|
@ -30,7 +30,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeServicesTableLib</Library>
|
<Library>DxeServicesTableLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -29,7 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
</MbdHeader>
|
</MbdHeader>
|
||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -33,7 +33,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>DxeHobLib</Library>
|
<Library>DxeHobLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>HiiLib</Library>
|
<Library>HiiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
||||||
|
@ -30,7 +30,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
|
@ -31,7 +31,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiRuntimeServicesTableLib</Library>
|
<Library>UefiRuntimeServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
|
@ -33,7 +33,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>BasePrintLib</Library>
|
<Library>BasePrintLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeMemoryAllocationLib</Library>
|
<Library>DxeMemoryAllocationLib</Library>
|
||||||
|
@ -31,7 +31,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiRuntimeServicesTableLib</Library>
|
<Library>UefiRuntimeServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
|
@ -30,7 +30,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Libraries>
|
<Libraries>
|
||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>UefiRuntimeServicesTableLib</Library>
|
<Library>UefiRuntimeServicesTableLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
|
@ -32,7 +32,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>HiiLib</Library>
|
<Library>HiiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
||||||
|
@ -32,7 +32,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>UefiRuntimeServicesTableLib</Library>
|
<Library>UefiRuntimeServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeServicesTableLib</Library>
|
<Library>DxeServicesTableLib</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
|
@ -31,7 +31,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
<Library>UefiDebugLibStdErr</Library>
|
<Library>UefiDebugLibStdErr</Library>
|
||||||
|
@ -31,7 +31,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
<Library>UefiDebugLibStdErr</Library>
|
<Library>UefiDebugLibStdErr</Library>
|
||||||
|
@ -31,7 +31,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
<Library>UefiDebugLibStdErr</Library>
|
<Library>UefiDebugLibStdErr</Library>
|
||||||
|
@ -31,7 +31,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
<Library>UefiDebugLibStdErr</Library>
|
<Library>UefiDebugLibStdErr</Library>
|
||||||
|
@ -31,7 +31,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
<Library>UefiDebugLibStdErr</Library>
|
<Library>UefiDebugLibStdErr</Library>
|
||||||
|
@ -31,7 +31,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>UefiBootServicesTableLib</Library>
|
<Library>UefiBootServicesTableLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>UefiDriverModelLib</Library>
|
<Library>UefiDriverModelLib</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
|
@ -32,7 +32,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>DxeHobLib</Library>
|
<Library>DxeHobLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
||||||
|
@ -33,7 +33,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>DxeWinNtLib</Library>
|
<Library>DxeWinNtLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
||||||
|
@ -32,7 +32,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>DxeHobLib</Library>
|
<Library>DxeHobLib</Library>
|
||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
||||||
|
@ -34,7 +34,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>HiiLib</Library>
|
<Library>HiiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
<Library>DxeWinNtLib</Library>
|
<Library>DxeWinNtLib</Library>
|
||||||
|
@ -32,7 +32,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>HiiLib</Library>
|
<Library>HiiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
||||||
|
@ -32,7 +32,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<Library>BaseLib</Library>
|
<Library>BaseLib</Library>
|
||||||
<Library>DxeHobLib</Library>
|
<Library>DxeHobLib</Library>
|
||||||
<Library>UefiLib</Library>
|
<Library>UefiLib</Library>
|
||||||
<Library>UefiMemoryLib</Library>
|
<Library>DxeMemoryLib</Library>
|
||||||
<Library>UefiDriverEntryPoint</Library>
|
<Library>UefiDriverEntryPoint</Library>
|
||||||
<Library>DxeReportStatusCodeLib</Library>
|
<Library>DxeReportStatusCodeLib</Library>
|
||||||
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
<Library>PeiDxeDebugLibReportStatusCode</Library>
|
||||||
|
@ -6315,6 +6315,7 @@
|
|||||||
|
|
||||||
<DatumType>UINT8</DatumType>
|
<DatumType>UINT8</DatumType>
|
||||||
<MaxDatumSize>1</MaxDatumSize>
|
<MaxDatumSize>1</MaxDatumSize>
|
||||||
|
<Value>0x07</Value>
|
||||||
</PcdData>
|
</PcdData>
|
||||||
<PcdData ItemType="FIXED_AT_BUILD">
|
<PcdData ItemType="FIXED_AT_BUILD">
|
||||||
<C_Name>PcdMaximumLinkedListLength</C_Name>
|
<C_Name>PcdMaximumLinkedListLength</C_Name>
|
||||||
|
@ -48,7 +48,7 @@ CopyMem (
|
|||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Memory to set.
|
@param Buffer Memory to set.
|
||||||
@param Length Number of bytes to set
|
@param Length Number of bytes to set.
|
||||||
@param Value Value of the set operation.
|
@param Value Value of the set operation.
|
||||||
|
|
||||||
@return Buffer.
|
@return Buffer.
|
||||||
@ -175,7 +175,6 @@ ZeroMem (
|
|||||||
If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT().
|
||||||
If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
|
||||||
|
|
||||||
|
|
||||||
@param DestinationBuffer Pointer to the destination buffer to compare.
|
@param DestinationBuffer Pointer to the destination buffer to compare.
|
||||||
@param SourceBuffer Pointer to the source buffer to compare.
|
@param SourceBuffer Pointer to the source buffer to compare.
|
||||||
@param Length Number of bytes to compare.
|
@param Length Number of bytes to compare.
|
||||||
@ -229,6 +228,7 @@ ScanMem8 (
|
|||||||
then NULL is returned. If Length is 0, then NULL is returned.
|
then NULL is returned. If Length is 0, then NULL is returned.
|
||||||
If Length > 0 and Buffer is NULL, then ASSERT().
|
If Length > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is not aligned on a 16-bit boundary, then ASSERT().
|
If Buffer is not aligned on a 16-bit boundary, then ASSERT().
|
||||||
|
If Length is not aligned on a 16-bit boundary, then ASSERT().
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to scan.
|
@param Buffer Pointer to the target buffer to scan.
|
||||||
@ -256,6 +256,7 @@ ScanMem16 (
|
|||||||
then NULL is returned. If Length is 0, then NULL is returned.
|
then NULL is returned. If Length is 0, then NULL is returned.
|
||||||
If Length > 0 and Buffer is NULL, then ASSERT().
|
If Length > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
|
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
|
||||||
|
If Length is not aligned on a 32-bit boundary, then ASSERT().
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to scan.
|
@param Buffer Pointer to the target buffer to scan.
|
||||||
@ -283,6 +284,7 @@ ScanMem32 (
|
|||||||
then NULL is returned. If Length is 0, then NULL is returned.
|
then NULL is returned. If Length is 0, then NULL is returned.
|
||||||
If Length > 0 and Buffer is NULL, then ASSERT().
|
If Length > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
|
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
|
||||||
|
If Length is not aligned on a 64-bit boundary, then ASSERT().
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to scan.
|
@param Buffer Pointer to the target buffer to scan.
|
||||||
@ -353,7 +355,8 @@ CompareGuid (
|
|||||||
GUID in the target buffer is returned. If no match is found, then NULL is returned.
|
GUID in the target buffer is returned. If no match is found, then NULL is returned.
|
||||||
If Length is 0, then NULL is returned.
|
If Length is 0, then NULL is returned.
|
||||||
If Length > 0 and Buffer is NULL, then ASSERT().
|
If Length > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
|
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
|
||||||
|
If Length is not aligned on a 128-bit boundary, then ASSERT().
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to scan.
|
@param Buffer Pointer to the target buffer to scan.
|
||||||
|
@ -18,11 +18,12 @@
|
|||||||
#define __DEVICE_PATH_LIB_H__
|
#define __DEVICE_PATH_LIB_H__
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This function returns the size, in bytes,
|
Returns the size of a device path in bytes.
|
||||||
of the device path data structure specified by DevicePath.
|
|
||||||
If DevicePath is NULL, then 0 is returned.
|
|
||||||
|
|
||||||
@param DevicePath A pointer to a device path data structure.
|
This function returns the size, in bytes, of the device path data structure specified by
|
||||||
|
DevicePath including the end of device path node. If DevicePath is NULL, then 0 is returned.
|
||||||
|
|
||||||
|
@param DevicePath A pointer to a device path data structure.
|
||||||
|
|
||||||
@return The size of a device path in bytes.
|
@return The size of a device path in bytes.
|
||||||
|
|
||||||
@ -31,166 +32,220 @@ UINTN
|
|||||||
EFIAPI
|
EFIAPI
|
||||||
GetDevicePathSize (
|
GetDevicePathSize (
|
||||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This function allocates space for a new copy of the device path
|
Creates a new device path by appending a second device path to a first device path.
|
||||||
specified by DevicePath.
|
|
||||||
|
|
||||||
@param DevicePath A pointer to a device path data structure.
|
This function allocates space for a new copy of the device path specified by DevicePath. If
|
||||||
|
DevicePath is NULL, then NULL is returned. If the memory is successfully allocated, then the
|
||||||
|
contents of DevicePath are copied to the newly allocated buffer, and a pointer to that buffer
|
||||||
|
is returned. Otherwise, NULL is returned.
|
||||||
|
|
||||||
|
@param DevicePath A pointer to a device path data structure.
|
||||||
|
|
||||||
@return The duplicated device path.
|
@return A pointer to the duplicated device path.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_DEVICE_PATH_PROTOCOL *
|
EFI_DEVICE_PATH_PROTOCOL *
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DuplicateDevicePath (
|
DuplicateDevicePath (
|
||||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This function appends the device path SecondDevicePath
|
Creates a new device path by appending a second device path to a first device path.
|
||||||
to every device path instance in FirstDevicePath.
|
|
||||||
|
|
||||||
@param FirstDevicePath A pointer to a device path data structure.
|
This function creates a new device path by appending a copy of SecondDevicePath to a copy of
|
||||||
|
FirstDevicePath in a newly allocated buffer. Only the end-of-device-path device node from
|
||||||
@param SecondDevicePath A pointer to a device path data structure.
|
SecondDevicePath is retained. The newly created device path is returned.
|
||||||
|
If FirstDevicePath is NULL, then it is ignored, and a duplicate of SecondDevicePath is returned.
|
||||||
|
If SecondDevicePath is NULL, then it is ignored, and a duplicate of FirstDevicePath is returned.
|
||||||
|
If both FirstDevicePath and SecondDevicePath are NULL, then NULL is returned.
|
||||||
|
If there is not enough memory for the newly allocated buffer, then NULL is returned.
|
||||||
|
The memory for the new device path is allocated from EFI boot services memory. It is the
|
||||||
|
responsibility of the caller to free the memory allocated.
|
||||||
|
|
||||||
@return
|
@param FirstDevicePath A pointer to a device path data structure.
|
||||||
A pointer to the new device path is returned.
|
@param SecondDevicePath A pointer to a device path data structure.
|
||||||
NULL is returned if space for the new device path could not be allocated from pool.
|
|
||||||
It is up to the caller to free the memory used by FirstDevicePath and SecondDevicePath
|
@return A pointer to the new device path.
|
||||||
if they are no longer needed.
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_DEVICE_PATH_PROTOCOL *
|
EFI_DEVICE_PATH_PROTOCOL *
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AppendDevicePath (
|
AppendDevicePath (
|
||||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *FirstDevicePath,
|
IN CONST EFI_DEVICE_PATH_PROTOCOL *FirstDevicePath, OPTIONAL
|
||||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *SecondDevicePath
|
IN CONST EFI_DEVICE_PATH_PROTOCOL *SecondDevicePath OPTIONAL
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This function appends the device path node SecondDevicePath
|
Creates a new path by appending the device node to the device path.
|
||||||
to every device path instance in FirstDevicePath.
|
|
||||||
|
|
||||||
@param DevicePath A pointer to a device path data structure.
|
This function creates a new device path by appending a copy of the device node specified by
|
||||||
|
DevicePathNode to a copy of the device path specified by DevicePath in an allocated buffer.
|
||||||
@param DevicePathNode A pointer to a single device path node.
|
The end-of-device-path device node is moved after the end of the appended device node.
|
||||||
|
If DevicePath is NULL, then NULL is returned.
|
||||||
|
If DevicePathNode is NULL, then NULL is returned.
|
||||||
|
If there is not enough memory to allocate space for the new device path, then NULL is returned.
|
||||||
|
The memory is allocated from EFI boot services memory. It is the responsibility of the caller to
|
||||||
|
free the memory allocated.
|
||||||
|
|
||||||
|
@param DevicePath A pointer to a device path data structure.
|
||||||
|
@param DevicePathNode A pointer to a single device path node.
|
||||||
|
|
||||||
@return A pointer to the new device path.
|
@return A pointer to the new device path.
|
||||||
If there is not enough temporary pool memory available to complete this function,
|
|
||||||
then NULL is returned.
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_DEVICE_PATH_PROTOCOL *
|
EFI_DEVICE_PATH_PROTOCOL *
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AppendDevicePathNode (
|
AppendDevicePathNode (
|
||||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath, OPTIONAL
|
||||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathNode
|
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathNode OPTIONAL
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This function appends the device path instance Instance to the device path Source.
|
Creates a new device path by appending the specified device path instance to the specified device
|
||||||
If Source is NULL, then a new device path with one instance is created.
|
path.
|
||||||
|
|
||||||
|
This function creates a new device path by appending a copy of the device path instance specified
|
||||||
|
by DevicePathInstance to a copy of the device path secified by DevicePath in a allocated buffer.
|
||||||
|
The end-of-device-path device node is moved after the end of the appended device path instance
|
||||||
|
and a new end-of-device-path-instance node is inserted between.
|
||||||
|
If DevicePath is NULL, then a copy if DevicePathInstance is returned.
|
||||||
|
If DevicePathInstance is NULL, then NULL is returned.
|
||||||
|
If there is not enough memory to allocate space for the new device path, then NULL is returned.
|
||||||
|
The memory is allocated from EFI boot services memory. It is the responsibility of the caller to
|
||||||
|
free the memory allocated.
|
||||||
|
|
||||||
|
@param DevicePath A pointer to a device path data structure.
|
||||||
|
@param DevicePathInstance A pointer to a device path instance.
|
||||||
|
|
||||||
@param Source A pointer to a device path data structure.
|
@return A pointer to the new device path.
|
||||||
@param Instance A pointer to a device path instance.
|
|
||||||
|
|
||||||
@return
|
|
||||||
A pointer to the new device path.
|
|
||||||
If there is not enough temporary pool memory available to complete this function,
|
|
||||||
then NULL is returned.
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_DEVICE_PATH_PROTOCOL *
|
EFI_DEVICE_PATH_PROTOCOL *
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AppendDevicePathInstance (
|
AppendDevicePathInstance (
|
||||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *Source,
|
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath, OPTIONAL
|
||||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *Instance
|
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathInstance OPTIONAL
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Function retrieves the next device path instance from a device path data structure.
|
Creates a copy of the current device path instance and returns a pointer to the next device path
|
||||||
|
instance.
|
||||||
|
|
||||||
@param DevicePath A pointer to a device path data structure.
|
This function creates a copy of the current device path instance. It also updates DevicePath to
|
||||||
|
point to the next device path instance in the device path (or NULL if no more) and updates Size
|
||||||
@param Size A pointer to the size of a device path instance in bytes.
|
to hold the size of the device path instance copy.
|
||||||
|
If DevicePath is NULL, then NULL is returned.
|
||||||
|
If there is not enough memory to allocate space for the new device path, then NULL is returned.
|
||||||
|
The memory is allocated from EFI boot services memory. It is the responsibility of the caller to
|
||||||
|
free the memory allocated.
|
||||||
|
If Size is NULL, then ASSERT().
|
||||||
|
|
||||||
|
@param DevicePath On input, this holds the pointer to the current device path
|
||||||
|
instance. On output, this holds the pointer to the next device
|
||||||
|
path instance or NULL if there are no more device path
|
||||||
|
instances in the device path pointer to a device path data
|
||||||
|
structure.
|
||||||
|
@param Size On output, this holds the size of the device path instance, in
|
||||||
|
bytes or zero, if DevicePath is NULL.
|
||||||
|
|
||||||
@return
|
@return A pointer to the current device path instance.
|
||||||
This function returns a pointer to the current device path instance.
|
|
||||||
In addition, it returns the size in bytes of the current device path instance in Size,
|
|
||||||
and a pointer to the next device path instance in DevicePath.
|
|
||||||
If there are no more device path instances in DevicePath, then DevicePath will be set to NULL.
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_DEVICE_PATH_PROTOCOL *
|
EFI_DEVICE_PATH_PROTOCOL *
|
||||||
EFIAPI
|
EFIAPI
|
||||||
GetNextDevicePathInstance (
|
GetNextDevicePathInstance (
|
||||||
IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
|
IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
|
||||||
OUT UINTN *Size
|
OUT UINTN *Size
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Return TRUE is this is a multi instance device path.
|
Creates a copy of the current device path instance and returns a pointer to the next device path
|
||||||
|
instance.
|
||||||
|
|
||||||
@param DevicePath A pointer to a device path data structure.
|
This function creates a new device node in a newly allocated buffer of size NodeLength and
|
||||||
|
initializes the device path node header with NodeType and NodeSubType. The new device path node
|
||||||
|
is returned.
|
||||||
|
If NodeLength is smaller than a device path header, then NULL is returned.
|
||||||
|
If there is not enough memory to allocate space for the new device path, then NULL is returned.
|
||||||
|
The memory is allocated from EFI boot services memory. It is the responsibility of the caller to
|
||||||
|
free the memory allocated.
|
||||||
|
|
||||||
@retval TRUE If DevicePath is multi-instance.
|
@param NodeType The device node type for the new device node.
|
||||||
@retval FALSE If DevicePath is not multi-instance or DevicePath is NULL.
|
@param NodeSubType The device node sub-type for the new device node.
|
||||||
|
@param NodeLength The length of the new device node.
|
||||||
|
|
||||||
|
@return The new device path.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *
|
||||||
|
EFIAPI
|
||||||
|
CreateDeviceNode (
|
||||||
|
IN UINT8 NodeType,
|
||||||
|
IN UINT8 NodeSubType,
|
||||||
|
IN UINT16 NodeLength
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Determines if a device path is single or multi-instance.
|
||||||
|
|
||||||
|
This function returns TRUE if the device path specified by DevicePath is multi-instance.
|
||||||
|
Otherwise, FALSE is returned. If DevicePath is NULL, then FALSE is returned.
|
||||||
|
|
||||||
|
@param DevicePath A pointer to a device path data structure.
|
||||||
|
|
||||||
|
@retval TRUE DevicePath is multi-instance.
|
||||||
|
@retval FALSE DevicePath is not multi-instance or DevicePath is NULL.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
IsDevicePathMultiInstance (
|
IsDevicePathMultiInstance (
|
||||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This function retrieves the device path protocol from a handle.
|
Retrieves the device path protocol from a handle.
|
||||||
|
|
||||||
@param Handle The handle from which to retrieve the device path protocol.
|
This function returns the device path protocol from the handle specified by Handle. If Handle is
|
||||||
|
NULL or Handle does not contain a device path protocol, then NULL is returned.
|
||||||
|
|
||||||
|
@param Handle The handle from which to retrieve the device path protocol.
|
||||||
|
|
||||||
@return
|
@return The device path protocol from the handle specified by Handle.
|
||||||
This function returns the device path protocol from the handle specified by Handle.
|
|
||||||
If Handle is NULL or Handle does not contain a device path protocol, then NULL is returned.
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_DEVICE_PATH_PROTOCOL *
|
EFI_DEVICE_PATH_PROTOCOL *
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DevicePathFromHandle (
|
DevicePathFromHandle (
|
||||||
IN EFI_HANDLE Handle
|
IN EFI_HANDLE Handle
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This function allocates a device path for a file and appends it to an existing device path.
|
Allocates a device path for a file and appends it to an existing device path.
|
||||||
|
|
||||||
@param Device A pointer to a device handle. This parameter is optional and may be NULL.
|
If Device is a valid device handle that contains a device path protocol, then a device path for
|
||||||
@param FileName A pointer to a Null-terminated Unicode string.
|
the file specified by FileName is allocated and appended to the device path associated with the
|
||||||
|
handle Device. The allocated device path is returned. If Device is NULL or Device is a handle
|
||||||
|
that does not support the device path protocol, then a device path containing a single device
|
||||||
|
path node for the file specified by FileName is allocated and returned.
|
||||||
|
If FileName is NULL, then ASSERT().
|
||||||
|
|
||||||
@return
|
@param Device A pointer to a device handle. This parameter is optional and
|
||||||
If Device is a valid device handle that contains a device path protocol,
|
may be NULL.
|
||||||
then a device path for the file specified by FileName is allocated
|
@param FileName A pointer to a Null-terminated Unicode string.
|
||||||
and appended to the device path associated with the handle Device. The allocated device path is returned.
|
|
||||||
If Device is NULL or Device is a handle that does not support the device path protocol,
|
@return The allocated device path.
|
||||||
then a device path containing a single device path node for the file specified by FileName
|
|
||||||
is allocated and returned.
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_DEVICE_PATH_PROTOCOL *
|
EFI_DEVICE_PATH_PROTOCOL *
|
||||||
EFIAPI
|
EFIAPI
|
||||||
FileDevicePath (
|
FileDevicePath (
|
||||||
IN EFI_HANDLE Device, OPTIONAL
|
IN EFI_HANDLE Device, OPTIONAL
|
||||||
IN CONST CHAR16 *FileName
|
IN CONST CHAR16 *FileName
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -996,8 +996,7 @@ PciCf8BitFieldAndThenOr32 (
|
|||||||
If StartAddress > 0x0FFFFFFF, then ASSERT().
|
If StartAddress > 0x0FFFFFFF, then ASSERT().
|
||||||
If the register specified by StartAddress >= 0x100, then ASSERT().
|
If the register specified by StartAddress >= 0x100, then ASSERT().
|
||||||
If ((StartAddress & 0xFFF) + Size) > 0x100, then ASSERT().
|
If ((StartAddress & 0xFFF) + Size) > 0x100, then ASSERT().
|
||||||
If (StartAddress + Size - 1) > 0x0FFFFFFF, then ASSERT().
|
If Size > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is NULL, then ASSERT().
|
|
||||||
|
|
||||||
@param StartAddress Starting address that encodes the PCI Bus, Device,
|
@param StartAddress Starting address that encodes the PCI Bus, Device,
|
||||||
Function and Register.
|
Function and Register.
|
||||||
@ -1030,8 +1029,7 @@ PciCf8ReadBuffer (
|
|||||||
If StartAddress > 0x0FFFFFFF, then ASSERT().
|
If StartAddress > 0x0FFFFFFF, then ASSERT().
|
||||||
If the register specified by StartAddress >= 0x100, then ASSERT().
|
If the register specified by StartAddress >= 0x100, then ASSERT().
|
||||||
If ((StartAddress & 0xFFF) + Size) > 0x100, then ASSERT().
|
If ((StartAddress & 0xFFF) + Size) > 0x100, then ASSERT().
|
||||||
If (StartAddress + Size - 1) > 0x0FFFFFFF, then ASSERT().
|
If Size > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is NULL, then ASSERT().
|
|
||||||
|
|
||||||
@param StartAddress Starting address that encodes the PCI Bus, Device,
|
@param StartAddress Starting address that encodes the PCI Bus, Device,
|
||||||
Function and Register.
|
Function and Register.
|
||||||
|
@ -965,8 +965,7 @@ PciExpressBitFieldAndThenOr32 (
|
|||||||
|
|
||||||
If StartAddress > 0x0FFFFFFF, then ASSERT().
|
If StartAddress > 0x0FFFFFFF, then ASSERT().
|
||||||
If ((StartAddress & 0xFFF) + Size) > 0x1000, then ASSERT().
|
If ((StartAddress & 0xFFF) + Size) > 0x1000, then ASSERT().
|
||||||
If (StartAddress + Size - 1) > 0x0FFFFFFF, then ASSERT().
|
If Size > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is NULL, then ASSERT().
|
|
||||||
|
|
||||||
@param StartAddress Starting address that encodes the PCI Bus, Device,
|
@param StartAddress Starting address that encodes the PCI Bus, Device,
|
||||||
Function and Register.
|
Function and Register.
|
||||||
@ -998,8 +997,7 @@ PciExpressReadBuffer (
|
|||||||
|
|
||||||
If StartAddress > 0x0FFFFFFF, then ASSERT().
|
If StartAddress > 0x0FFFFFFF, then ASSERT().
|
||||||
If ((StartAddress & 0xFFF) + Size) > 0x1000, then ASSERT().
|
If ((StartAddress & 0xFFF) + Size) > 0x1000, then ASSERT().
|
||||||
If (StartAddress + Size - 1) > 0x0FFFFFFF, then ASSERT().
|
If Size > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is NULL, then ASSERT().
|
|
||||||
|
|
||||||
@param StartAddress Starting address that encodes the PCI Bus, Device,
|
@param StartAddress Starting address that encodes the PCI Bus, Device,
|
||||||
Function and Register.
|
Function and Register.
|
||||||
|
@ -960,8 +960,7 @@ PciBitFieldAndThenOr32 (
|
|||||||
|
|
||||||
If StartAddress > 0x0FFFFFFF, then ASSERT().
|
If StartAddress > 0x0FFFFFFF, then ASSERT().
|
||||||
If ((StartAddress & 0xFFF) + Size) > 0x1000, then ASSERT().
|
If ((StartAddress & 0xFFF) + Size) > 0x1000, then ASSERT().
|
||||||
If (StartAddress + Size - 1) > 0x0FFFFFFF, then ASSERT().
|
If Size > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is NULL, then ASSERT().
|
|
||||||
|
|
||||||
@param StartAddress Starting address that encodes the PCI Bus, Device,
|
@param StartAddress Starting address that encodes the PCI Bus, Device,
|
||||||
Function and Register.
|
Function and Register.
|
||||||
@ -993,8 +992,7 @@ PciReadBuffer (
|
|||||||
|
|
||||||
If StartAddress > 0x0FFFFFFF, then ASSERT().
|
If StartAddress > 0x0FFFFFFF, then ASSERT().
|
||||||
If ((StartAddress & 0xFFF) + Size) > 0x1000, then ASSERT().
|
If ((StartAddress & 0xFFF) + Size) > 0x1000, then ASSERT().
|
||||||
If (StartAddress + Size - 1) > 0x0FFFFFFF, then ASSERT().
|
If Size > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is NULL, then ASSERT().
|
|
||||||
|
|
||||||
@param StartAddress Starting address that encodes the PCI Bus, Device,
|
@param StartAddress Starting address that encodes the PCI Bus, Device,
|
||||||
Function and Register.
|
Function and Register.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/** @file
|
/** @file
|
||||||
PEI Core Library implementation
|
Header file for PEI Services Library.
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation
|
Copyright (c) 2006, Intel Corporation
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
@ -20,287 +20,279 @@
|
|||||||
/**
|
/**
|
||||||
This service enables a given PEIM to register an interface into the PEI Foundation.
|
This service enables a given PEIM to register an interface into the PEI Foundation.
|
||||||
|
|
||||||
@param PpiList A pointer to the list of interfaces that the caller shall install.
|
@param PpiList A pointer to the list of interfaces that the caller shall install.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The interface was successfully installed.
|
@retval EFI_SUCCESS The interface was successfully installed.
|
||||||
@retval EFI_INVALID_PARAMETER The PpiList pointer is NULL.
|
@retval EFI_INVALID_PARAMETER The PpiList pointer is NULL.
|
||||||
@retval EFI_INVALID_PARAMETER Any of the PEI PPI descriptors in the list do not have
|
@retval EFI_INVALID_PARAMETER Any of the PEI PPI descriptors in the list do not have the
|
||||||
the EFI_PEI_PPI_DESCRIPTOR_PPI bit set in the Flags field.
|
EFI_PEI_PPI_DESCRIPTOR_PPI bit set in the Flags field.
|
||||||
@retval EFI_OUT_OF_RESOURCES There is no additional space in the PPI database.
|
@retval EFI_OUT_OF_RESOURCES There is no additional space in the PPI database.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesInstallPpi (
|
PeiServicesInstallPpi (
|
||||||
IN EFI_PEI_PPI_DESCRIPTOR *PpiList
|
IN EFI_PEI_PPI_DESCRIPTOR *PpiList
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This service enables PEIMs to replace an entry in the PPI database with an alternate entry.
|
This service enables PEIMs to replace an entry in the PPI database with an alternate entry.
|
||||||
|
|
||||||
@param OldPpi Pointer to the old PEI PPI Descriptors.
|
@param OldPpi Pointer to the old PEI PPI Descriptors.
|
||||||
@param NewPpi Pointer to the new PEI PPI Descriptors.
|
@param NewPpi Pointer to the new PEI PPI Descriptors.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The interface was successfully installed.
|
@retval EFI_SUCCESS The interface was successfully installed.
|
||||||
@retval EFI_INVALID_PARAMETER The OldPpi or NewPpi is NULL.
|
@retval EFI_INVALID_PARAMETER The OldPpi or NewPpi is NULL.
|
||||||
@retval EFI_INVALID_PARAMETER Any of the PEI PPI descriptors in the list do not have
|
@retval EFI_INVALID_PARAMETER Any of the PEI PPI descriptors in the list do not have the
|
||||||
the EFI_PEI_PPI_DESCRIPTOR_PPI bit set in the Flags field.
|
EFI_PEI_PPI_DESCRIPTOR_PPI bit set in the Flags field.
|
||||||
@retval EFI_OUT_OF_RESOURCES There is no additional space in the PPI database.
|
@retval EFI_OUT_OF_RESOURCES There is no additional space in the PPI database.
|
||||||
@retval EFI_NOT_FOUND The PPI for which the reinstallation was requested has not been installed.
|
@retval EFI_NOT_FOUND The PPI for which the reinstallation was requested has not been
|
||||||
|
installed.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesReInstallPpi (
|
PeiServicesReInstallPpi (
|
||||||
IN EFI_PEI_PPI_DESCRIPTOR *OldPpi,
|
IN EFI_PEI_PPI_DESCRIPTOR *OldPpi,
|
||||||
IN EFI_PEI_PPI_DESCRIPTOR *NewPpi
|
IN EFI_PEI_PPI_DESCRIPTOR *NewPpi
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This service enables PEIMs to discover a given instance of an interface.
|
This service enables PEIMs to discover a given instance of an interface.
|
||||||
|
|
||||||
@param Guid A pointer to the GUID whose corresponding interface needs to be found.
|
@param Guid A pointer to the GUID whose corresponding interface needs to be
|
||||||
@param Instance The N-th instance of the interface that is required.
|
found.
|
||||||
@param PpiDescriptor A pointer to instance of the EFI_PEI_PPI_DESCRIPTOR.
|
@param Instance The N-th instance of the interface that is required.
|
||||||
@param Ppi A pointer to the instance of the interface.
|
@param PpiDescriptor A pointer to instance of the EFI_PEI_PPI_DESCRIPTOR.
|
||||||
|
@param Ppi A pointer to the instance of the interface.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The interface was successfully returned.
|
@retval EFI_SUCCESS The interface was successfully returned.
|
||||||
@retval EFI_NOT_FOUND The PPI descriptor is not found in the database.
|
@retval EFI_NOT_FOUND The PPI descriptor is not found in the database.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesLocatePpi (
|
PeiServicesLocatePpi (
|
||||||
IN EFI_GUID *Guid,
|
IN EFI_GUID *Guid,
|
||||||
IN UINTN Instance,
|
IN UINTN Instance,
|
||||||
IN OUT EFI_PEI_PPI_DESCRIPTOR **PpiDescriptor,
|
IN OUT EFI_PEI_PPI_DESCRIPTOR **PpiDescriptor,
|
||||||
IN OUT VOID **Ppi
|
IN OUT VOID **Ppi
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This service enables PEIMs to register a given service to be invoked
|
This service enables PEIMs to register a given service to be invoked when another service is
|
||||||
when another service is installed or reinstalled.
|
installed or reinstalled.
|
||||||
|
|
||||||
@param NotifyList A pointer to the list of notification interfaces that the caller shall install.
|
@param NotifyList A pointer to the list of notification interfaces that the caller
|
||||||
|
shall install.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The interface was successfully installed.
|
@retval EFI_SUCCESS The interface was successfully installed.
|
||||||
@retval EFI_INVALID_PARAMETER The NotifyList pointer is NULL.
|
@retval EFI_INVALID_PARAMETER The NotifyList pointer is NULL.
|
||||||
@retval EFI_INVALID_PARAMETER Any of the PEI notify descriptors in the list do not have
|
@retval EFI_INVALID_PARAMETER Any of the PEI notify descriptors in the list do not have the
|
||||||
the EFI_PEI_PPI_DESCRIPTOR_NOTIFY_TYPES bit set in the Flags field.
|
EFI_PEI_PPI_DESCRIPTOR_NOTIFY_TYPES bit set in the Flags field.
|
||||||
@retval EFI_OUT_OF_RESOURCES There is no additional space in the PPI database.
|
@retval EFI_OUT_OF_RESOURCES There is no additional space in the PPI database.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesNotifyPpi (
|
PeiServicesNotifyPpi (
|
||||||
IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyList
|
IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyList
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This service enables PEIMs to ascertain the present value of the boot mode.
|
This service enables PEIMs to ascertain the present value of the boot mode.
|
||||||
|
|
||||||
@param BootMode A pointer to contain the value of the boot mode.
|
@param BootMode A pointer to contain the value of the boot mode.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The boot mode was returned successfully.
|
@retval EFI_SUCCESS The boot mode was returned successfully.
|
||||||
@retval EFI_INVALID_PARAMETER BootMode is NULL.
|
@retval EFI_INVALID_PARAMETER BootMode is NULL.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesGetBootMode (
|
PeiServicesGetBootMode (
|
||||||
IN OUT EFI_BOOT_MODE *BootMode
|
IN OUT EFI_BOOT_MODE *BootMode
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This service enables PEIMs to update the boot mode variable.
|
This service enables PEIMs to update the boot mode variable.
|
||||||
|
|
||||||
@param BootMode The value of the boot mode to set.
|
@param BootMode The value of the boot mode to set.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The value was successfully updated
|
@retval EFI_SUCCESS The value was successfully updated
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesSetBootMode (
|
PeiServicesSetBootMode (
|
||||||
IN EFI_BOOT_MODE BootMode
|
IN EFI_BOOT_MODE BootMode
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This service enables a PEIM to ascertain the address of the list of HOBs in memory.
|
This service enables a PEIM to ascertain the address of the list of HOBs in memory.
|
||||||
|
|
||||||
@param HobList A pointer to the list of HOBs that the PEI Foundation will initialize.
|
@param HobList A pointer to the list of HOBs that the PEI Foundation will initialize.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The list was successfully returned.
|
@retval EFI_SUCCESS The list was successfully returned.
|
||||||
@retval EFI_NOT_AVAILABLE_YET The HOB list is not yet published.
|
@retval EFI_NOT_AVAILABLE_YET The HOB list is not yet published.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesGetHobList (
|
PeiServicesGetHobList (
|
||||||
IN OUT VOID **HobList
|
IN OUT VOID **HobList
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This service enables PEIMs to create various types of HOBs.
|
This service enables PEIMs to create various types of HOBs.
|
||||||
|
|
||||||
@param Type The type of HOB to be installed.
|
@param Type The type of HOB to be installed.
|
||||||
@param Length The length of the HOB to be added.
|
@param Length The length of the HOB to be added.
|
||||||
@param Hob The address of a pointer that will contain the HOB header.
|
@param Hob The address of a pointer that will contain the HOB header.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The HOB was successfully created.
|
@retval EFI_SUCCESS The HOB was successfully created.
|
||||||
@retval EFI_OUT_OF_RESOURCES There is no additional space for HOB creation.
|
@retval EFI_OUT_OF_RESOURCES There is no additional space for HOB creation.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesCreateHob (
|
PeiServicesCreateHob (
|
||||||
IN UINT16 Type,
|
IN UINT16 Type,
|
||||||
IN UINT16 Length,
|
IN UINT16 Length,
|
||||||
IN OUT VOID **Hob
|
IN OUT VOID **Hob
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This service enables PEIMs to discover additional firmware volumes.
|
This service enables PEIMs to discover additional firmware volumes.
|
||||||
|
|
||||||
@param Instance This instance of the firmware volume to find.
|
@param Instance This instance of the firmware volume to find. The value 0 is the
|
||||||
The value 0 is the Boot Firmware Volume (BFV).
|
Boot Firmware Volume (BFV).
|
||||||
@param FwVolHeader Pointer to the firmware volume header of the volume to return.
|
@param FwVolHeader Pointer to the firmware volume header of the volume to return.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The volume was found.
|
@retval EFI_SUCCESS The volume was found.
|
||||||
@retval EFI_NOT_FOUND The volume was not found.
|
@retval EFI_NOT_FOUND The volume was not found.
|
||||||
@retval EFI_INVALID_PARAMETER FwVolHeader is NULL.
|
@retval EFI_INVALID_PARAMETER FwVolHeader is NULL.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesFfsFindNextVolume (
|
PeiServicesFfsFindNextVolume (
|
||||||
IN UINTN Instance,
|
IN UINTN Instance,
|
||||||
IN OUT EFI_FIRMWARE_VOLUME_HEADER **FwVolHeader
|
IN OUT EFI_FIRMWARE_VOLUME_HEADER **FwVolHeader
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This service enables PEIMs to discover additional firmware files.
|
This service enables PEIMs to discover additional firmware files.
|
||||||
|
|
||||||
@param SearchType A filter to find files only of this type.
|
@param SearchType A filter to find files only of this type.
|
||||||
@param FwVolHeader Pointer to the firmware volume header of the volume to search.
|
@param FwVolHeader Pointer to the firmware volume header of the volume to search.
|
||||||
This parameter must point to a valid FFS volume.
|
This parameter must point to a valid FFS volume.
|
||||||
@param FileHeader Pointer to the current file from which to begin searching.
|
@param FileHeader Pointer to the current file from which to begin searching.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The file was found.
|
@retval EFI_SUCCESS The file was found.
|
||||||
@retval EFI_NOT_FOUND The file was not found.
|
@retval EFI_NOT_FOUND The file was not found.
|
||||||
@retval EFI_NOT_FOUND The header checksum was not zero.
|
@retval EFI_NOT_FOUND The header checksum was not zero.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesFfsFindNextFile (
|
PeiServicesFfsFindNextFile (
|
||||||
IN EFI_FV_FILETYPE SearchType,
|
IN EFI_FV_FILETYPE SearchType,
|
||||||
IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader,
|
IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader,
|
||||||
IN OUT EFI_FFS_FILE_HEADER **FileHeader
|
IN OUT EFI_FFS_FILE_HEADER **FileHeader
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This service enables PEIMs to discover sections of a given type within a valid FFS file.
|
This service enables PEIMs to discover sections of a given type within a valid FFS file.
|
||||||
|
|
||||||
@param SearchType The value of the section type to find.
|
@param SearchType The value of the section type to find.
|
||||||
@param FfsFileHeader A pointer to the file header that contains the set of sections to be searched.
|
@param FfsFileHeader A pointer to the file header that contains the set of sections to
|
||||||
@param SectionData A pointer to the discovered section, if successful.
|
be searched.
|
||||||
|
@param SectionData A pointer to the discovered section, if successful.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The section was found.
|
@retval EFI_SUCCESS The section was found.
|
||||||
@retval EFI_NOT_FOUND The section was not found.
|
@retval EFI_NOT_FOUND The section was not found.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesFfsFindSectionData (
|
PeiServicesFfsFindSectionData (
|
||||||
IN EFI_SECTION_TYPE SectionType,
|
IN EFI_SECTION_TYPE SectionType,
|
||||||
IN EFI_FFS_FILE_HEADER *FfsFileHeader,
|
IN EFI_FFS_FILE_HEADER *FfsFileHeader,
|
||||||
IN OUT VOID **SectionData
|
IN OUT VOID **SectionData
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This service enables PEIMs to register the permanent memory configuration
|
This service enables PEIMs to register the permanent memory configuration
|
||||||
that has been initialized with the PEI Foundation.
|
that has been initialized with the PEI Foundation.
|
||||||
|
|
||||||
@param MemoryBegin The value of a region of installed memory.
|
@param MemoryBegin The value of a region of installed memory.
|
||||||
@param MemoryLength The corresponding length of a region of installed memory.
|
@param MemoryLength The corresponding length of a region of installed memory.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The region was successfully installed in a HOB.
|
@retval EFI_SUCCESS The region was successfully installed in a HOB.
|
||||||
@retval EFI_INVALID_PARAMETER MemoryBegin and MemoryLength are illegal for this system.
|
@retval EFI_INVALID_PARAMETER MemoryBegin and MemoryLength are illegal for this system.
|
||||||
@retval EFI_OUT_OF_RESOURCES There is no additional space for HOB creation.
|
@retval EFI_OUT_OF_RESOURCES There is no additional space for HOB creation.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesInstallPeiMemory (
|
PeiServicesInstallPeiMemory (
|
||||||
IN EFI_PHYSICAL_ADDRESS MemoryBegin,
|
IN EFI_PHYSICAL_ADDRESS MemoryBegin,
|
||||||
IN UINT64 MemoryLength
|
IN UINT64 MemoryLength
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This service enables PEIMs to allocate memory after the permanent memory has been installed by a PEIM.
|
This service enables PEIMs to allocate memory after the permanent memory has been installed by a
|
||||||
|
PEIM.
|
||||||
|
|
||||||
@param MemoryType Type of memory to allocate.
|
@param MemoryType Type of memory to allocate.
|
||||||
@param Pages Number of pages to allocate.
|
@param Pages Number of pages to allocate.
|
||||||
@param Memory Pointer of memory allocated.
|
@param Memory Pointer of memory allocated.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The memory range was successfully allocated.
|
@retval EFI_SUCCESS The memory range was successfully allocated.
|
||||||
@retval EFI_INVALID_PARAMETER Type is not equal to AllocateAnyPages.
|
@retval EFI_INVALID_PARAMETER Type is not equal to AllocateAnyPages.
|
||||||
@retval EFI_NOT_AVAILABLE_YET Called with permanent memory not available.
|
@retval EFI_NOT_AVAILABLE_YET Called with permanent memory not available.
|
||||||
@retval EFI_OUT_OF_RESOURCES The pages could not be allocated.
|
@retval EFI_OUT_OF_RESOURCES The pages could not be allocated.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesAllocatePages (
|
PeiServicesAllocatePages (
|
||||||
IN EFI_MEMORY_TYPE MemoryType,
|
IN EFI_MEMORY_TYPE MemoryType,
|
||||||
IN UINTN Pages,
|
IN UINTN Pages,
|
||||||
IN OUT EFI_PHYSICAL_ADDRESS *Memory
|
IN OUT EFI_PHYSICAL_ADDRESS *Memory
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This service allocates memory from the Hand-Off Block (HOB) heap.
|
This service allocates memory from the Hand-Off Block (HOB) heap.
|
||||||
|
|
||||||
@param Size The number of bytes to allocate from the pool.
|
@param Size The number of bytes to allocate from the pool.
|
||||||
@param Buffer If the call succeeds, a pointer to a pointer to the allocated buffer;
|
@param Buffer If the call succeeds, a pointer to a pointer to the allocate
|
||||||
undefined otherwise.
|
buffer; undefined otherwise.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The allocation was successful
|
@retval EFI_SUCCESS The allocation was successful
|
||||||
@retval EFI_OUT_OF_RESOURCES There is not enough heap to allocate the requested size.
|
@retval EFI_OUT_OF_RESOURCES There is not enough heap to allocate the requested size.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesAllocatePool (
|
PeiServicesAllocatePool (
|
||||||
IN UINTN Size,
|
IN UINTN Size,
|
||||||
OUT VOID **Buffer
|
OUT VOID **Buffer
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This service resets the entire platform, including all processors and devices, and reboots the system.
|
This service resets the entire platform, including all processors and devices, and reboots the
|
||||||
|
system.
|
||||||
|
|
||||||
@retval EFI_NOT_AVAILABLE_YET The service has not been installed yet.
|
@retval EFI_NOT_AVAILABLE_YET The service has not been installed yet.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PeiServicesResetSystem (
|
PeiServicesResetSystem (
|
||||||
VOID
|
VOID
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -50,23 +50,27 @@
|
|||||||
The Unicode string is produced by parsing the format string specified by FormatString.
|
The Unicode string is produced by parsing the format string specified by FormatString.
|
||||||
Arguments are pulled from the variable argument list specified by Marker based on the
|
Arguments are pulled from the variable argument list specified by Marker based on the
|
||||||
contents of the format string.
|
contents of the format string.
|
||||||
The length of the produced output buffer is returned.
|
The number of Unicode characters in the produced output buffer is returned not including
|
||||||
If BufferSize is 0, then no output buffer is produced and 0 is returned.
|
the Null-terminator.
|
||||||
|
If BufferSize is 0 or 1, then no output buffer is produced and 0 is returned.
|
||||||
|
|
||||||
If BufferSize is not 0 and StartOfBuffer is NULL, then ASSERT().
|
If BufferSize > 1 and StartOfBuffer is NULL, then ASSERT().
|
||||||
If BufferSize is not 0 and FormatString is NULL, then ASSERT().
|
If BufferSize > 1 and FormatString is NULL, then ASSERT().
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than
|
If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than
|
||||||
PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().
|
PcdMaximumUnicodeStringLength Unicode characters not including the Null-terminator, then
|
||||||
|
ASSERT().
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string
|
If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string
|
||||||
contains more than PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().
|
contains more than PcdMaximumUnicodeStringLength Unicode characters not including the
|
||||||
|
Null-terminator, then ASSERT().
|
||||||
|
|
||||||
@param StartOfBuffer APointer to the output buffer for the produced Null-terminated
|
@param StartOfBuffer A pointer to the output buffer for the produced Null-terminated
|
||||||
Unicode string.
|
Unicode string.
|
||||||
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
||||||
@param FormatString Null-terminated Unicode format string.
|
@param FormatString Null-terminated Unicode format string.
|
||||||
@param Marker VA_LIST marker for the variable argument list.
|
@param Marker VA_LIST marker for the variable argument list.
|
||||||
|
|
||||||
@return return Length of the produced output buffer.
|
@return The number of Unicode characters in the produced output buffer not including the
|
||||||
|
Null-terminator.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
@ -86,22 +90,26 @@ UnicodeVSPrint (
|
|||||||
and BufferSize.
|
and BufferSize.
|
||||||
The Unicode string is produced by parsing the format string specified by FormatString.
|
The Unicode string is produced by parsing the format string specified by FormatString.
|
||||||
Arguments are pulled from the variable argument list based on the contents of the format string.
|
Arguments are pulled from the variable argument list based on the contents of the format string.
|
||||||
The length of the produced output buffer is returned.
|
The number of Unicode characters in the produced output buffer is returned not including
|
||||||
If BufferSize is 0, then no output buffer is produced and 0 is returned.
|
the Null-terminator.
|
||||||
|
If BufferSize is 0 or 1, then no output buffer is produced and 0 is returned.
|
||||||
|
|
||||||
If BufferSize is not 0 and StartOfBuffer is NULL, then ASSERT().
|
If BufferSize > 1 and StartOfBuffer is NULL, then ASSERT().
|
||||||
If BufferSize is not 0 and FormatString is NULL, then ASSERT().
|
If BufferSize > 1 and FormatString is NULL, then ASSERT().
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than
|
If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than
|
||||||
PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().
|
PcdMaximumUnicodeStringLength Unicode characters not including the Null-terminator, then
|
||||||
|
ASSERT().
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string
|
If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string
|
||||||
contains more than PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().
|
contains more than PcdMaximumUnicodeStringLength Unicode characters not including the
|
||||||
|
Null-terminator, then ASSERT().
|
||||||
|
|
||||||
@param StartOfBuffer APointer to the output buffer for the produced Null-terminated
|
@param StartOfBuffer A pointer to the output buffer for the produced Null-terminated
|
||||||
Unicode string.
|
Unicode string.
|
||||||
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
||||||
@param FormatString Null-terminated Unicode format string.
|
@param FormatString Null-terminated Unicode format string.
|
||||||
|
|
||||||
@return Length of the produced output buffer.
|
@return The number of Unicode characters in the produced output buffer not including the
|
||||||
|
Null-terminator.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
@ -122,23 +130,27 @@ UnicodeSPrint (
|
|||||||
The Unicode string is produced by parsing the format string specified by FormatString.
|
The Unicode string is produced by parsing the format string specified by FormatString.
|
||||||
Arguments are pulled from the variable argument list specified by Marker based on the
|
Arguments are pulled from the variable argument list specified by Marker based on the
|
||||||
contents of the format string.
|
contents of the format string.
|
||||||
The length of the produced output buffer is returned.
|
The number of Unicode characters in the produced output buffer is returned not including
|
||||||
If BufferSize is 0, then no output buffer is produced and 0 is returned.
|
the Null-terminator.
|
||||||
|
If BufferSize is 0 or 1, then no output buffer is produced and 0 is returned.
|
||||||
|
|
||||||
If BufferSize is not 0 and StartOfBuffer is NULL, then ASSERT().
|
If BufferSize > 1 and StartOfBuffer is NULL, then ASSERT().
|
||||||
If BufferSize is not 0 and FormatString is NULL, then ASSERT().
|
If BufferSize > 1 and FormatString is NULL, then ASSERT().
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than
|
If PcdMaximumAsciiStringLength is not zero, and FormatString contains more than
|
||||||
PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().
|
PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator, then
|
||||||
|
ASSERT().
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string
|
If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string
|
||||||
contains more than PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().
|
contains more than PcdMaximumUnicodeStringLength Unicode characters not including the
|
||||||
|
Null-terminator, then ASSERT().
|
||||||
|
|
||||||
@param StartOfBuffer APointer to the output buffer for the produced Null-terminated
|
@param StartOfBuffer A pointer to the output buffer for the produced Null-terminated
|
||||||
Unicode string.
|
Unicode string.
|
||||||
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
||||||
@param FormatString Null-terminated Unicode format string.
|
@param FormatString Null-terminated Unicode format string.
|
||||||
@param Marker VA_LIST marker for the variable argument list.
|
@param Marker VA_LIST marker for the variable argument list.
|
||||||
|
|
||||||
@return Length of the produced output buffer.
|
@return The number of Unicode characters in the produced output buffer not including the
|
||||||
|
Null-terminator.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
@ -159,22 +171,26 @@ UnicodeVSPrintAsciiFormat (
|
|||||||
The Unicode string is produced by parsing the format string specified by FormatString.
|
The Unicode string is produced by parsing the format string specified by FormatString.
|
||||||
Arguments are pulled from the variable argument list based on the contents of the
|
Arguments are pulled from the variable argument list based on the contents of the
|
||||||
format string.
|
format string.
|
||||||
The length of the produced output buffer is returned.
|
The number of Unicode characters in the produced output buffer is returned not including
|
||||||
If BufferSize is 0, then no output buffer is produced and 0 is returned.
|
the Null-terminator.
|
||||||
|
If BufferSize is 0 or 1, then no output buffer is produced and 0 is returned.
|
||||||
|
|
||||||
If BufferSize is not 0 and StartOfBuffer is NULL, then ASSERT().
|
If BufferSize > 1 and StartOfBuffer is NULL, then ASSERT().
|
||||||
If BufferSize is not 0 and FormatString is NULL, then ASSERT().
|
If BufferSize > 1 and FormatString is NULL, then ASSERT().
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than
|
If PcdMaximumAsciiStringLength is not zero, and FormatString contains more than
|
||||||
PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().
|
PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator, then
|
||||||
|
ASSERT().
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string
|
If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string
|
||||||
contains more than PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().
|
contains more than PcdMaximumUnicodeStringLength Unicode characters not including the
|
||||||
|
Null-terminator, then ASSERT().
|
||||||
|
|
||||||
@param StartOfBuffer APointer to the output buffer for the produced Null-terminated
|
@param StartOfBuffer A pointer to the output buffer for the produced Null-terminated
|
||||||
Unicode string.
|
Unicode string.
|
||||||
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
||||||
@param FormatString Null-terminated Unicode format string.
|
@param FormatString Null-terminated Unicode format string.
|
||||||
|
|
||||||
@return Length of the produced output buffer.
|
@return The number of Unicode characters in the produced output buffer not including the
|
||||||
|
Null-terminator.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
@ -195,23 +211,27 @@ UnicodeSPrintAsciiFormat (
|
|||||||
The ASCII string is produced by parsing the format string specified by FormatString.
|
The ASCII string is produced by parsing the format string specified by FormatString.
|
||||||
Arguments are pulled from the variable argument list specified by Marker based on
|
Arguments are pulled from the variable argument list specified by Marker based on
|
||||||
the contents of the format string.
|
the contents of the format string.
|
||||||
The length of the produced output buffer is returned.
|
The number of ASCII characters in the produced output buffer is returned not including
|
||||||
|
the Null-terminator.
|
||||||
If BufferSize is 0, then no output buffer is produced and 0 is returned.
|
If BufferSize is 0, then no output buffer is produced and 0 is returned.
|
||||||
|
|
||||||
If BufferSize is not 0 and StartOfBuffer is NULL, then ASSERT().
|
If BufferSize > 0 and StartOfBuffer is NULL, then ASSERT().
|
||||||
If BufferSize is not 0 and FormatString is NULL, then ASSERT().
|
If BufferSize > 0 and FormatString is NULL, then ASSERT().
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than
|
If PcdMaximumAsciiStringLength is not zero, and FormatString contains more than
|
||||||
PcdMaximumUnicodeStringLength ASCII characters, then ASSERT().
|
PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator, then
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string
|
ASSERT().
|
||||||
contains more than PcdMaximumUnicodeStringLength ASCII characters, then ASSERT().
|
If PcdMaximumAsciiStringLength is not zero, and produced Null-terminated ASCII string
|
||||||
|
contains more than PcdMaximumAsciiStringLength ASCII characters not including the
|
||||||
|
Null-terminator, then ASSERT().
|
||||||
|
|
||||||
@param StartOfBuffer APointer to the output buffer for the produced Null-terminated
|
@param StartOfBuffer A pointer to the output buffer for the produced Null-terminated
|
||||||
ASCII string.
|
ASCII string.
|
||||||
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
||||||
@param FormatString Null-terminated Unicode format string.
|
@param FormatString Null-terminated Unicode format string.
|
||||||
@param Marker VA_LIST marker for the variable argument list.
|
@param Marker VA_LIST marker for the variable argument list.
|
||||||
|
|
||||||
@return Length of the produced output buffer.
|
@return The number of ASCII characters in the produced output buffer not including the
|
||||||
|
Null-terminator.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
@ -232,22 +252,26 @@ AsciiVSPrint (
|
|||||||
The ASCII string is produced by parsing the format string specified by FormatString.
|
The ASCII string is produced by parsing the format string specified by FormatString.
|
||||||
Arguments are pulled from the variable argument list based on the contents of the
|
Arguments are pulled from the variable argument list based on the contents of the
|
||||||
format string.
|
format string.
|
||||||
The length of the produced output buffer is returned.
|
The number of ASCII characters in the produced output buffer is returned not including
|
||||||
|
the Null-terminator.
|
||||||
If BufferSize is 0, then no output buffer is produced and 0 is returned.
|
If BufferSize is 0, then no output buffer is produced and 0 is returned.
|
||||||
|
|
||||||
If BufferSize is not 0 and StartOfBuffer is NULL, then ASSERT().
|
If BufferSize > 0 and StartOfBuffer is NULL, then ASSERT().
|
||||||
If BufferSize is not 0 and FormatString is NULL, then ASSERT().
|
If BufferSize > 0 and FormatString is NULL, then ASSERT().
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than
|
If PcdMaximumAsciiStringLength is not zero, and FormatString contains more than
|
||||||
PcdMaximumUnicodeStringLength ASCII characters, then ASSERT().
|
PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator, then
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string
|
ASSERT().
|
||||||
contains more than PcdMaximumUnicodeStringLength ASCII characters, then ASSERT().
|
If PcdMaximumAsciiStringLength is not zero, and produced Null-terminated ASCII string
|
||||||
|
contains more than PcdMaximumAsciiStringLength ASCII characters not including the
|
||||||
|
Null-terminator, then ASSERT().
|
||||||
|
|
||||||
@param StartOfBuffer APointer to the output buffer for the produced Null-terminated
|
@param StartOfBuffer A pointer to the output buffer for the produced Null-terminated
|
||||||
ASCII string.
|
ASCII string.
|
||||||
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
||||||
@param FormatString Null-terminated Unicode format string.
|
@param FormatString Null-terminated Unicode format string.
|
||||||
|
|
||||||
@return Length of the produced output buffer.
|
@return The number of ASCII characters in the produced output buffer not including the
|
||||||
|
Null-terminator.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
@ -268,23 +292,27 @@ AsciiSPrint (
|
|||||||
The ASCII string is produced by parsing the format string specified by FormatString.
|
The ASCII string is produced by parsing the format string specified by FormatString.
|
||||||
Arguments are pulled from the variable argument list specified by Marker based on
|
Arguments are pulled from the variable argument list specified by Marker based on
|
||||||
the contents of the format string.
|
the contents of the format string.
|
||||||
The length of the produced output buffer is returned.
|
The number of ASCII characters in the produced output buffer is returned not including
|
||||||
|
the Null-terminator.
|
||||||
If BufferSize is 0, then no output buffer is produced and 0 is returned.
|
If BufferSize is 0, then no output buffer is produced and 0 is returned.
|
||||||
|
|
||||||
If BufferSize is not 0 and StartOfBuffer is NULL, then ASSERT().
|
If BufferSize > 0 and StartOfBuffer is NULL, then ASSERT().
|
||||||
If BufferSize is not 0 and FormatString is NULL, then ASSERT().
|
If BufferSize > 0 and FormatString is NULL, then ASSERT().
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than
|
If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than
|
||||||
PcdMaximumUnicodeStringLength ASCII characters, then ASSERT().
|
PcdMaximumUnicodeStringLength Unicode characters not including the Null-terminator, then
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string
|
ASSERT().
|
||||||
contains more than PcdMaximumUnicodeStringLength ASCII characters, then ASSERT().
|
If PcdMaximumAsciiStringLength is not zero, and produced Null-terminated ASCII string
|
||||||
|
contains more than PcdMaximumAsciiStringLength ASCII characters not including the
|
||||||
|
Null-terminator, then ASSERT().
|
||||||
|
|
||||||
@param StartOfBuffer APointer to the output buffer for the produced Null-terminated
|
@param StartOfBuffer A pointer to the output buffer for the produced Null-terminated
|
||||||
ASCII string.
|
ASCII string.
|
||||||
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
||||||
@param FormatString Null-terminated Unicode format string.
|
@param FormatString Null-terminated Unicode format string.
|
||||||
@param Marker VA_LIST marker for the variable argument list.
|
@param Marker VA_LIST marker for the variable argument list.
|
||||||
|
|
||||||
@return Length of the produced output buffer.
|
@return The number of ASCII characters in the produced output buffer not including the
|
||||||
|
Null-terminator.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
@ -305,22 +333,26 @@ AsciiVSPrintUnicodeFormat (
|
|||||||
The ASCII string is produced by parsing the format string specified by FormatString.
|
The ASCII string is produced by parsing the format string specified by FormatString.
|
||||||
Arguments are pulled from the variable argument list based on the contents of the
|
Arguments are pulled from the variable argument list based on the contents of the
|
||||||
format string.
|
format string.
|
||||||
The length of the produced output buffer is returned.
|
The number of ASCII characters in the produced output buffer is returned not including
|
||||||
|
the Null-terminator.
|
||||||
If BufferSize is 0, then no output buffer is produced and 0 is returned.
|
If BufferSize is 0, then no output buffer is produced and 0 is returned.
|
||||||
|
|
||||||
If BufferSize is not 0 and StartOfBuffer is NULL, then ASSERT().
|
If BufferSize > 0 and StartOfBuffer is NULL, then ASSERT().
|
||||||
If BufferSize is not 0 and FormatString is NULL, then ASSERT().
|
If BufferSize > 0 and FormatString is NULL, then ASSERT().
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than
|
If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than
|
||||||
PcdMaximumUnicodeStringLength ASCII characters, then ASSERT().
|
PcdMaximumUnicodeStringLength Unicode characters not including the Null-terminator, then
|
||||||
If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string
|
ASSERT().
|
||||||
contains more than PcdMaximumUnicodeStringLength ASCII characters, then ASSERT().
|
If PcdMaximumAsciiStringLength is not zero, and produced Null-terminated ASCII string
|
||||||
|
contains more than PcdMaximumAsciiStringLength ASCII characters not including the
|
||||||
|
Null-terminator, then ASSERT().
|
||||||
|
|
||||||
@param StartOfBuffer APointer to the output buffer for the produced Null-terminated
|
@param StartOfBuffer A pointer to the output buffer for the produced Null-terminated
|
||||||
ASCII string.
|
ASCII string.
|
||||||
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
||||||
@param FormatString Null-terminated Unicode format string.
|
@param FormatString Null-terminated Unicode format string.
|
||||||
|
|
||||||
@return Length of the produced output buffer.
|
@return The number of ASCII characters in the produced output buffer not including the
|
||||||
|
Null-terminator.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
@ -338,7 +370,7 @@ AsciiSPrintUnicodeFormat (
|
|||||||
Converts the decimal number specified by Value to a Null-terminated Unicode
|
Converts the decimal number specified by Value to a Null-terminated Unicode
|
||||||
string specified by Buffer containing at most Width characters.
|
string specified by Buffer containing at most Width characters.
|
||||||
If Width is 0 then a width of MAXIMUM_VALUE_CHARACTERS is assumed.
|
If Width is 0 then a width of MAXIMUM_VALUE_CHARACTERS is assumed.
|
||||||
The total number of characters placed in Buffer is returned.
|
The number of Unicode characters in Buffer is returned not including the Null-terminator.
|
||||||
If the conversion contains more than Width characters, then only the first
|
If the conversion contains more than Width characters, then only the first
|
||||||
Width characters are returned, and the total number of characters
|
Width characters are returned, and the total number of characters
|
||||||
required to perform the conversion is returned.
|
required to perform the conversion is returned.
|
||||||
@ -362,9 +394,9 @@ AsciiSPrintUnicodeFormat (
|
|||||||
Unicode string.
|
Unicode string.
|
||||||
@param Flags The bitmask of flags that specify left justification, zero pad, and commas.
|
@param Flags The bitmask of flags that specify left justification, zero pad, and commas.
|
||||||
@param Value The 64-bit signed value to convert to a string.
|
@param Value The 64-bit signed value to convert to a string.
|
||||||
@param Width The maximum number of Unicode characters to place in Buffer.
|
@param Width The maximum number of Unicode characters to place in Buffer.
|
||||||
|
|
||||||
@return Total number of characters required to perform the conversion.
|
@return The number of Unicode characters in Buffer not including the Null-terminator.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
@ -382,7 +414,7 @@ UnicodeValueToString (
|
|||||||
Converts the decimal number specified by Value to a Null-terminated ASCII string
|
Converts the decimal number specified by Value to a Null-terminated ASCII string
|
||||||
specified by Buffer containing at most Width characters.
|
specified by Buffer containing at most Width characters.
|
||||||
If Width is 0 then a width of MAXIMUM_VALUE_CHARACTERS is assumed.
|
If Width is 0 then a width of MAXIMUM_VALUE_CHARACTERS is assumed.
|
||||||
The total number of characters placed in Buffer is returned.
|
The number of ASCII characters in Buffer is returned not including the Null-terminator.
|
||||||
If the conversion contains more than Width characters, then only the first Width
|
If the conversion contains more than Width characters, then only the first Width
|
||||||
characters are returned, and the total number of characters required to perform
|
characters are returned, and the total number of characters required to perform
|
||||||
the conversion is returned.
|
the conversion is returned.
|
||||||
@ -406,9 +438,9 @@ UnicodeValueToString (
|
|||||||
ASCII string.
|
ASCII string.
|
||||||
@param Flags The bitmask of flags that specify left justification, zero pad, and commas.
|
@param Flags The bitmask of flags that specify left justification, zero pad, and commas.
|
||||||
@param Value The 64-bit signed value to convert to a string.
|
@param Value The 64-bit signed value to convert to a string.
|
||||||
@param Width The maximum number of ASCII characters to place in Buffer.
|
@param Width The maximum number of ASCII characters to place in Buffer.
|
||||||
|
|
||||||
@return Total number of characters required to perform the conversion.
|
@return The number of ASCII characters in Buffer not including the Null-terminator.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
BaseMemoryLib
|
BaseMemoryLib
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@ -95,7 +95,8 @@ CompareGuid (
|
|||||||
GUID in the target buffer is returned. If no match is found, then NULL is returned.
|
GUID in the target buffer is returned. If no match is found, then NULL is returned.
|
||||||
If Length is 0, then NULL is returned.
|
If Length is 0, then NULL is returned.
|
||||||
If Length > 0 and Buffer is NULL, then ASSERT().
|
If Length > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
|
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
|
||||||
|
If Length is not aligned on a 128-bit boundary, then ASSERT().
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to scan.
|
@param Buffer Pointer to the target buffer to scan.
|
||||||
@ -115,16 +116,12 @@ ScanGuid (
|
|||||||
{
|
{
|
||||||
CONST GUID *GuidPtr;
|
CONST GUID *GuidPtr;
|
||||||
|
|
||||||
ASSERT (Buffer != NULL);
|
ASSERT (((UINTN)Buffer & (sizeof (Guid->Data1) - 1)) == 0);
|
||||||
//
|
|
||||||
// Make sure Buffer is aligned on a 64-bit boundary.
|
|
||||||
//
|
|
||||||
ASSERT (((UINTN) Buffer & 7) == 0);
|
|
||||||
|
|
||||||
ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));
|
ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));
|
||||||
|
ASSERT ((Length & (sizeof (*GuidPtr) - 1)) == 0);
|
||||||
|
|
||||||
GuidPtr = (GUID*)Buffer;
|
GuidPtr = (GUID*)Buffer;
|
||||||
Buffer = GuidPtr + Length / sizeof (*GuidPtr);
|
Buffer = GuidPtr + Length / sizeof (*GuidPtr);
|
||||||
while (GuidPtr < (CONST GUID*)Buffer) {
|
while (GuidPtr < (CONST GUID*)Buffer) {
|
||||||
if (CompareGuid (GuidPtr, Guid)) {
|
if (CompareGuid (GuidPtr, Guid)) {
|
||||||
return (VOID*)GuidPtr;
|
return (VOID*)GuidPtr;
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@ -35,6 +35,7 @@
|
|||||||
then NULL is returned. If Length is 0, then NULL is returned.
|
then NULL is returned. If Length is 0, then NULL is returned.
|
||||||
If Length > 0 and Buffer is NULL, then ASSERT().
|
If Length > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is not aligned on a 16-bit boundary, then ASSERT().
|
If Buffer is not aligned on a 16-bit boundary, then ASSERT().
|
||||||
|
If Length is not aligned on a 16-bit boundary, then ASSERT().
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to scan.
|
@param Buffer Pointer to the target buffer to scan.
|
||||||
@ -52,16 +53,14 @@ ScanMem16 (
|
|||||||
IN UINT16 Value
|
IN UINT16 Value
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINTN Stride;
|
if (Length == 0) {
|
||||||
|
|
||||||
Stride = Length / sizeof (Value);
|
|
||||||
if (Stride == 0) {
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT (Buffer != NULL);
|
ASSERT (Buffer != NULL);
|
||||||
ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
|
ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
|
||||||
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
|
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
|
||||||
|
ASSERT ((Length & (sizeof (Value) - 1)) == 0);
|
||||||
|
|
||||||
return (VOID*)InternalMemScanMem16 (Buffer, Stride, Value);
|
return (VOID*)InternalMemScanMem16 (Buffer, Length / sizeof (Value), Value);
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@ -35,6 +35,7 @@
|
|||||||
then NULL is returned. If Length is 0, then NULL is returned.
|
then NULL is returned. If Length is 0, then NULL is returned.
|
||||||
If Length > 0 and Buffer is NULL, then ASSERT().
|
If Length > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
|
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
|
||||||
|
If Length is not aligned on a 32-bit boundary, then ASSERT().
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to scan.
|
@param Buffer Pointer to the target buffer to scan.
|
||||||
@ -52,16 +53,14 @@ ScanMem32 (
|
|||||||
IN UINT32 Value
|
IN UINT32 Value
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINTN Stride;
|
if (Length == 0) {
|
||||||
|
|
||||||
Stride = Length / sizeof (Value);
|
|
||||||
if (Stride == 0) {
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT (Buffer != NULL);
|
ASSERT (Buffer != NULL);
|
||||||
ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
|
ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
|
||||||
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
|
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
|
||||||
|
ASSERT ((Length & (sizeof (Value) - 1)) == 0);
|
||||||
|
|
||||||
return (VOID*)InternalMemScanMem32 (Buffer, Stride, Value);
|
return (VOID*)InternalMemScanMem32 (Buffer, Length / sizeof (Value), Value);
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@ -35,6 +35,7 @@
|
|||||||
then NULL is returned. If Length is 0, then NULL is returned.
|
then NULL is returned. If Length is 0, then NULL is returned.
|
||||||
If Length > 0 and Buffer is NULL, then ASSERT().
|
If Length > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
|
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
|
||||||
|
If Length is not aligned on a 64-bit boundary, then ASSERT().
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to scan.
|
@param Buffer Pointer to the target buffer to scan.
|
||||||
@ -52,16 +53,14 @@ ScanMem64 (
|
|||||||
IN UINT64 Value
|
IN UINT64 Value
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINTN Stride;
|
if (Length == 0) {
|
||||||
|
|
||||||
Stride = Length / sizeof (Value);
|
|
||||||
if (Stride == 0) {
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT (Buffer != NULL);
|
ASSERT (Buffer != NULL);
|
||||||
ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
|
ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
|
||||||
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
|
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
|
||||||
|
ASSERT ((Length & (sizeof (Value) - 1)) == 0);
|
||||||
|
|
||||||
return (VOID*)InternalMemScanMem64 (Buffer, Stride, Value);
|
return (VOID*)InternalMemScanMem64 (Buffer, Length / sizeof (Value), Value);
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@ -32,7 +32,7 @@
|
|||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Memory to set.
|
@param Buffer Memory to set.
|
||||||
@param Length Number of bytes to set
|
@param Length Number of bytes to set.
|
||||||
@param Value Value of the set operation.
|
@param Value Value of the set operation.
|
||||||
|
|
||||||
@return Buffer.
|
@return Buffer.
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@ -95,7 +95,8 @@ CompareGuid (
|
|||||||
GUID in the target buffer is returned. If no match is found, then NULL is returned.
|
GUID in the target buffer is returned. If no match is found, then NULL is returned.
|
||||||
If Length is 0, then NULL is returned.
|
If Length is 0, then NULL is returned.
|
||||||
If Length > 0 and Buffer is NULL, then ASSERT().
|
If Length > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
|
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
|
||||||
|
If Length is not aligned on a 128-bit boundary, then ASSERT().
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to scan.
|
@param Buffer Pointer to the target buffer to scan.
|
||||||
@ -115,16 +116,12 @@ ScanGuid (
|
|||||||
{
|
{
|
||||||
CONST GUID *GuidPtr;
|
CONST GUID *GuidPtr;
|
||||||
|
|
||||||
ASSERT (Buffer != NULL);
|
ASSERT (((UINTN)Buffer & (sizeof (Guid->Data1) - 1)) == 0);
|
||||||
//
|
|
||||||
// Make sure Buffer is aligned on a 64-bit boundary.
|
|
||||||
//
|
|
||||||
ASSERT (((UINTN) Buffer & 7) == 0);
|
|
||||||
|
|
||||||
ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));
|
ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));
|
||||||
|
ASSERT ((Length & (sizeof (*GuidPtr) - 1)) == 0);
|
||||||
|
|
||||||
GuidPtr = (GUID*)Buffer;
|
GuidPtr = (GUID*)Buffer;
|
||||||
Buffer = GuidPtr + Length / sizeof (*GuidPtr);
|
Buffer = GuidPtr + Length / sizeof (*GuidPtr);
|
||||||
while (GuidPtr < (CONST GUID*)Buffer) {
|
while (GuidPtr < (CONST GUID*)Buffer) {
|
||||||
if (CompareGuid (GuidPtr, Guid)) {
|
if (CompareGuid (GuidPtr, Guid)) {
|
||||||
return (VOID*)GuidPtr;
|
return (VOID*)GuidPtr;
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@ -35,6 +35,7 @@
|
|||||||
then NULL is returned. If Length is 0, then NULL is returned.
|
then NULL is returned. If Length is 0, then NULL is returned.
|
||||||
If Length > 0 and Buffer is NULL, then ASSERT().
|
If Length > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is not aligned on a 16-bit boundary, then ASSERT().
|
If Buffer is not aligned on a 16-bit boundary, then ASSERT().
|
||||||
|
If Length is not aligned on a 16-bit boundary, then ASSERT().
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to scan.
|
@param Buffer Pointer to the target buffer to scan.
|
||||||
@ -52,16 +53,14 @@ ScanMem16 (
|
|||||||
IN UINT16 Value
|
IN UINT16 Value
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINTN Stride;
|
if (Length == 0) {
|
||||||
|
|
||||||
Stride = Length / sizeof (Value);
|
|
||||||
if (Stride == 0) {
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT (Buffer != NULL);
|
ASSERT (Buffer != NULL);
|
||||||
ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
|
ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
|
||||||
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
|
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
|
||||||
|
ASSERT ((Length & (sizeof (Value) - 1)) == 0);
|
||||||
|
|
||||||
return (VOID*)InternalMemScanMem16 (Buffer, Stride, Value);
|
return (VOID*)InternalMemScanMem16 (Buffer, Length / sizeof (Value), Value);
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@ -35,6 +35,7 @@
|
|||||||
then NULL is returned. If Length is 0, then NULL is returned.
|
then NULL is returned. If Length is 0, then NULL is returned.
|
||||||
If Length > 0 and Buffer is NULL, then ASSERT().
|
If Length > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
|
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
|
||||||
|
If Length is not aligned on a 32-bit boundary, then ASSERT().
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to scan.
|
@param Buffer Pointer to the target buffer to scan.
|
||||||
@ -52,16 +53,14 @@ ScanMem32 (
|
|||||||
IN UINT32 Value
|
IN UINT32 Value
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINTN Stride;
|
if (Length == 0) {
|
||||||
|
|
||||||
Stride = Length / sizeof (Value);
|
|
||||||
if (Stride == 0) {
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT (Buffer != NULL);
|
ASSERT (Buffer != NULL);
|
||||||
ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
|
ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
|
||||||
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
|
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
|
||||||
|
ASSERT ((Length & (sizeof (Value) - 1)) == 0);
|
||||||
|
|
||||||
return (VOID*)InternalMemScanMem32 (Buffer, Stride, Value);
|
return (VOID*)InternalMemScanMem32 (Buffer, Length / sizeof (Value), Value);
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@ -35,6 +35,7 @@
|
|||||||
then NULL is returned. If Length is 0, then NULL is returned.
|
then NULL is returned. If Length is 0, then NULL is returned.
|
||||||
If Length > 0 and Buffer is NULL, then ASSERT().
|
If Length > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
|
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
|
||||||
|
If Length is not aligned on a 64-bit boundary, then ASSERT().
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to scan.
|
@param Buffer Pointer to the target buffer to scan.
|
||||||
@ -52,16 +53,14 @@ ScanMem64 (
|
|||||||
IN UINT64 Value
|
IN UINT64 Value
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINTN Stride;
|
if (Length == 0) {
|
||||||
|
|
||||||
Stride = Length / sizeof (Value);
|
|
||||||
if (Stride == 0) {
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT (Buffer != NULL);
|
ASSERT (Buffer != NULL);
|
||||||
ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
|
ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
|
||||||
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
|
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
|
||||||
|
ASSERT ((Length & (sizeof (Value) - 1)) == 0);
|
||||||
|
|
||||||
return (VOID*)InternalMemScanMem64 (Buffer, Stride, Value);
|
return (VOID*)InternalMemScanMem64 (Buffer, Length / sizeof (Value), Value);
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@ -32,7 +32,7 @@
|
|||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Memory to set.
|
@param Buffer Memory to set.
|
||||||
@param Length Number of bytes to set
|
@param Length Number of bytes to set.
|
||||||
@param Value Value of the set operation.
|
@param Value Value of the set operation.
|
||||||
|
|
||||||
@return Buffer.
|
@return Buffer.
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@ -95,7 +95,8 @@ CompareGuid (
|
|||||||
GUID in the target buffer is returned. If no match is found, then NULL is returned.
|
GUID in the target buffer is returned. If no match is found, then NULL is returned.
|
||||||
If Length is 0, then NULL is returned.
|
If Length is 0, then NULL is returned.
|
||||||
If Length > 0 and Buffer is NULL, then ASSERT().
|
If Length > 0 and Buffer is NULL, then ASSERT().
|
||||||
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
|
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
|
||||||
|
If Length is not aligned on a 128-bit boundary, then ASSERT().
|
||||||
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
If Length is greater than (MAX_ADDRESS <20> Buffer + 1), then ASSERT().
|
||||||
|
|
||||||
@param Buffer Pointer to the target buffer to scan.
|
@param Buffer Pointer to the target buffer to scan.
|
||||||
@ -115,16 +116,12 @@ ScanGuid (
|
|||||||
{
|
{
|
||||||
CONST GUID *GuidPtr;
|
CONST GUID *GuidPtr;
|
||||||
|
|
||||||
ASSERT (Buffer != NULL);
|
ASSERT (((UINTN)Buffer & (sizeof (Guid->Data1) - 1)) == 0);
|
||||||
//
|
|
||||||
// Make sure Buffer is aligned on a 64-bit boundary.
|
|
||||||
//
|
|
||||||
ASSERT (((UINTN) Buffer & 7) == 0);
|
|
||||||
|
|
||||||
ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));
|
ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));
|
||||||
|
ASSERT ((Length & (sizeof (*GuidPtr) - 1)) == 0);
|
||||||
|
|
||||||
GuidPtr = (GUID*)Buffer;
|
GuidPtr = (GUID*)Buffer;
|
||||||
Buffer = GuidPtr + Length / sizeof (*GuidPtr);
|
Buffer = GuidPtr + Length / sizeof (*GuidPtr);
|
||||||
while (GuidPtr < (CONST GUID*)Buffer) {
|
while (GuidPtr < (CONST GUID*)Buffer) {
|
||||||
if (CompareGuid (GuidPtr, Guid)) {
|
if (CompareGuid (GuidPtr, Guid)) {
|
||||||
return (VOID*)GuidPtr;
|
return (VOID*)GuidPtr;
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
BaseMemoryLibSse2
|
BaseMemoryLibSse2
|
||||||
BaseMemoryLibRepStr
|
BaseMemoryLibRepStr
|
||||||
PeiMemoryLib
|
PeiMemoryLib
|
||||||
UefiMemoryLib
|
DxeMemoryLib
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user