Zhichao: One .c file is enough for this PEIM. You can implement all in one C file.
Thanks Liming >-----Original Message----- >From: Gao, Zhichao >Sent: Thursday, March 21, 2019 10:05 PM >To: [email protected] >Cc: Wang, Jian J <[email protected]>; Wu, Hao A <[email protected]>; >Ni, Ray <[email protected]>; Zeng, Star <[email protected]>; Gao, Liming ><[email protected]>; Sean Brogan <[email protected]>; >Michael Turner <[email protected]>; Bret Barkelew ><[email protected]> >Subject: [PATCH V4 15/17] MdeModulePkg: Add a PEIM to install Debug PPI > >REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1395 > >Add a PEIM to install Debug PPI so that PEI debug library >instance can locate gEdkiiDebugPpiGuid to implement the >debug functions. Using this PPI can reduce the size of >PEIMs which consume the debug library. > >Contributed-under: TianoCore Contribution Agreement 1.1 >Signed-off-by: Zhichao Gao <[email protected]> >Cc: Jian J Wang <[email protected]> >Cc: Hao Wu <[email protected]> >Cc: Ray Ni <[email protected]> >Cc: Star Zeng <[email protected]> >Cc: Liming Gao <[email protected]> >Cc: Sean Brogan <[email protected]> >Cc: Michael Turner <[email protected]> >Cc: Bret Barkelew <[email protected]> >--- > .../Universal/DebugServicePei/DebugService.c | 60 >++++++++++++++++++++++ > .../Universal/DebugServicePei/DebugService.h | 56 >++++++++++++++++++++ > .../Universal/DebugServicePei/DebugServicePei.c | 54 >+++++++++++++++++++ > .../Universal/DebugServicePei/DebugServicePei.inf | 52 >+++++++++++++++++++ > .../Universal/DebugServicePei/DebugServicePei.uni | 20 ++++++++ > 5 files changed, 242 insertions(+) > create mode 100644 >MdeModulePkg/Universal/DebugServicePei/DebugService.c > create mode 100644 >MdeModulePkg/Universal/DebugServicePei/DebugService.h > create mode 100644 >MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c > create mode 100644 >MdeModulePkg/Universal/DebugServicePei/DebugServicePei.inf > create mode 100644 >MdeModulePkg/Universal/DebugServicePei/DebugServicePei.uni > >diff --git a/MdeModulePkg/Universal/DebugServicePei/DebugService.c >b/MdeModulePkg/Universal/DebugServicePei/DebugService.c >new file mode 100644 >index 0000000000..a9ea14db81 >--- /dev/null >+++ b/MdeModulePkg/Universal/DebugServicePei/DebugService.c >@@ -0,0 +1,60 @@ >+/** @file >+ Debug services instances for PEI phase. >+ >+ Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> >+ >+ This program and the accompanying materials >+ are licensed and made available under the terms and conditions of the BSD >License >+ which accompanies this distribution. The full text of the license may be >found at >+ http://opensource.org/licenses/bsd-license.php >+ >+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >BASIS, >+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >EXPRESS OR IMPLIED. >+ >+**/ >+ >+#include <Ppi/Debug.h> >+#include <Library/DebugLib.h> >+ >+/** >+ Print a debug message to debug output device if the specified error level >+ is enabled. >+ >+ @param[in] ErrorLevel The error level of the debug message. >+ @param[in] Format Format string for the debug message to >print. >+ @param[in] Marker BASE_LIST marker for the variable >argument >list. >+ >+**/ >+VOID >+EFIAPI >+PeiDebugBPrint( >+ IN UINTN ErrorLevel, >+ IN CONST CHAR8 *Format, >+ IN BASE_LIST Marker >+ ) >+{ >+ DebugBPrint(ErrorLevel, Format, Marker); >+} >+ >+/** >+ Print an assert message containing a filename, line number, and description. >+ This may be followed by a breakpoint or a dead loop. >+ >+ @param[in] FileName The pointer to the name of the source >file >that >+ generated the assert condition. >+ @param[in] LineNumber The line number in the source file that >generated >+ the assert condition >+ @param[in] Description The pointer to the description of the >assert >condition. >+ >+**/ >+VOID >+EFIAPI >+PeiDebugAssert( >+ IN CONST CHAR8 *FileName, >+ IN UINTN LineNumber, >+ IN CONST CHAR8 *Description >+ ) >+{ >+ DebugAssert(FileName, LineNumber, Description); >+} >+ >diff --git a/MdeModulePkg/Universal/DebugServicePei/DebugService.h >b/MdeModulePkg/Universal/DebugServicePei/DebugService.h >new file mode 100644 >index 0000000000..3e234f76b6 >--- /dev/null >+++ b/MdeModulePkg/Universal/DebugServicePei/DebugService.h >@@ -0,0 +1,56 @@ >+/** @file >+ Header file of Debug services instances. >+ >+ Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> >+ >+ This program and the accompanying materials >+ are licensed and made available under the terms and conditions of the BSD >License >+ which accompanies this distribution. The full text of the license may be >found at >+ http://opensource.org/licenses/bsd-license.php >+ >+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >BASIS, >+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >EXPRESS OR IMPLIED. >+ >+**/ >+#ifndef __DEBUG_SERVICE_H__ >+#define __DEBUG_SERVICE_H__ >+ >+#include <Ppi/Debug.h> >+ >+/** >+ Print a debug message to debug output device if the specified error level >+ is enabled. >+ >+ @param[in] ErrorLevel The error level of the debug message. >+ @param[in] Format Format string for the debug message to >print. >+ @param[in] Marker BASE_LIST marker for the variable >argument >list. >+ >+**/ >+VOID >+EFIAPI >+PeiDebugBPrint( >+ IN UINTN ErrorLevel, >+ IN CONST CHAR8 *Format, >+ IN BASE_LIST Marker >+ ); >+ >+/** >+ Prints an assert message containing a filename, line number, and >description. >+ This may be followed by a breakpoint or a dead loop. >+ >+ @param[in] FileName The pointer to the name of the source >file >that >+ generated the assert condition. >+ @param[in] LineNumber The line number in the source file that >generated >+ the assert condition >+ @param[in] Description The pointer to the description of the >assert >condition. >+ >+**/ >+VOID >+EFIAPI >+PeiDebugAssert( >+ IN CONST CHAR8 *FileName, >+ IN UINTN LineNumber, >+ IN CONST CHAR8 *Description >+ ); >+ >+#endif >diff --git a/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c >b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c >new file mode 100644 >index 0000000000..06117cfcf0 >--- /dev/null >+++ b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c >@@ -0,0 +1,54 @@ >+/** @file >+ This driver installs gEdkiiDebugPpiGuid PPI to provide >+ debug services for PEIMs. >+ >+ Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> >+ >+ This program and the accompanying materials >+ are licensed and made available under the terms and conditions of the BSD >License >+ which accompanies this distribution. The full text of the license may be >found at >+ http://opensource.org/licenses/bsd-license.php >+ >+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >BASIS, >+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >EXPRESS OR IMPLIED. >+ >+**/ >+ >+#include <Uefi/UefiBaseType.h> >+#include <Library/PeimEntryPoint.h> >+#include <Library/PeiServicesLib.h> >+#include "DebugService.h" >+ >+EDKII_DEBUG_PPI mDebugPpi = { >+ PeiDebugBPrint, >+ PeiDebugAssert >+}; >+ >+EFI_PEI_PPI_DESCRIPTOR mDebugServicePpi = { >+ (EFI_PEI_PPI_DESCRIPTOR_PPI | >EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST), >+ &gEdkiiDebugPpiGuid, >+ (VOID *)&mDebugPpi >+}; >+ >+/** >+ Entry point of Debug Service PEIM >+ >+ This funciton installs EDKII DEBUG PPI >+ >+ @param FileHandle Handle of the file being invoked. >+ @param PeiServices Describes the list of possible PEI Services. >+ >+ @retval EFI_SUCESS The entry point of Debug Service PEIM executes >successfully. >+ @retval Others Some error occurs during the execution of this function. >+ >+**/ >+EFI_STATUS >+EFIAPI >+DebugSerivceInitialize ( >+ IN EFI_PEI_FILE_HANDLE FileHandle, >+ IN CONST EFI_PEI_SERVICES **PeiServices >+ ) >+{ >+ return PeiServicesInstallPpi (&mDebugServicePpi); >+} >+ >diff --git a/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.inf >b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.inf >new file mode 100644 >index 0000000000..e1252b658d >--- /dev/null >+++ b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.inf >@@ -0,0 +1,52 @@ >+## @file >+# Debug services for PEI phase >+# >+# This module installs gEdkiiDebugPpiGuid PPI to provide >+# debug services for PEIMs. >+# >+# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> >+# >+# This program and the accompanying materials >+# are licensed and made available under the terms and conditions of the >BSD License >+# which accompanies this distribution. The full text of the license may be >found at >+# http://opensource.org/licenses/bsd-license.php >+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >BASIS, >+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >EXPRESS OR IMPLIED. >+# >+## >+[Defines] >+ INF_VERSION = 0x00010005 >+ BASE_NAME = DebugServicePei >+ MODULE_UNI_FILE = DebugServicePei.uni >+ FILE_GUID = B73F81B9-1DFC-487C-824C-0509EE2B0128 >+ MODULE_TYPE = PEIM >+ VERSION_STRING = 1.0 >+ >+ ENTRY_POINT = DebugSerivceInitialize >+ >+# >+# The following information is for reference only and not required by the >build tools. >+# >+# VALID_ARCHITECTURES = IA32 X64 EBC >+# >+ >+[Sources] >+ DebugServicePei.c >+ DebugService.c >+ DebugService.h >+ >+[Packages] >+ MdePkg/MdePkg.dec >+ MdeModulePkg/MdeModulePkg.dec >+ >+[LibraryClasses] >+ PeimEntryPoint >+ PeiServicesLib >+ DebugLib >+ >+[Ppis] >+ gEdkiiDebugPpiGuid ## PRODUCE >+ >+[Depex] >+ TRUE >+ >diff --git a/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.uni >b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.uni >new file mode 100644 >index 0000000000..c49a7acbca >--- /dev/null >+++ b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.uni >@@ -0,0 +1,20 @@ >+///** @file >+// This driver installs gEdkiiDebugPpiGuid PPI to provide >+// debug services for PEIMs. >+// >+// Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> >+// >+// This program and the accompanying materials >+// are licensed and made available under the terms and conditions of the >BSD License >+// which accompanies this distribution. The full text of the license may be >found at >+// http://opensource.org/licenses/bsd-license.php >+// >+// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" >BASIS, >+// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER >EXPRESS OR IMPLIED. >+// >+//**/ >+ >+#string STR_MODULE_ABSTRACT #language en-US "Provide debug >services at PEI phase." >+ >+#string STR_MODULE_DESCRIPTION #language en-US "It produces >gEdkiiDebugPpiGuid to print message to debug output device" >+ >-- >2.16.2.windows.1 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

