Re: [edk2] [PATCH V5 14/17] MdeModulePkg: Add definitions for EDKII DEBUG PPI
B stand for BASE_LIST, we use B instead of V because of compatible issue. For VA_LIST, it may be a pointer or a structure depend on the compiler. If some PEIMs consume V version function and it is compiled by a different compiler, they may catch these issue. Thanks, Zhichao > -Original Message- > From: Ni, Ray > Sent: Thursday, March 28, 2019 6:13 PM > To: Gao, Zhichao ; edk2-devel@lists.01.org > Cc: Wang, Jian J ; Wu, Hao A ; > Zeng, Star ; Gao, Liming ; > Sean Brogan ; Michael Turner > ; Bret Barkelew > > Subject: RE: [PATCH V5 14/17] MdeModulePkg: Add definitions for EDKII > DEBUG PPI > > Zhichao, > I see you added library API called DebugVPrint. Why the interface in the PPI > is called DebugBPrint? > What does "B" stand for? Why invent a "B" but not use "V"? > > > -Original Message- > > From: Gao, Zhichao > > Sent: Thursday, March 28, 2019 4:10 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 V5 14/17] MdeModulePkg: Add definitions for EDKII > > DEBUG PPI > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1549 > > > > Add a debug PPI for PEI phase. This PPI will provide basic services of > > debug. > > PEI debug lib instance can use these services to implement debug > > function to reduce the PEIMs which consume the debug lib. > > > > 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 > > Reviewed-by: Hao Wu > > --- > > MdeModulePkg/Include/Ppi/Debug.h | 82 > > > > MdeModulePkg/MdeModulePkg.dec| 3 ++ > > 2 files changed, 85 insertions(+) > > create mode 100644 MdeModulePkg/Include/Ppi/Debug.h > > > > diff --git a/MdeModulePkg/Include/Ppi/Debug.h > > b/MdeModulePkg/Include/Ppi/Debug.h > > new file mode 100644 > > index 00..0fb6a8fdc2 > > --- /dev/null > > +++ b/MdeModulePkg/Include/Ppi/Debug.h > > @@ -0,0 +1,82 @@ > > +/** @file > > + Define the EDKII_DEBUG_PPI that PEIMs can use to dump info to debug > > port. > > + > > + 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 __EDKII_DEBUG_PPI_H__ > > +#define __EDKII_DEBUG_PPI_H__ > > + > > +#include > > + > > +// > > +// Global ID for the EDKII_DEBUG_PPI > > +// > > +#define EDKII_DEBUG_PPI_GUID \ > > + { \ > > +0x999e699c, 0xb013, 0x475e, {0xb1, 0x7b, 0xf3, 0xa8, 0xae, 0x5c, > > +0x48, 0x75} \ > > + } > > + > > +/// > > +/// Forward declaration for the PEI_DEBUG_LIB_DEBUG_PPI > > EDKII_DEBUG_PPI > > +/// typedef struct _EDKII_DEBUG_PPI EDKII_DEBUG_PPI; > > + > > +/** > > + 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. > > + > > +**/ > > +typedef > > +VOID > > +(EFIAPI *EDKII_DEBUG_BPRINT)( > > + IN UINTN ErrorLevel, > > + IN CONST CHAR8*Format, > > + IN BASE_LIST 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. > > + > > +**/ > > +typedef > > +VOID > > +(EFIAPI *EDKII_DEBUG_ASSERT)( > > + IN CONST CHAR8*FileName, > > + IN UINTN LineNumber, > > + IN CONST CHAR8*Description > > + ); > > + > > +/// > > +/// This PPI contains a set of services to print message to debug > > +output device /// struct _EDKII_DEBUG_PPI { > > + EDKII_DEBUG_BPRINTDebugBPrint; > > + EDKII_DEBUG_ASSERT
Re: [edk2] [PATCH V5 14/17] MdeModulePkg: Add definitions for EDKII DEBUG PPI
Zhichao, I see you added library API called DebugVPrint. Why the interface in the PPI is called DebugBPrint? What does "B" stand for? Why invent a "B" but not use "V"? > -Original Message- > From: Gao, Zhichao > Sent: Thursday, March 28, 2019 4:10 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 V5 14/17] MdeModulePkg: Add definitions for EDKII DEBUG > PPI > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1549 > > Add a debug PPI for PEI phase. This PPI will provide basic services of debug. > PEI debug lib instance can use these services to implement debug function to > reduce the PEIMs which consume the debug lib. > > 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 > Reviewed-by: Hao Wu > --- > MdeModulePkg/Include/Ppi/Debug.h | 82 > > MdeModulePkg/MdeModulePkg.dec| 3 ++ > 2 files changed, 85 insertions(+) > create mode 100644 MdeModulePkg/Include/Ppi/Debug.h > > diff --git a/MdeModulePkg/Include/Ppi/Debug.h > b/MdeModulePkg/Include/Ppi/Debug.h > new file mode 100644 > index 00..0fb6a8fdc2 > --- /dev/null > +++ b/MdeModulePkg/Include/Ppi/Debug.h > @@ -0,0 +1,82 @@ > +/** @file > + Define the EDKII_DEBUG_PPI that PEIMs can use to dump info to debug > port. > + > + 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 __EDKII_DEBUG_PPI_H__ > +#define __EDKII_DEBUG_PPI_H__ > + > +#include > + > +// > +// Global ID for the EDKII_DEBUG_PPI > +// > +#define EDKII_DEBUG_PPI_GUID \ > + { \ > +0x999e699c, 0xb013, 0x475e, {0xb1, 0x7b, 0xf3, 0xa8, 0xae, 0x5c, > +0x48, 0x75} \ > + } > + > +/// > +/// Forward declaration for the PEI_DEBUG_LIB_DEBUG_PPI > EDKII_DEBUG_PPI > +/// typedef struct _EDKII_DEBUG_PPI EDKII_DEBUG_PPI; > + > +/** > + 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. > + > +**/ > +typedef > +VOID > +(EFIAPI *EDKII_DEBUG_BPRINT)( > + IN UINTN ErrorLevel, > + IN CONST CHAR8*Format, > + IN BASE_LIST 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. > + > +**/ > +typedef > +VOID > +(EFIAPI *EDKII_DEBUG_ASSERT)( > + IN CONST CHAR8*FileName, > + IN UINTN LineNumber, > + IN CONST CHAR8*Description > + ); > + > +/// > +/// This PPI contains a set of services to print message to debug > +output device /// struct _EDKII_DEBUG_PPI { > + EDKII_DEBUG_BPRINTDebugBPrint; > + EDKII_DEBUG_ASSERTDebugAssert; > +}; > + > +extern EFI_GUID gEdkiiDebugPpiGuid; > + > +#endif > + > diff --git a/MdeModulePkg/MdeModulePkg.dec > b/MdeModulePkg/MdeModulePkg.dec index a2130bc439..9bbd0572f5 > 100644 > --- a/MdeModulePkg/MdeModulePkg.dec > +++ b/MdeModulePkg/MdeModulePkg.dec > @@ -492,6 +492,9 @@ >## Include/Ppi/AtaPassThru.h >gEdkiiPeiAtaPassThruPpiGuid = { 0xa16473fd, 0xd474, 0x4c89, > { 0xae, > 0xc7, 0x90, 0xb8, 0x3c, 0x73, 0x86, 0x9 } } > > + ## Include/Ppi/Debug.h > + gEdkiiDebugPpiGuid= { 0x999e699c, 0xb013, 0x475e, > { 0xb1, > 0x7b, 0xf3, 0xa8, 0xae, 0x5c, 0x48, 0x75 } } > + > [Protocols] >## Load File protocol provides capability to load and unload EFI image into > memory and execute it. ># Include/Protocol/LoadPe32Image.h > -- > 2.21.0.windows.1 ___ e
[edk2] [PATCH V5 14/17] MdeModulePkg: Add definitions for EDKII DEBUG PPI
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1549 Add a debug PPI for PEI phase. This PPI will provide basic services of debug. PEI debug lib instance can use these services to implement debug function to reduce the PEIMs which consume the debug lib. 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 Reviewed-by: Hao Wu --- MdeModulePkg/Include/Ppi/Debug.h | 82 MdeModulePkg/MdeModulePkg.dec| 3 ++ 2 files changed, 85 insertions(+) create mode 100644 MdeModulePkg/Include/Ppi/Debug.h diff --git a/MdeModulePkg/Include/Ppi/Debug.h b/MdeModulePkg/Include/Ppi/Debug.h new file mode 100644 index 00..0fb6a8fdc2 --- /dev/null +++ b/MdeModulePkg/Include/Ppi/Debug.h @@ -0,0 +1,82 @@ +/** @file + Define the EDKII_DEBUG_PPI that PEIMs can use to dump info to debug port. + + 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 __EDKII_DEBUG_PPI_H__ +#define __EDKII_DEBUG_PPI_H__ + +#include + +// +// Global ID for the EDKII_DEBUG_PPI +// +#define EDKII_DEBUG_PPI_GUID \ + { \ +0x999e699c, 0xb013, 0x475e, {0xb1, 0x7b, 0xf3, 0xa8, 0xae, 0x5c, 0x48, 0x75} \ + } + +/// +/// Forward declaration for the PEI_DEBUG_LIB_DEBUG_PPI EDKII_DEBUG_PPI +/// +typedef struct _EDKII_DEBUG_PPI EDKII_DEBUG_PPI; + +/** + 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. + +**/ +typedef +VOID +(EFIAPI *EDKII_DEBUG_BPRINT)( + IN UINTN ErrorLevel, + IN CONST CHAR8*Format, + IN BASE_LIST 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. + +**/ +typedef +VOID +(EFIAPI *EDKII_DEBUG_ASSERT)( + IN CONST CHAR8*FileName, + IN UINTN LineNumber, + IN CONST CHAR8*Description + ); + +/// +/// This PPI contains a set of services to print message to debug output device +/// +struct _EDKII_DEBUG_PPI { + EDKII_DEBUG_BPRINTDebugBPrint; + EDKII_DEBUG_ASSERTDebugAssert; +}; + +extern EFI_GUID gEdkiiDebugPpiGuid; + +#endif + diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index a2130bc439..9bbd0572f5 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -492,6 +492,9 @@ ## Include/Ppi/AtaPassThru.h gEdkiiPeiAtaPassThruPpiGuid = { 0xa16473fd, 0xd474, 0x4c89, { 0xae, 0xc7, 0x90, 0xb8, 0x3c, 0x73, 0x86, 0x9 } } + ## Include/Ppi/Debug.h + gEdkiiDebugPpiGuid= { 0x999e699c, 0xb013, 0x475e, { 0xb1, 0x7b, 0xf3, 0xa8, 0xae, 0x5c, 0x48, 0x75 } } + [Protocols] ## Load File protocol provides capability to load and unload EFI image into memory and execute it. # Include/Protocol/LoadPe32Image.h -- 2.21.0.windows.1 ___ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel