Re: [edk2] [PATCH V3 15/17] MdeModulePkg: Add a PEIM to install Debug PPI
Hello, Besides the comments in patch 14/17 to remove the 'PeiServices' & 'This' parameters from the PPI services, some minor comments below: > -Original Message- > From: Gao, Zhichao > Sent: Tuesday, March 19, 2019 11:26 PM > To: edk2-devel@lists.01.org > Cc: Wang, Jian J; Wu, Hao A; Ni, Ray; Zeng, Star; Gao, Liming; Sean Brogan; > Michael Turner; Bret Barkelew > Subject: [PATCH V3 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 > Cc: Jian J Wang > Cc: Hao Wu > Cc: Ray Ni > Cc: Star Zeng > Cc: Liming Gao > Cc: Sean Brogan > Cc: Michael Turner > Cc: Bret Barkelew > --- > .../Universal/DebugServicePei/DebugService.c | 68 > ++ > .../Universal/DebugServicePei/DebugService.h | 64 > > .../Universal/DebugServicePei/DebugServicePei.c| 54 > + > .../Universal/DebugServicePei/DebugServicePei.inf | 51 > > .../Universal/DebugServicePei/DebugServicePei.uni | 20 +++ > 5 files changed, 257 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 00..54ae6974d1 > --- /dev/null > +++ b/MdeModulePkg/Universal/DebugServicePei/DebugService.c > @@ -0,0 +1,68 @@ > +/** @file > + Debug services instances for PEI phase. > + > + Copyright (c) 2019, 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. > + > +**/ > + > +#include > +#include > + > +/** > + Print a debug message to debug output device if the specified error level > + is enabled. > + > + @param[in] PeiServices The pointer to the PEI Services Table. > + @param[in] This The pointer to this instance of > EDKII_DEBUG_PPI > + @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 CONST EFI_PEI_SERVICES **PeiServices, > + IN EDKII_DEBUG_PPI*This, > + 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] PeiServices The pointer to the PEI Services Table. > + @param[in] This The pointer to this instance of > EDKII_DEBUG_PPI > + @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 EFI_PEI_SERVICES **PeiServices, > + IN EDKII_DEBUG_PPI*This, > + 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 00..21b44248bb > --- /dev/null > +++ b/MdeModulePkg/Universal/DebugServicePei/DebugService.h > @@ -0,0 +
[edk2] [PATCH V3 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 Cc: Jian J Wang Cc: Hao Wu Cc: Ray Ni Cc: Star Zeng Cc: Liming Gao Cc: Sean Brogan Cc: Michael Turner Cc: Bret Barkelew --- .../Universal/DebugServicePei/DebugService.c | 68 ++ .../Universal/DebugServicePei/DebugService.h | 64 .../Universal/DebugServicePei/DebugServicePei.c| 54 + .../Universal/DebugServicePei/DebugServicePei.inf | 51 .../Universal/DebugServicePei/DebugServicePei.uni | 20 +++ 5 files changed, 257 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 00..54ae6974d1 --- /dev/null +++ b/MdeModulePkg/Universal/DebugServicePei/DebugService.c @@ -0,0 +1,68 @@ +/** @file + Debug services instances for PEI phase. + + Copyright (c) 2019, 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. + +**/ + +#include +#include + +/** + Print a debug message to debug output device if the specified error level + is enabled. + + @param[in] PeiServices The pointer to the PEI Services Table. + @param[in] This The pointer to this instance of EDKII_DEBUG_PPI + @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 CONST EFI_PEI_SERVICES **PeiServices, + IN EDKII_DEBUG_PPI*This, + 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] PeiServices The pointer to the PEI Services Table. + @param[in] This The pointer to this instance of EDKII_DEBUG_PPI + @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 EFI_PEI_SERVICES **PeiServices, + IN EDKII_DEBUG_PPI*This, + 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 00..21b44248bb --- /dev/null +++ b/MdeModulePkg/Universal/DebugServicePei/DebugService.h @@ -0,0 +1,64 @@ +/** @file + Header file of Debug services instances. + + Copyright (c) 2019, Intel Corporation. All rights reserved. + + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ +#ifndef __DEBUG_SERVICE_H__ +#define __DEBUG_SERVICE_H__ + +#include + +/** + Print a debug message to debug output device if the specified error leve