Re: [edk2] [PATCH V4 15/17] MdeModulePkg: Add a PEIM to install Debug PPI

2019-03-27 Thread Gao, Liming
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: 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 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 
>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   | 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 00..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.
>+
>+  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] 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 00..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.
>+
>+  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 

Re: [edk2] [PATCH V4 15/17] MdeModulePkg: Add a PEIM to install Debug PPI

2019-03-21 Thread Wu, Hao A
Reviewed-by: Hao Wu 

Best Regards,
Hao Wu


> -Original Message-
> From: Gao, Zhichao
> Sent: Thursday, March 21, 2019 10:05 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 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 
> 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   | 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 00..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.
> +
> +  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] 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 00..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.
> +
> +  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__
> 

[edk2] [PATCH V4 15/17] MdeModulePkg: Add a PEIM to install Debug PPI

2019-03-21 Thread Zhichao Gao
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   | 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 00..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.
+
+  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] 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 00..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.
+
+  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 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