Mike, Liming, On 10/21/16 23:27, Laszlo Ersek wrote: > ASSERT_EFI_ERROR() cannot be used in BASE type modules because > - the replacement text calls EFI_ERROR(), > - EFI_ERROR() is defined in "MdePkg/Include/Uefi/UefiBaseType.h", > - the inclusion of "UefiBaseType.h" is not required for BASE type modules. > > While > > ASSERT (!RETURN_ERROR (StatusParameter)) > > would be a functional statement in BASE type modules, it would be less > convenient and less informative: ASSERT_EFI_ERROR() prints the actual > StatusParameter. > > Hence add ASSERT_RETURN_ERROR(), paralleling ASSERT_EFI_ERROR(). Copy the > original macro definition and update it as follows: > - replace EFI with RETURN, > - wrap overlong lines in the comment block and in the code, > - EFI_D_ERROR is deprecated, so employ DEBUG_ERROR instead. > > Cc: Liming Gao <[email protected]> > Cc: Michael D Kinney <[email protected]> > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=166 > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Laszlo Ersek <[email protected]> > --- > > Notes: > OvmfPkg/SmbiosVersionLib, modified in one of the upcoming patches, is > one such BASE module. > > MdePkg/Include/Library/DebugLib.h | 27 ++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/MdePkg/Include/Library/DebugLib.h > b/MdePkg/Include/Library/DebugLib.h > index 81904325703f..3a910e6a208b 100644 > --- a/MdePkg/Include/Library/DebugLib.h > +++ b/MdePkg/Include/Library/DebugLib.h > @@ -348,6 +348,33 @@ DebugPrintLevelEnabled ( > #define ASSERT_EFI_ERROR(StatusParameter) > #endif > > +/** > + Macro that calls DebugAssert() if a RETURN_STATUS evaluates to an error > code. > + > + If MDEPKG_NDEBUG is not defined and the DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED > + bit of PcdDebugProperyMask is set, then this macro evaluates the > + RETURN_STATUS value specified by StatusParameter. If StatusParameter is an > + error code, then DebugAssert() is called passing in the source filename, > + source line number, and StatusParameter. > + > + @param StatusParameter RETURN_STATUS value to evaluate. > + > +**/ > +#if !defined(MDEPKG_NDEBUG) > + #define ASSERT_RETURN_ERROR(StatusParameter) \ > + do { \ > + if (DebugAssertEnabled ()) { \ > + if (RETURN_ERROR (StatusParameter)) { \ > + DEBUG ((DEBUG_ERROR, "\nASSERT_RETURN_ERROR (Status = %r)\n", \ > + StatusParameter)); \ > + _ASSERT (!RETURN_ERROR (StatusParameter)); \ > + } \ > + } \ > + } while (FALSE) > +#else > + #define ASSERT_RETURN_ERROR(StatusParameter) > +#endif > + > /** > Macro that calls DebugAssert() if a protocol is already installed in the > handle database. >
can I please get a maintainer review for this patch? The rest of the series is ready to go, but it depends on this patch. Thanks! Laszlo _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

