summaryrefslogtreecommitdiff
path: root/EdkModulePkg/Library
diff options
context:
space:
mode:
authoryshang1 <yshang1@6f19259b-4bc3-4df7-8a09-765794883524>2006-07-21 14:25:43 +0000
committeryshang1 <yshang1@6f19259b-4bc3-4df7-8a09-765794883524>2006-07-21 14:25:43 +0000
commit56836fe92b0a7284bc2e964065e00ad867145826 (patch)
tree6528bf8403b71144f6c7e33a2b51d305b032b1a8 /EdkModulePkg/Library
parent3f566587aea64bb986866c7f69a6b82891bf59db (diff)
downloadedk2-platforms-56836fe92b0a7284bc2e964065e00ad867145826.tar.xz
1) Check in Pei/Dxe status code;
2) OemHookStatusCodeLib and SerialPortLib class and null instance; 3) Remove all referenced code from EdkModulePkg,EdkNt32Pkg. 4) Add Nt32OemHookStatusCodeLib. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1067 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'EdkModulePkg/Library')
-rw-r--r--EdkModulePkg/Library/EdkDxeSalLib/Ipf/EsalServiceLib.c3
-rw-r--r--EdkModulePkg/Library/EdkOemHookStatusCodeLibNull/EdkOemHookStatusCodeLibNull.msa (renamed from EdkModulePkg/Library/EdkRuntimeStatusCodeLib/RtMemoryStatusCode/RtMemoryStatusCode.msa)52
-rw-r--r--EdkModulePkg/Library/EdkOemHookStatusCodeLibNull/OemHookStatusCodeLibNull.c71
-rw-r--r--EdkModulePkg/Library/EdkRuntimeStatusCodeLib/BsDataHubStatusCode/BsDataHubStatusCode.c397
-rw-r--r--EdkModulePkg/Library/EdkRuntimeStatusCodeLib/BsDataHubStatusCode/BsDataHubStatusCode.h130
-rw-r--r--EdkModulePkg/Library/EdkRuntimeStatusCodeLib/BsDataHubStatusCode/BsDataHubStatusCode.msa100
-rw-r--r--EdkModulePkg/Library/EdkRuntimeStatusCodeLib/RtMemoryStatusCode/RtMemoryStatusCode.c188
-rw-r--r--EdkModulePkg/Library/EdkRuntimeStatusCodeLib/RtPlatformStatusCode/RtPlatformStatusCode.c130
-rw-r--r--EdkModulePkg/Library/EdkSerialPortLibNull/EdkSerialPortLibNull.msa (renamed from EdkModulePkg/Library/EdkRuntimeStatusCodeLib/RtPlatformStatusCode/RtPlatformStatusCode.msa)58
-rw-r--r--EdkModulePkg/Library/EdkSerialPortLibNull/SerialPortLibNull.c77
10 files changed, 181 insertions, 1025 deletions
diff --git a/EdkModulePkg/Library/EdkDxeSalLib/Ipf/EsalServiceLib.c b/EdkModulePkg/Library/EdkDxeSalLib/Ipf/EsalServiceLib.c
index d258b98cab..83b6aa2c4c 100644
--- a/EdkModulePkg/Library/EdkDxeSalLib/Ipf/EsalServiceLib.c
+++ b/EdkModulePkg/Library/EdkDxeSalLib/Ipf/EsalServiceLib.c
@@ -38,6 +38,7 @@ DxeSalLibConstruct (
}
EFI_STATUS
+EFIAPI
RegisterEsalFunction (
IN UINT64 FunctionId,
IN EFI_GUID *ClassGuid,
@@ -72,6 +73,7 @@ Returns:
}
EFI_STATUS
+EFIAPI
RegisterEsalClass (
IN EFI_GUID *ClassGuid,
IN VOID *ModuleGlobal,
@@ -129,6 +131,7 @@ Returns:
}
SAL_RETURN_REGS
+EFIAPI
EfiCallEsalService (
IN EFI_GUID *ClassGuid,
IN UINT64 FunctionId,
diff --git a/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/RtMemoryStatusCode/RtMemoryStatusCode.msa b/EdkModulePkg/Library/EdkOemHookStatusCodeLibNull/EdkOemHookStatusCodeLibNull.msa
index 1e03e7fa5e..6be9cb78ff 100644
--- a/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/RtMemoryStatusCode/RtMemoryStatusCode.msa
+++ b/EdkModulePkg/Library/EdkOemHookStatusCodeLibNull/EdkOemHookStatusCodeLibNull.msa
@@ -11,62 +11,40 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-->
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0">
<MsaHeader>
- <ModuleName>EdkRtMemoryStatusCodeLib</ModuleName>
- <ModuleType>DXE_DRIVER</ModuleType>
- <GuidValue>1517564b-ab66-42b7-8903-731a95f314f9</GuidValue>
+ <ModuleName>EdkOemHookStatusCodeLibNull</ModuleName>
+ <ModuleType>PEIM</ModuleType>
+ <GuidValue>54D2878F-25CD-4a2b-8420-EBD18E609C76</GuidValue>
<Version>1.0</Version>
- <Abstract>Runtime memory status code library</Abstract>
- <Description>Save status code in runtime memory heap.</Description>
+ <Abstract>Memory Status Code Library for UEFI drivers</Abstract>
+ <Description>Lib to provide memory journal status code reporting Routines</Description>
<Copyright>Copyright (c) 2006, Intel Corporation.</Copyright>
- <License>All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ <License>All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
</MsaHeader>
<ModuleDefinitions>
<SupportedArchitectures>IA32 X64 IPF EBC</SupportedArchitectures>
<BinaryModule>false</BinaryModule>
- <OutputFileBasename>EdkRtMemoryStatusCodeLib</OutputFileBasename>
+ <OutputFileBasename>EdkOemHookStatusCodeLibNull</OutputFileBasename>
</ModuleDefinitions>
<LibraryClassDefinitions>
<LibraryClass Usage="ALWAYS_PRODUCED">
- <Keyword>EdkRtMemoryStatusCodeLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>UefiLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>DebugLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>BaseLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>UefiRuntimeLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>ReportStatusCodeLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>PrintLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>HobLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>UefiBootServicesTableLib</Keyword>
+ <Keyword>OemHookStatusCodeLib</Keyword>
</LibraryClass>
</LibraryClassDefinitions>
<SourceFiles>
- <Filename>RtMemoryStatusCode.c</Filename>
+ <Filename>OemHookStatusCodeLibNull.c</Filename>
</SourceFiles>
<PackageDependencies>
<Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Package PackageGuid="B6EC423C-21D2-490D-85C6-DD5864EAA674"/>
</PackageDependencies>
+ <PPIs>
+ </PPIs>
<Externs>
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
<Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
diff --git a/EdkModulePkg/Library/EdkOemHookStatusCodeLibNull/OemHookStatusCodeLibNull.c b/EdkModulePkg/Library/EdkOemHookStatusCodeLibNull/OemHookStatusCodeLibNull.c
new file mode 100644
index 0000000000..12988d01ba
--- /dev/null
+++ b/EdkModulePkg/Library/EdkOemHookStatusCodeLibNull/OemHookStatusCodeLibNull.c
@@ -0,0 +1,71 @@
+/** @file
+ OEM hook status code library functions with no library constructor/destructor
+
+ Copyright (c) 2006, Intel Corporation
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+ Module Name: OemHookStatusCodeLibNull.c
+
+**/
+
+/**
+
+ Initialize OEM status code device .
+
+**/
+VOID
+EFIAPI
+OemHookStatusCodeInitialize (
+ VOID
+ )
+{
+ return;
+}
+
+/**
+ Report status code to OEM device.
+
+ @param CodeType Indicates the type of status code being reported. Type EFI_STATUS_CODE_TYPE is defined in "Related Definitionsˇ± below.
+
+ @param Value Describes the current status of a hardware or software entity.
+ This included information about the class and subclass that is used to classify the entity
+ as well as an operation. For progress codes, the operation is the current activity.
+ For error codes, it is the exception. For debug codes, it is not defined at this time.
+ Type EFI_STATUS_CODE_VALUE is defined in ˇ°Related Definitionsˇ± below.
+ Specific values are discussed in the Intel? Platform Innovation Framework for EFI Status Code Specification.
+
+ @param Instance The enumeration of a hardware or software entity within the system.
+ A system may contain multiple entities that match a class/subclass pairing.
+ The instance differentiates between them. An instance of 0 indicates that instance information is unavailable,
+ not meaningful, or not relevant. Valid instance numbers start with 1.
+
+
+ @param CallerId This optional parameter may be used to identify the caller.
+ This parameter allows the status code driver to apply different rules to different callers.
+ Type EFI_GUID is defined in InstallProtocolInterface() in the EFI 1.10 Specification.
+
+
+ @param Data This optional parameter may be used to pass additional data
+
+ @return The function always return EFI_SUCCESS.
+
+**/
+EFI_STATUS
+EFIAPI
+OemHookStatusCodeReport (
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID *CallerId, OPTIONAL
+ IN EFI_STATUS_CODE_DATA *Data OPTIONAL
+ )
+{
+ return EFI_UNSUPPORTED;
+}
+
diff --git a/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/BsDataHubStatusCode/BsDataHubStatusCode.c b/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/BsDataHubStatusCode/BsDataHubStatusCode.c
deleted file mode 100644
index d72aae11a3..0000000000
--- a/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/BsDataHubStatusCode/BsDataHubStatusCode.c
+++ /dev/null
@@ -1,397 +0,0 @@
-/*++
-
-Copyright (c) 2006, Intel Corporation
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
-
- BsDataHubStatusCode.c
-
-Abstract:
-
- This implements a status code listener that logs status codes into the data
- hub. This is only active during non-runtime DXE.
-
---*/
-#include "BsDataHubStatusCode.h"
-
-//
-// Globals only work at BootService Time. NOT at Runtime!
-//
-static EFI_DATA_HUB_PROTOCOL *mDataHub;
-static LIST_ENTRY mRecordBuffer;
-static INTN mRecordNum;
-static EFI_EVENT mLogDataHubEvent;
-static EFI_LOCK mStatusCodeReportLock;
-static BOOLEAN mEventHandlerActive = FALSE;
-
-STATUS_CODE_RECORD_LIST *
-GetRecordBuffer (
- VOID
- )
-/*++
-
-Routine Description:
-
- Returned buffer of length BYTES_PER_RECORD
-
-Arguments:
-
- None
-
-Returns:
-
- Entry in mRecordBuffer or NULL if non available
-
---*/
-{
- STATUS_CODE_RECORD_LIST *Buffer;
-
- gBS->AllocatePool (EfiBootServicesData, sizeof (STATUS_CODE_RECORD_LIST), (VOID **) &Buffer);
- if (Buffer == NULL) {
- return NULL;
- }
-
- ZeroMem (Buffer, sizeof (STATUS_CODE_RECORD_LIST));
- Buffer->Signature = BS_DATA_HUB_STATUS_CODE_SIGNATURE;
-
- return Buffer;
-}
-
-DATA_HUB_STATUS_CODE_DATA_RECORD *
-AquireEmptyRecordBuffer (
- VOID
- )
-/*++
-
-Routine Description:
-
- Allocate a mRecordBuffer entry in the form of a pointer.
-
-Arguments:
-
- None
-
-Returns:
-
- Pointer to new buffer. NULL if none exist.
-
---*/
-{
- STATUS_CODE_RECORD_LIST *DataBuffer;
-
- if (mRecordNum < MAX_RECORD_NUM) {
- DataBuffer = GetRecordBuffer ();
- if (DataBuffer != NULL) {
- EfiAcquireLock (&mStatusCodeReportLock);
- InsertTailList (&mRecordBuffer, &DataBuffer->Link);
- mRecordNum++;
- EfiReleaseLock (&mStatusCodeReportLock);
- return (DATA_HUB_STATUS_CODE_DATA_RECORD *) DataBuffer->RecordBuffer;
- }
- }
-
- return NULL;
-}
-
-EFI_STATUS
-ReleaseRecordBuffer (
- IN STATUS_CODE_RECORD_LIST *RecordBuffer
- )
-/*++
-
-Routine Description:
-
- Release a mRecordBuffer entry allocated by AquireEmptyRecordBuffer ().
-
-Arguments:
-
- RecordBuffer - Data to free
-
-Returns:
-
- EFI_SUCCESS - If DataRecord is valid
- EFI_UNSUPPORTED - The record list has empty
-
---*/
-{
- ASSERT (RecordBuffer != NULL);
- if (mRecordNum <= 0) {
- return EFI_UNSUPPORTED;
- }
-
- EfiAcquireLock (&mStatusCodeReportLock);
- RemoveEntryList (&RecordBuffer->Link);
- mRecordNum--;
- EfiReleaseLock (&mStatusCodeReportLock);
- gBS->FreePool (RecordBuffer);
- return EFI_SUCCESS;
-}
-
-EFI_STATUS
-BsDataHubReportStatusCode (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID * CallerId,
- IN EFI_STATUS_CODE_DATA * Data OPTIONAL
- )
-/*++
-
-Routine Description:
-
- Boot service report status code listener. This function logs the status code
- into the data hub.
-
-Arguments:
-
- Same as ReportStatusCode (See Tiano Runtime Specification)
-
-Returns:
-
- None
-
---*/
-{
- DATA_HUB_STATUS_CODE_DATA_RECORD *DataHub;
- UINT32 ErrorLevel;
- VA_LIST Marker;
- CHAR8 *Format;
- UINTN Index;
- CHAR16 FormatBuffer[BYTES_PER_RECORD];
-
- if (EfiAtRuntime ()) {
- //
- // For now all we do is post code at runtime
- //
- return EFI_SUCCESS;
- }
- //
- // If we had an error while in our event handler, then do nothing so
- // that we don't get in an endless loop.
- //
- if (mEventHandlerActive) {
- return EFI_SUCCESS;
- }
-
- DataHub = (DATA_HUB_STATUS_CODE_DATA_RECORD *) AquireEmptyRecordBuffer ();
- if (DataHub == NULL) {
- //
- // There are no empty record buffer in private buffers
- //
- return EFI_OUT_OF_RESOURCES;
- }
- //
- // Construct Data Hub Extended Data
- //
- DataHub->CodeType = CodeType;
- DataHub->Value = Value;
- DataHub->Instance = Instance;
-
- if (CallerId != NULL) {
- CopyMem (&DataHub->CallerId, CallerId, sizeof (EFI_GUID));
- } else {
- ZeroMem (&DataHub->CallerId, sizeof (EFI_GUID));
- }
-
- if (Data == NULL) {
- ZeroMem (&DataHub->Data, sizeof (EFI_STATUS_CODE_DATA));
- } else {
- //
- // Copy generic Header
- //
- CopyMem (&DataHub->Data, Data, sizeof (EFI_STATUS_CODE_DATA));
-
- if (ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format)) {
- //
- // Convert Ascii Format string to Unicode.
- //
- for (Index = 0; Format[Index] != '\0' && Index < (BYTES_PER_RECORD - 1); Index += 1) {
- FormatBuffer[Index] = (CHAR16) Format[Index];
- }
-
- FormatBuffer[Index] = L'\0';
-
- //
- // Put processed string into the buffer
- //
- Index = UnicodeVSPrint (
- (CHAR16 *) (DataHub + 1),
- BYTES_PER_RECORD - (sizeof (DATA_HUB_STATUS_CODE_DATA_RECORD)),
- FormatBuffer,
- Marker
- );
-
- //
- // DATA_HUB_STATUS_CODE_DATA_RECORD followed by VSPrint String Buffer
- //
- DataHub->Data.Size = (UINT16) (Index * sizeof (CHAR16));
-
- } else {
- //
- // Default behavior is to copy optional data
- //
- if (Data->Size > (BYTES_PER_RECORD - sizeof (DATA_HUB_STATUS_CODE_DATA_RECORD))) {
- DataHub->Data.Size = (UINT16) (BYTES_PER_RECORD - sizeof (DATA_HUB_STATUS_CODE_DATA_RECORD));
- }
-
- CopyMem (DataHub + 1, Data + 1, DataHub->Data.Size);
- }
- }
-
- gBS->SignalEvent (mLogDataHubEvent);
-
- return EFI_SUCCESS;
-}
-
-VOID
-EFIAPI
-LogDataHubEventHandler (
- IN EFI_EVENT Event,
- IN VOID *Context
- )
-/*++
-
-Routine Description:
-
- The Event handler which will be notified to log data in Data Hub.
-
-Arguments:
-
- Event - Instance of the EFI_EVENT to signal whenever data is
- available to be logged in the system.
- Context - Context of the event.
-
-Returns:
-
- None.
-
---*/
-{
- EFI_STATUS Status;
- DATA_HUB_STATUS_CODE_DATA_RECORD *DataRecord;
- UINTN Size;
- UINT64 DataRecordClass;
- LIST_ENTRY *Link;
- STATUS_CODE_RECORD_LIST *BufferEntry;
-
- //
- // Set our global flag so we don't recurse if we get an error here.
- //
- mEventHandlerActive = TRUE;
-
- //
- // Log DataRecord in Data Hub.
- // If there are multiple DataRecords, Log all of them.
- //
- for (Link = mRecordBuffer.ForwardLink; Link != &mRecordBuffer;) {
- BufferEntry = CR (Link, STATUS_CODE_RECORD_LIST, Link, BS_DATA_HUB_STATUS_CODE_SIGNATURE);
- DataRecord = (DATA_HUB_STATUS_CODE_DATA_RECORD *) (BufferEntry->RecordBuffer);
- Link = Link->ForwardLink;
-
- //
- // Add in the size of the header we added.
- //
- Size = sizeof (DATA_HUB_STATUS_CODE_DATA_RECORD) + DataRecord->Data.Size;
-
- if ((DataRecord->CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) {
- DataRecordClass = EFI_DATA_RECORD_CLASS_PROGRESS_CODE;
- } else if ((DataRecord->CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) {
- DataRecordClass = EFI_DATA_RECORD_CLASS_ERROR;
- } else if ((DataRecord->CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE) {
- DataRecordClass = EFI_DATA_RECORD_CLASS_DEBUG;
- } else {
- //
- // Should never get here.
- //
- DataRecordClass = EFI_DATA_RECORD_CLASS_DEBUG |
- EFI_DATA_RECORD_CLASS_ERROR |
- EFI_DATA_RECORD_CLASS_DATA |
- EFI_DATA_RECORD_CLASS_PROGRESS_CODE;
- }
-
- if (((DataRecord->Instance & EFI_D_ERROR) != 0) &&
- (((DataRecord->Instance & EFI_D_POOL) != 0) || ((DataRecord->Instance & EFI_D_PAGE) != 0))
- ) {
- //
- // If memory error, do not call LogData ().
- //
- DebugPrint ((UINTN)-1, "Memory Error\n");
- Status = EFI_OUT_OF_RESOURCES;
- } else {
- //
- // Log DataRecord in Data Hub
- //
- Status = mDataHub->LogData (
- mDataHub,
- &gEfiStatusCodeGuid,
- &gEfiStatusCodeRuntimeProtocolGuid,
- DataRecordClass,
- DataRecord,
- (UINT32) Size
- );
- }
-
- ReleaseRecordBuffer (BufferEntry);
- }
-
- mEventHandlerActive = FALSE;
-
- return ;
-}
-
-VOID
-BsDataHubStatusCodeInitialize (
- VOID
- )
-/*++
-
-Routine Description:
-
- Install a data hub listener.
-
-Arguments:
-
- (Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)
-
-Returns:
-
- EFI_SUCCESS - Logging Hub protocol installed
- Other - No protocol installed, unload driver.
-
---*/
-{
- EFI_STATUS Status;
-
- Status = gBS->LocateProtocol (&gEfiDataHubProtocolGuid, NULL, (VOID **) &mDataHub);
- //
- // Should never fail due to dependency grammer
- //
- ASSERT_EFI_ERROR (Status);
-
- //
- // Initialize FIFO
- //
- InitializeListHead (&mRecordBuffer);
- mRecordNum = 0;
-
- EfiInitializeLock (&mStatusCodeReportLock, EFI_TPL_HIGH_LEVEL);
-
- //
- // Create a Notify Event to log data in Data Hub
- //
- Status = gBS->CreateEvent (
- EFI_EVENT_NOTIFY_SIGNAL,
- EFI_TPL_CALLBACK,
- LogDataHubEventHandler,
- NULL,
- &mLogDataHubEvent
- );
-
-}
diff --git a/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/BsDataHubStatusCode/BsDataHubStatusCode.h b/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/BsDataHubStatusCode/BsDataHubStatusCode.h
deleted file mode 100644
index f15a90e5e2..0000000000
--- a/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/BsDataHubStatusCode/BsDataHubStatusCode.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*++
-
-Copyright (c) 2006, Intel Corporation
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
-
- BsDataHubStatusCode.h
-
-Abstract:
-
- Header for the status code data hub logging component
-
---*/
-
-#ifndef _EFI_BS_DATA_HUB_STATUS_CODE_H_
-#define _EFI_BS_DATA_HUB_STATUS_CODE_H_
-
-//
-// Private data declarations
-//
-#define MAX_RECORD_NUM 1000
-#define BYTES_PER_RECORD EFI_STATUS_CODE_DATA_MAX_SIZE
-#define EMPTY_RECORD_TAG 0xFF
-
-#define BS_DATA_HUB_STATUS_CODE_SIGNATURE EFI_SIGNATURE_32 ('B', 'D', 'H', 'S')
-
-typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
- UINT8 RecordBuffer[BYTES_PER_RECORD];
-} STATUS_CODE_RECORD_LIST;
-
-//
-// Function prototypes
-//
-STATUS_CODE_RECORD_LIST *
-GetRecordBuffer (
- VOID
- )
-;
-
-/*++
-
-Routine Description:
-
- Returned buffer of length BYTES_PER_RECORD
-
-Arguments:
-
- None
-
-Returns:
-
- Entry in mRecordBuffer or NULL if non available
-
---*/
-DATA_HUB_STATUS_CODE_DATA_RECORD *
-AquireEmptyRecordBuffer (
- VOID
- )
-;
-
-/*++
-
-Routine Description:
-
- Allocate a mRecordBuffer entry in the form of a pointer.
-
-Arguments:
-
- None
-
-Returns:
-
- Pointer to new buffer. NULL if none exist.
-
---*/
-EFI_STATUS
-ReleaseRecordBuffer (
- IN STATUS_CODE_RECORD_LIST *RecordBuffer
- )
-;
-
-/*++
-
-Routine Description:
-
- Release a mRecordBuffer entry allocated by AquireEmptyRecordBuffer ().
-
-Arguments:
-
- RecordBuffer - Data to free
-
-Returns:
-
- EFI_SUCCESS - If RecordBuffer is valid
- EFI_UNSUPPORTED - The record list has empty
-
---*/
-VOID
-EFIAPI
-LogDataHubEventHandler (
- IN EFI_EVENT Event,
- IN VOID *Context
- )
-;
-
-/*++
-
-Routine Description:
-
- Event Handler that log in Status code in Data Hub.
-
-Arguments:
-
- (Standard EFI Event Handler - EFI_EVENT_NOTIFY)
-
-Returns:
-
- NONE
-
---*/
-#endif
diff --git a/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/BsDataHubStatusCode/BsDataHubStatusCode.msa b/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/BsDataHubStatusCode/BsDataHubStatusCode.msa
deleted file mode 100644
index af8f5f74af..0000000000
--- a/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/BsDataHubStatusCode/BsDataHubStatusCode.msa
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Copyright (c) 2006, Intel Corporation
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
--->
-<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0">
- <MsaHeader>
- <ModuleName>EdkBsDataHubStatusCodeLib</ModuleName>
- <ModuleType>DXE_DRIVER</ModuleType>
- <GuidValue>041bf780-dc3e-49ab-8d67-4b86075440ea</GuidValue>
- <Version>1.0</Version>
- <Abstract>Data hub status code library</Abstract>
- <Description>Save status code in DATA HUB.</Description>
- <Copyright>Copyright (c) 2006, Intel Corporation.</Copyright>
- <License>All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>
- <Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
- </MsaHeader>
- <ModuleDefinitions>
- <SupportedArchitectures>IA32 X64 IPF EBC</SupportedArchitectures>
- <BinaryModule>false</BinaryModule>
- <OutputFileBasename>EdkBsDataHubStatusCodeLib</OutputFileBasename>
- </ModuleDefinitions>
- <LibraryClassDefinitions>
- <LibraryClass Usage="ALWAYS_PRODUCED">
- <Keyword>EdkBsDataHubStatusCodeLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>UefiLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>DebugLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>BaseLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>BaseMemoryLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>UefiRuntimeLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>ReportStatusCodeLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>PrintLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>UefiBootServicesTableLib</Keyword>
- </LibraryClass>
- </LibraryClassDefinitions>
- <SourceFiles>
- <Filename>BsDataHubStatusCode.c</Filename>
- <Filename>BsDataHubStatusCode.h</Filename>
- </SourceFiles>
- <PackageDependencies>
- <Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
- <Package PackageGuid="B6EC423C-21D2-490D-85C6-DD5864EAA674"/>
- </PackageDependencies>
- <Protocols>
- <Protocol Usage="ALWAYS_CONSUMED">
- <ProtocolCName>gEfiStatusCodeRuntimeProtocolGuid</ProtocolCName>
- </Protocol>
- <Protocol Usage="ALWAYS_CONSUMED">
- <ProtocolCName>gEfiDataHubProtocolGuid</ProtocolCName>
- </Protocol>
- </Protocols>
- <Events>
- <CreateEvents>
- <EventTypes EventGuidCName="EFI_EVENT_NOTIFY_SIGNAL" Usage="ALWAYS_CONSUMED">
- <EventType>EVENT_GROUP_GUID</EventType>
- </EventTypes>
- </CreateEvents>
- </Events>
- <DataHubs>
- <DataHubRecord Usage="ALWAYS_CONSUMED">
- <DataHubCName>gEfiStatusCodeGuid</DataHubCName>
- </DataHubRecord>
- </DataHubs>
- <Guids>
- <GuidCNames Usage="ALWAYS_CONSUMED">
- <GuidCName>gEfiStatusCodeGuid</GuidCName>
- </GuidCNames>
- </Guids>
- <Externs>
- <Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
- <Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
- </Externs>
-</ModuleSurfaceArea> \ No newline at end of file
diff --git a/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/RtMemoryStatusCode/RtMemoryStatusCode.c b/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/RtMemoryStatusCode/RtMemoryStatusCode.c
deleted file mode 100644
index e0347a3a03..0000000000
--- a/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/RtMemoryStatusCode/RtMemoryStatusCode.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/*++
-
-Copyright (c) 2006, Intel Corporation
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
-
- RtMemoryStatusCode.c
-
-Abstract:
-
- EFI lib to provide memory journal status code reporting routines.
-
---*/
-
-#include <Ppi/StatusCodeMemory.h>
-
-//
-// Global variables
-//
-PEI_STATUS_CODE_MEMORY_PPI mStatusCodeMemoryPpi = { 0, 0, 0, 0 };
-
-//
-// Function implementations
-//
-EFI_STATUS
-RtMemoryReportStatusCode (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID * CallerId,
- IN EFI_STATUS_CODE_DATA * Data OPTIONAL
- )
-/*++
-
-Routine Description:
-
- Log a status code to a memory journal. If no memory journal exists,
- we will just return.
-
-Arguments:
-
- Same as ReportStatusCode AP
-
-Returns:
-
- EFI_SUCCESS This function always returns success
-
---*/
-{
- EFI_STATUS_CODE_ENTRY *CurrentEntry;
- UINT32 MaxEntry;
-
- //
- // We don't care to log debug codes.
- //
- if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE) {
- return EFI_SUCCESS;
- }
- //
- // Update the latest entry in the journal.
- //
- MaxEntry = mStatusCodeMemoryPpi.Length / sizeof (EFI_STATUS_CODE_ENTRY);
- if (!MaxEntry) {
- //
- // If we don't have any entries, then we can return.
- // This effectively means that no memory buffer was passed forward from PEI.
- //
- return EFI_SUCCESS;
- }
-
- CurrentEntry = (EFI_STATUS_CODE_ENTRY *) (UINTN) (mStatusCodeMemoryPpi.Address + (mStatusCodeMemoryPpi.LastEntry * sizeof (EFI_STATUS_CODE_ENTRY)));
-
- mStatusCodeMemoryPpi.LastEntry = (mStatusCodeMemoryPpi.LastEntry + 1) % MaxEntry;
- if (mStatusCodeMemoryPpi.LastEntry == mStatusCodeMemoryPpi.FirstEntry) {
- mStatusCodeMemoryPpi.FirstEntry = (mStatusCodeMemoryPpi.FirstEntry + 1) % MaxEntry;
- }
-
- CurrentEntry->Type = CodeType;
- CurrentEntry->Value = Value;
- CurrentEntry->Instance = Instance;
-
- return EFI_SUCCESS;
-}
-
-VOID
-RtMemoryStatusCodeInitialize (
- VOID
- )
-/*++
-
-Routine Description:
-
- Initialization routine.
- Allocates heap space for storing Status Codes.
- Installs a PPI to point to that heap space.
- Installs a callback to switch to memory.
- Installs a callback to
-
-Arguments:
-
- (Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)
-
-Returns:
-
- None
-
---*/
-{
- EFI_HOB_GUID_TYPE *GuidHob;
- PEI_STATUS_CODE_MEMORY_PPI **StatusCodeMemoryPpi;
-
- GuidHob = GetFirstGuidHob (&gPeiStatusCodeMemoryPpiGuid);
- if (GuidHob == NULL) {
- return;
- }
-
- StatusCodeMemoryPpi = GET_GUID_HOB_DATA (GuidHob);
-
- //
- // Copy data to our structure since the HOB will go away at runtime
- //
- // BUGBUG: Virtualize for RT
- //
- mStatusCodeMemoryPpi.FirstEntry = (*StatusCodeMemoryPpi)->FirstEntry;
- mStatusCodeMemoryPpi.LastEntry = (*StatusCodeMemoryPpi)->LastEntry;
- mStatusCodeMemoryPpi.Address = (*StatusCodeMemoryPpi)->Address;
- mStatusCodeMemoryPpi.Length = (*StatusCodeMemoryPpi)->Length;
-}
-
-VOID
-PlaybackStatusCodes (
- IN EFI_REPORT_STATUS_CODE ReportStatusCodeFunc
- )
-/*++
-
-Routine Description:
-
- Call the input ReportStatusCode function with every status code recorded in
- the journal.
-
-Arguments:
-
- ReportStatusCode ReportStatusCode function to call.
-
-Returns:
-
- None
-
---*/
-{
- UINTN MaxEntry;
- EFI_STATUS_CODE_ENTRY *CurrentEntry;
- UINTN Counter;
-
- if (ReportStatusCodeFunc == RtMemoryReportStatusCode) {
- return ;
- }
- //
- // Playback prior status codes to current listeners
- //
- MaxEntry = mStatusCodeMemoryPpi.Length / sizeof (EFI_STATUS_CODE_ENTRY);
- for (Counter = mStatusCodeMemoryPpi.FirstEntry; Counter != mStatusCodeMemoryPpi.LastEntry; Counter++) {
- //
- // Check if we have to roll back to beginning of queue buffer
- //
- if (Counter == MaxEntry) {
- Counter = 0;
- }
- //
- // Play current entry
- //
- CurrentEntry = (EFI_STATUS_CODE_ENTRY *) (UINTN) (mStatusCodeMemoryPpi.Address + (Counter * sizeof (EFI_STATUS_CODE_ENTRY)));
- ReportStatusCodeFunc (
- CurrentEntry->Type,
- CurrentEntry->Value,
- CurrentEntry->Instance,
- NULL,
- NULL
- );
- }
-}
diff --git a/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/RtPlatformStatusCode/RtPlatformStatusCode.c b/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/RtPlatformStatusCode/RtPlatformStatusCode.c
deleted file mode 100644
index 47f7f96511..0000000000
--- a/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/RtPlatformStatusCode/RtPlatformStatusCode.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*++
-
-Copyright (c) 2006, Intel Corporation
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
-
- RtPlatformStatusCode.c
-
-Abstract:
-
- Contains NT32 specific implementations required to use status codes.
-
---*/
-
-//
-// Globals only work at BootService Time. NOT at Runtime!
-//
-//
-
-typedef
-EFI_STATUS
-(EFIAPI *REPORT_STATUS_CODE_FUNCTION) (
- IN EFI_STATUS_CODE_TYPE Type,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId OPTIONAL,
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
- );
-
-REPORT_STATUS_CODE_FUNCTION mPeiReportStatusCode;
-
-//
-// Function implementations
-//
-EFI_STATUS
-RtPlatformReportStatusCode (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID * CallerId,
- IN EFI_STATUS_CODE_DATA * Data OPTIONAL
- )
-/*++
-
-Routine Description:
-
- Call all status code listeners in the MonoStatusCode.
-
-Arguments:
-
- Same as ReportStatusCode service
-
-Returns:
-
- EFI_SUCCESS Always returns success.
-
---*/
-{
- RtMemoryReportStatusCode (CodeType, Value, Instance, CallerId, Data);
- if (EfiAtRuntime ()) {
- //
- // For now all we do is post code at runtime
- //
- return EFI_SUCCESS;
- }
-
- BsDataHubReportStatusCode (CodeType, Value, Instance, CallerId, Data);
-
- //
- // Call back into PEI to get status codes. This is because SecMain contains
- // status code that reports to Win32.
- //
- if (mPeiReportStatusCode != NULL) {
- return mPeiReportStatusCode (CodeType, Value, Instance, CallerId, Data);
- }
-
- return EFI_SUCCESS;
-}
-
-VOID
-RtPlatformStatusCodeInitialize (
- VOID
- )
-/*++
-
-Routine Description:
-
- Initialize the status code listeners.
-
-Arguments:
-
- (Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)
-
-Returns:
-
- None
-
---*/
-{
- EFI_HOB_GUID_TYPE *GuidHob;
- void *Pointer;
-
- RtMemoryStatusCodeInitialize ();
- BsDataHubStatusCodeInitialize ();
-
- //
- // Play any prior status codes to the data hub.
- //
- PlaybackStatusCodes (BsDataHubReportStatusCode);
-
- //
- // If PEI has a ReportStatusCode callback find it and use it before StdErr
- // is connected.
- //
- mPeiReportStatusCode = NULL;
-
- GuidHob = GetFirstGuidHob (&gEfiStatusCodeRuntimeProtocolGuid);
- if (NULL == GuidHob) {
- return;
- }
- Pointer = GET_GUID_HOB_DATA (GuidHob);
- mPeiReportStatusCode = (REPORT_STATUS_CODE_FUNCTION) (*(UINTN *) Pointer);
-}
diff --git a/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/RtPlatformStatusCode/RtPlatformStatusCode.msa b/EdkModulePkg/Library/EdkSerialPortLibNull/EdkSerialPortLibNull.msa
index ac408a8ba7..a5940b2ca2 100644
--- a/EdkModulePkg/Library/EdkRuntimeStatusCodeLib/RtPlatformStatusCode/RtPlatformStatusCode.msa
+++ b/EdkModulePkg/Library/EdkSerialPortLibNull/EdkSerialPortLibNull.msa
@@ -11,68 +11,40 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-->
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0">
<MsaHeader>
- <ModuleName>EdkRtPlatformStatusCodeLib</ModuleName>
- <ModuleType>DXE_DRIVER</ModuleType>
- <GuidValue>68b157b5-9534-43ff-9cd3-6705e4e1d56c</GuidValue>
+ <ModuleName>EdkSerialPortLibNull</ModuleName>
+ <ModuleType>PEIM</ModuleType>
+ <GuidValue>E4541241-8897-411a-91F8-7D7E45837146</GuidValue>
<Version>1.0</Version>
- <Abstract>Runtime platform status code library</Abstract>
- <Description>Platform status code library</Description>
+ <Abstract>Memory Status Code Library for UEFI drivers</Abstract>
+ <Description>Lib to provide memory journal status code reporting Routines</Description>
<Copyright>Copyright (c) 2006, Intel Corporation.</Copyright>
- <License>All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ <License>All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>
</MsaHeader>
<ModuleDefinitions>
<SupportedArchitectures>IA32 X64 IPF EBC</SupportedArchitectures>
<BinaryModule>false</BinaryModule>
- <OutputFileBasename>EdkRtPlatformStatusCodeLib</OutputFileBasename>
+ <OutputFileBasename>EdkSerialPortLibNull</OutputFileBasename>
</ModuleDefinitions>
<LibraryClassDefinitions>
<LibraryClass Usage="ALWAYS_PRODUCED">
- <Keyword>EdkRtPlatformStatusCodeLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>UefiLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>DebugLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>BaseLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>UefiRuntimeLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>ReportStatusCodeLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>PrintLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>HobLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>EdkBsDataHubStatusCodeLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>EdkRtMemoryStatusCodeLib</Keyword>
- </LibraryClass>
- <LibraryClass Usage="ALWAYS_CONSUMED">
- <Keyword>UefiBootServicesTableLib</Keyword>
+ <Keyword>SerialPortLib</Keyword>
</LibraryClass>
</LibraryClassDefinitions>
<SourceFiles>
- <Filename>RtPlatformStatusCode.c</Filename>
+ <Filename>SerialPortLibNull.c</Filename>
</SourceFiles>
<PackageDependencies>
<Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Package PackageGuid="B6EC423C-21D2-490D-85C6-DD5864EAA674"/>
</PackageDependencies>
+ <PPIs>
+ </PPIs>
<Externs>
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
<Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
diff --git a/EdkModulePkg/Library/EdkSerialPortLibNull/SerialPortLibNull.c b/EdkModulePkg/Library/EdkSerialPortLibNull/SerialPortLibNull.c
new file mode 100644
index 0000000000..af9b95705f
--- /dev/null
+++ b/EdkModulePkg/Library/EdkSerialPortLibNull/SerialPortLibNull.c
@@ -0,0 +1,77 @@
+/** @file
+ Serial I/O Port library functions with no library constructor/destructor
+
+ Copyright (c) 2006, Intel Corporation
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+ Module Name: SerialPortLibNull.c
+
+**/
+
+/**
+
+ Programmed hardware of Serial port.
+
+**/
+EFI_STATUS
+EFIAPI
+SerialPortInitialize (
+ VOID
+ )
+{
+ return EFI_UNSUPPORTED;
+}
+
+/**
+ Write data to serial device.
+
+ If the buffer is NULL, then ASSERT();
+ if NumberOfBytes is zero, then ASSERT().
+
+ @param Buffer Point of data buffer which need to be writed.
+ @param NumberOfBytes Number of output bytes which are cached in Buffer.
+
+ @retval 0 Write data failed.
+ @retval !0 Actual number of bytes writed to serial device.
+
+**/
+UINTN
+EFIAPI
+SerialPortWrite (
+ IN UINT8 *Buffer,
+ IN UINTN NumberOfBytes
+)
+{
+ return 0;
+}
+
+
+/**
+ Read data from serial device and save the datas in buffer.
+
+ If the buffer is NULL, then ASSERT();
+ if NumberOfBytes is zero, then ASSERT().
+
+ @param Buffer Point of data buffer which need to be writed.
+ @param NumberOfBytes Number of output bytes which are cached in Buffer.
+
+ @retval 0 Read data failed.
+ @retval !0 Aactual number of bytes read from serial device.
+
+**/
+UINTN
+EFIAPI
+SerialPortRead (
+ OUT UINT8 *Buffer,
+ IN UINTN NumberOfBytes
+)
+{
+ return 0;
+}
+